The URL in a Bluesky profile description.

The link people tap on a Bluesky profile is a URL you write in the description. That field is 256 graphemes. One short personal-page URL is the practical bio link.

Interface labels move. Checked 2026-10-12. Follow the field, not an old screenshot.

Where the link goes

The profile record’s description is free-form text with a maximum of 256 graphemes. A URL in that text is what a visitor taps. A long tracking link spends the description on the address instead of the sentence.

The same record can store a website URI. That field has been in the lexicon since 24 September 2025. On 9 October 2026 the lexicon also gained a links list: up to ten records, each with a URL and an optional title of 40 graphemes. Those are protocol fields. This guide does not claim the official app editor shows ten buttons. If the editor in front of you only offers Description, put the URL there.

As of 8 October 2026, a published check of the official app said it neither showed the website field nor let you fill it, so the description was the place the URL was tappable. The lexicon change landed the next day. A record the app does not edit yet is not a button on the profile.

The September 2026 redirect

On 25 September 2026 Bluesky merged a change that sends external links in profile descriptions through the redirect it already used for posts: go.bsky.app/redirect. Internal Bluesky links stay in the app. The pull request’s test plan is to follow a link and confirm it passes through that redirect.

As of 12 October 2026, that hop does not change the destination; the visitor still lands on your URL. The page that opens should still say who you are, because the tap does not arrive with the post attached. A specific app-store version for the rollout is not stated here.

What that one URL should open

People from Bluesky have usually read a sentence already. The page should confirm who wrote it and show the work the posts keep mentioning.

  • The same name you use on Bluesky, and a sentence that is not only the handle.
  • Two or three projects, posts, or pieces. Not the whole feed.
  • The other profiles, smaller than the work.
  • A way to reply that is not another public post, if you want that.

Minimal is the shape

There is no Bluesky template and no Bluesky block. SayHi does not post to Bluesky or copy the profile. Alex’s minimal page is the shape that fits a single bio URL: type, then the work, then contact. The generator is there if you only have the links today.

Where this was checked

As of 12 October 2026. The description limit and the website field are the profile lexicon on the main branch. The redirect is the merged app change. The ten-link list is the lexicon, not a claim about the app’s editor.

  • Profile lexicon, description maxGraphemes 256, website URI, links maxLength 10: https://github.com/bluesky-social/atproto/blob/main/lexicons/app/bsky/actor/profile.json
  • Website field added 24 September 2025: https://github.com/bluesky-social/atproto/commit/8dc4caf55840578c835b4c851d4a599c15627a78
  • Link records, 9 October 2026: https://github.com/bluesky-social/atproto/commit/d70b673be6bce3b6f4d7478254e359913a101c18
  • Link record, title maxGraphemes 40: https://github.com/bluesky-social/atproto/blob/main/lexicons/app/bsky/actor/link.json
  • Redirect merged 25 September 2026: https://github.com/bluesky-social/social-app/pull/11789
  • App editor check, updated 8 October 2026: https://in.bio/blog/bio-link-rules-every-platform
Portrait of Alex Chen

Alex Chen

Languages, tools, and the notes between them

I design small languages and the CLIs that keep them honest. Currently at Harbor Labs, previously on the typechecker for a research notebook that got out of hand in the best way.

San Francisco

Now

Building Ink, a typed notebook format for people who write with code sitting next to the sentence. Harbor is the CLI around it — evals, snapshots, and a boringly reliable local workflow.

GitHub

harbor-labs/ink

A typed notebook format. Prose, code, and tests in one file that still diffs like a human wrote it.

TypeScript · local-first

GitHub

harbor-labs/harbor

The CLI for Ink: run, snapshot, and compare notebooks without standing up a service.

Rust · CLI
Types as documentation — Northshore ConfTalk notes and slides

Writing

Occasional notes on type systems that stay out of the way, local-first tools, and why most developer portfolios look like résumé PDFs with extra steps.

Write to AlexSlow email, real replies.

Work with me

Tell me about the project. I read every note.

Open the Minimal templateOpen the generator

Questions

Does Bluesky have a website field?

The profile record has had a website URI since 24 September 2025, and since 9 October 2026 it can also store up to ten link records. As of 8 October 2026 the official app was still described as offering the description, not a website field, for the URL people tap. If your editor only shows Description, use that.

Why does a bio link open go.bsky.app/redirect?

Since 25 September 2026, external URLs in the profile description go through Bluesky’s redirect proxy, the same one posts already used. The destination is still your URL. Bluesky has not published a reason beyond routing profile links the same way as links in posts.

How long can the description be?

The lexicon caps the description at 256 graphemes. The same field also sets maxLength to 2560. A long URL uses that budget.

Does SayHi post to Bluesky?

No. The page can be the URL in the description. It does not publish posts or sync the profile.

Continue