Skip to content

Open source link in bio

A link in bio you can read, run and keep.

Posy is open source under the MIT licence. Use it at posy.page, or run the same app on your own server, where every look is unlocked.

Free forever · Open source · No card needed

A Posy page in the Desk look, on a desktop
A Posy page in the Desk look, on a phone

Why open source matters for a link page

A link in bio is the one address you put on everything. If the company behind it changes its plans, your page changes with it. With Posy, you can always take the page to your own server, because the app and the data format are both open.

A Posy page is a single JSON file with a public schema. Download it from Settings, import it into another Posy, or edit it by hand.

Free and open source: one JSON file, MCP for Claude, ChatGPT, Cursor and VS Code, and Docker

Hosted or self-hosted

posy.pageYour server
PriceFree, or Pro at $5 a month or $48 a yearFree
LooksPainted, Desk and Lofi free. Washi, Cobalt and Night on ProAll six unlocked
Custom domainProAny domain you point at it
SetupNoneDocker, Vercel with Turso and Blob, or any Node 20.9+ host
DataHosted for youA SQLite file and uploads in one folder
AccountsOpen to everyoneThe first account owns the instance, then sign-ups close, unless you change it

Run it with Docker

One container

git clone https://github.com/Himanshu-Sangshetti/posy.git && cd posy
docker build -t posy .
docker run -d -p 3000:3000 -v posy-data:/data \
  -e NEXT_PUBLIC_SITE_URL=https://links.example.com \
  -e BETTER_AUTH_URL=https://links.example.com \
  -e BETTER_AUTH_SECRET=$(openssl rand -base64 32) posy

Open the address and sign up. The first account owns the instance, and / becomes your page. Set BETTER_AUTH_SECRET to a long random value, and keep the two URLs identical.

What you get

  • The whole app

    Studio, six looks, REST API, CLI and a hosted MCP server, in one Next.js app.

  • Simple storage

    SQLite by default, Turso on Vercel. Back it up by copying one folder.

  • Anonymous telemetry you can turn off

    Set POSY_TELEMETRY=0 or DO_NOT_TRACK=1 and nothing is sent.

  • Contributions welcome

    Add a look, fix a bug or improve the docs. The contributing guide on GitHub explains how.

Questions

What licence is Posy under?

MIT. The art that ships with the looks is public domain, CC0 or made for Posy, with every file credited in the repo.

What do I need to host it?

Node 20.9 or newer, or Docker. On Vercel you also need a Turso database and a Blob store, since there is no persistent disk.

Can I move between hosted and self-hosted?

Yes. Download your page file from one and import it into the other.

Does self-hosting include the AI editing?

Yes. The MCP server and REST API are part of the app.

Keep looking around