The short version
- You made a page. You want a few people to read it and tell you what they think.
- So you deploy it to Vercel, get a random URL, and the link just sits there. No comments. No control. No idea who read it.
- Vercel is built to ship apps, not to share a page and talk about it.
- uselink turns an HTML, markdown, or zip file into a link people can read, comment on, and that you control.
uselink.app/@nathan/should-i-become-ceo2.
You made a page. Maybe you wrote the HTML by hand. Maybe Claude or v0 made it for you in two minutes. Either way you have a file, and you want one thing. Send it to someone and hear what they think.
So what do you do. You reach for Vercel. (For anyone who has not used it: Vercel is one of the most popular places to put a website online. Engineers love it, for good reason.) You make a repo. You make a project. You wait for a build. You get back a URL like fancy-sunset-92f.vercel.app. You paste it in Slack. And then nothing. The link sits there. Nobody can comment on it. You have no idea if anyone opened it. You wanted a conversation and you shipped a billboard.
I do this every week. At some point I stopped accepting it. This is the post about why, and about what we are building instead.
First, the fair part
Vercel is very good at what it was built for. If you are shipping a real app, with a backend, serverless functions, edge routing, and a domain you care about, it is hard to beat. We use it. I am not here to tell you to stop deploying apps on Vercel.
The problem is not Vercel. The problem is what most of us reach for it to do.
The thing people actually do with it
Most of the time I am not shipping an app. I have one page. A spec. A report. A pitch. A decision doc. A little tool I built with AI on a Tuesday. I want a link, and I want a few specific people to read it and respond.
For that job, a deploy platform is the wrong shape. Two reasons.
Reason 1: it is a pipeline, not a paste
Vercel wants a pipeline. Repo, project, build step, deploy, domain. That is the right amount of process for an app you will run for years. It is a strange amount of process for a file you want someone to look at this afternoon.
And the URL it hands back is not yours. yoursite.vercel.app. Random words, a hash, the platform's name parked in the middle of your link. You cannot tell what is behind it. Neither can the person you are sending it to.
Reason 2: the link is dead on arrival
Here is the part that bothers me more.
Say you get past the deploy. The page is live. Now what.
The link is a one way street. The reader opens it, reads it, and that is the end of the road. They cannot comment on the paragraph they disagree with. You cannot see if they opened it. You cannot lock it, set a password, or have it expire next week. You cannot say "this person can read but not comment."
So people patch around it. They screenshot the page and lose the interactivity. They paste the raw code into an email. They drop it in Slack where the formatting dies and the comments scatter through the scroll. Every workaround throws away the thing that made the page worth sending.
Vercel ships pages to the whole internet. I did not want the whole internet. I wanted three people and their honest reactions.
This is the real shift. The unit of work changed. People are not building sites anymore. They generate one page with AI and they want to share it and hear what people think. That is a paste, a link, and a comment thread. It is not a deploy pipeline.
What we are building: the link is alive
So we built uselink around a different idea. The link is not a destination you ship to. The link is where the conversation lives.
You bring an HTML file, a markdown file, or a zip. You get a link. The link renders the page, carries the comments, and obeys your rules. That is the whole thing.
Here is what that looks like in practice.
01 Host the page, no build step
Paste your HTML or markdown, or drop a zip, and it is live. No repo. No build. No config file. It renders the real interactive page in a sandbox, so your charts, tables, and scripts still work. If you can make the file, you can share it. There is no step in between.
02 Real comments, and your reader needs no account
This is the core of it. The person you send the link to can read it and comment on the exact paragraph, with no signup. No account wall. No "create a login to leave feedback." They click, they read, they tell you what they think, right on the line they are reacting to.
That asymmetry is on purpose. You, the owner, get a real workspace. The reader gets a guest pass with zero friction. The fastest way to kill feedback is to ask for a password before someone can give it.
Baseline is 7 out of 10 per axis. Miss enough of them and it says no.
The one thing it leaves out on purpose is vision. Everyone rates their own a 10, so it tells you nothing.
Here is a real one. This is a live uselink, not a screenshot. Open it and leave a comment.
03 You control the link
A shareable link should come with a dial, not a switch. On uselink you decide who can read and who can comment. You can set a password. You can set an expiration date. You can cap the number of views. You can gate it to specific emails. The same doc can be open to your team today and locked to everyone else.
04 It unfurls
Paste a uselink in Slack or iMessage and it shows a real preview. Title, description, a clean card. Not a naked URL that everyone scrolls past. The link sells itself before anyone clicks.
05 Pipe it from the terminal
For the engineers. uselink is pipeable. Push a file straight from the command line and get a link back. We also wired up an MCP server, so you can publish straight from your Claude agent without leaving the chat. The page your agent just generated becomes a shareable, commentable link in one step. No copy, no paste, no deploy.
06 Edit in the browser, with history
Paste and publish was not enough, so we added editors. There is an HTML editor and a markdown editor built in. Small fix, edit it in place, no going back to the source to re-paste. Every version is saved, so you can see what changed and roll back. The link stays the same while the page gets better.
For two kinds of people
uselink is built for two people who rarely get handed the same tool.
If you are an engineer, it is the primitive that was missing. Pipe the file, get a link, skip the deploy. Publish from your agent over MCP. Lock it, expire it, watch the comments come in on the exact lines. It fits the way you already work.
If you are not an engineer, think of it as a Google Doc for any web page. You drag a file in. You get a link. People comment. You never see a repo, a build log, or a config file, because there is not one.
Same product. The page meets you where you are.
The honest boundary
To be clear, we are not trying to replace Vercel for apps. If you are running a production service, Vercel is great and you should keep using it. Ship your Next.js app there.
What we are replacing is the part where you bend a deploy platform into a sharing tool. The repo for a single file. The dead link. The feedback that scatters across Slack, email, and screenshots.
Vercel for the app you run. uselink for the page you want a reaction to.
Why now
AI made the making easy. I can describe a page and have it in front of me before my coffee is cold. The number of pages, docs, and small tools people generate is climbing fast.
The last mile did not keep up. Host it, share it, get comments back. That part is still broken, and it is the part I hit every single day.
So that is the bet. uselink wants to own the space between "I made a thing" and "what do you think." Not the deploy. The share, the read, and the response.
This post is on uselink. If you have a page sitting in a folder waiting for someone to look at it, put it on a link and send it to one person. Then come back and comment on the line where you think I am wrong. That is the whole point.