Get paid for fan interactions — start free.

Create your free FanBell link

Platforms & Link-in-Bio

How to Add a Link to Your Bluesky Bio

Bluesky has no separate website field — you paste a URL straight into the Description box on Edit Profile, and Bluesky auto-links it. Here's the exact flow.

Updated August 2026

Get paid for this — with FanBell

Still answering the same questions in your Bluesky DMs for free while the one link in your Description sends people to a homepage?

FanBell is a link in your bio where fans pay you directly for:

Paid question$25Custom service$120Shoutout$60Wishlist62%Tip$5+

Make that link a FanBell page and fans pay before you type: they ask in a private thread, you answer by text or voice on your own schedule.

No monthly fee · 12% only when a fan pays

Bluesky has no separate website field in its Edit Profile screen: paste your URL into the Description box and Bluesky renders the plain-text link as tappable. That Description holds 256 graphemes total for your bio text plus the link, and the flow is identical on iOS, Android, and bsky.app.

That build of the profile editor defines exactly two editable text inputs, Display Name and Description, with no website input among them (bluesky-social/social-app, EditProfileDialog.tsx @ f69ad16). The bio is stored as a plain string, and the profile screen calls useRichText(description), which runs detectFacets at render time to turn URLs into tappable links (bluesky-social/social-app, src/view/screens/Profile.tsx @ f69ad16).

How do I add a link in the Bluesky mobile app?

Tap your avatar, tap Edit Profile, paste the full URL into the Description box next to your bio text, and tap Save. Bluesky's app ships only two editable profile text fields — Display Name and Description — so the Description is the only place a bio link can go.

  1. Open Bluesky and tap your avatar to view your profile.
  2. Tap Edit Profile.
  3. In the Description box, enter your bio text and paste the complete URL, including https://.
  4. Tap Save.
  5. View your public profile and tap the URL to confirm that it opens correctly.

No markdown, approval step, or verification is involved: EditProfileDialog.tsx saves the Description as a plain string trimmed of trailing whitespace, capped by the constant MAX_DESCRIPTION = 256 (bluesky-social/social-app, src/lib/constants.ts @ f69ad16). The linking happens on display, not on save: the profile screen wraps the stored bio in useRichText, which calls detectFacets and produces app.bsky.richtext.facet#link annotations for any URL it finds — the same rich-text facet mechanism the AT Protocol documents for links inside posts.

How do I add a link on the Bluesky website?

Sign in at bsky.app, open Edit Profile, paste the full URL into the same Description box, and select Save Changes. Bluesky builds web, iOS, and Android from the single bluesky-social/social-app repository, so the web editor draws on the same Display Name and Description fields and the same 256-grapheme cap.

  1. Sign in at bsky.app and open your profile.
  2. Select Edit Profile.
  3. Paste the complete URL into the Description box alongside any bio text.
  4. Select Save Changes.
  5. Check the public profile to confirm that the link works.

Bluesky maintains one repository, bluesky-social/social-app, described by its maintainers as "the Bluesky Social application for Web, iOS, and Android," and at commit f69ad16 a single EditProfileDialog.tsx and a single MAX_DESCRIPTION = 256 constant serve all three targets; deployed builds can lag that source. A URL saved on the web also appears on mobile because your bio lives in one description string on a single app.bsky.actor.profile record, not in per-client formatting (bluesky-social/atproto, lexicons/app/bsky/actor/profile.json @ f0d4877).

How much room does a Bluesky bio provide?

The Bluesky bio field is capped at 256 graphemes and 2,560 bytes, and your link has to fit inside that same budget alongside the bio text. The Display Name is a separate, shorter field at 64 graphemes and 640 bytes, and it is not where an outbound link belongs.

The app.bsky.actor.profile lexicon sets description to maxGraphemes: 256 and maxLength: 2560, and displayName to maxGraphemes: 64 and maxLength: 640 (bluesky-social/atproto). Bluesky's own client enforces the same numbers client-side through the constants MAX_DESCRIPTION = 256 and MAX_DISPLAY_NAME = 64 (bluesky-social/social-app).

The AT Protocol handle specification caps a Bluesky handle at 253 ASCII characters, and recommends a practical limit of 244 characters because DNS handle verification prepends the 9-character _atproto. prefix. The handle identifies your account and is not a bio field, so it cannot carry an outbound link.

The 256-grapheme cap counts visible characters — one emoji counts as one grapheme — while the separate maxLength: 2560 cap counts raw UTF-8 bytes, where a single emoji or accented letter can consume 2 to 4 bytes (bluesky-social/atproto). Plain-ASCII bio text plus a link hits the 256-grapheme limit first; an emoji-heavy bio can hit the 2,560-byte limit first.

FieldLimit (per app.bsky.actor.profile lexicon)Can it hold a clickable outbound link?
Description (bio)256 graphemes and 2,560 bytesYes; URLs detected at render by useRichText / detectFacets
Display Name64 graphemes and 640 bytesNo; rendered as plain text, not passed through facet detection
Pronouns20 graphemes and 200 bytesNo; schema-only field, with no input in EditProfileDialog.tsx at commit f69ad16
Handle (@handle)253 ASCII characters (244 recommended)No; an identifier defined by the AT Protocol handle spec, not a bio field

Only description is defined as free-form bio text in the profile record, which is why it is the single field where a URL can appear (bluesky-social/atproto). Because the 256-grapheme budget covers the URL and the sentence around it, a 25-character short link leaves roughly 230 graphemes to explain who you are and why someone should tap it.

Does Bluesky have a separate website field?

No — not one you can fill in. Bluesky's Edit Profile screen offers exactly two editable text inputs, Display Name and Description, so the outbound link goes in the same 256-grapheme Description field as your bio text on iOS, Android, and bsky.app alike.

Bluesky's open-source EditProfileDialog.tsx component renders one avatar picker, one banner picker, and two labelled text fields — Display Name and Description — and contains no website input (bluesky-social/social-app).

The schema is ahead of the app by roughly a year. Commit 8dc4caf, dated 24 September 2025 and titled "Expand profile fields (#4224)", added an optional website string with format: uri and a pronouns field capped at 20 graphemes to the app.bsky.actor.profile record (bluesky-social/atproto commit 8dc4caf). Twelve months later, at social-app commit f69ad16, the profile editor still renders no input bound to website or pronouns (bluesky-social/social-app), so a third-party AT Protocol client can write website while Bluesky's own users paste the URL into Description.

Because the link shares space with your bio, it helps to use one short, clear destination. For comparison with another profile setup, see LinkedIn’s Contact info field, or see how the Telegram bio link works for another app without a dedicated website field.

Can I pin a Bluesky post containing my link?

Yes, one pinned post per account. Bluesky released version 1.92 of its main app on 10 October 2024, adding support for pinned posts, and the profile record stores that choice in a single pinnedPost reference — so one post, not several, can sit above your feed.

The AT Protocol engineering blog states that "on October 10, Bluesky released version 1.92 of our main app," and that the release "added support for 'pinned posts,' a long-requested feature". The app.bsky.actor.profile lexicon implements it as a single pinnedPost property of type com.atproto.repo.strongRef, which is why an account can pin exactly one post (bluesky-social/atproto).

A pinned post gives you 300 graphemes and 3,000 bytes of text under the app.bsky.feed.post lexicon, versus 256 graphemes in the Description (bluesky-social/atproto, lexicons/app/bsky/feed/post.json @ f0d4877) — 44 more graphemes to spell out the offer in full sentences without competing for bio space. Adding a link to a Threads bio involves a similar pinned-post option.

Where should my Bluesky bio link point?

Point it at the single action you most want visitors to take, because 256 graphemes rarely leave room for a second destination. A portfolio suits showcasing projects, a newsletter page suits collecting subscribers, and a paid-support page suits followers who want to ask a question, request something, or tip.

The Description's 256-grapheme, 2,560-byte ceiling is a hard schema constraint on the whole bio, links included (bluesky-social/atproto), so every extra URL you add subtracts directly from the sentence that persuades someone to tap.

For broader placement guidance, see what to put in your link in bio. If the goal is revenue, how to monetize your link in bio explains how to choose and price an offer.

For a separate review of Bluesky’s creator-payment options and limitations, see does Bluesky pay creators. That analysis can help you decide whether your profile link should lead to an external payment, booking, or support page.

What should I decide before adding the link?

Decide on one primary action and one URL before you open Edit Profile, because Bluesky gives you a single 256-grapheme Description to hold both the link and the sentence that explains it. Visitors should grasp within a line whether the destination lets them read, subscribe, book, buy, ask, or support.

Bluesky's Edit Profile screen has no website input to fall back on (bluesky-social/social-app), so the URL competes with your bio inside the lexicon's 256-grapheme, 2,560-byte cap (bluesky-social/atproto). A shortened or branded link protects that budget.

Frequently asked questions

Does Bluesky have a dedicated link-in-bio field?

No. At social-app commit f69ad16, Bluesky's shared Edit Profile component exposes only two text inputs, Display Name and Description, with no website field (bluesky-social/social-app). The schema added an optional website property on 24 September 2025 that the app still does not surface (bluesky-social/atproto commit 8dc4caf), so paste the URL into the Description field, capped at 256 graphemes and 2,560 bytes.

How many links can I add to my Bluesky bio?

The app.bsky.actor.profile lexicon sets no separate numerical cap on URLs; it constrains only the description string as a whole, to 256 graphemes and 2,560 bytes (bluesky-social/atproto). Every bio link therefore competes for the same 256 graphemes, and Bluesky's client blocks a save above that with its MAX_DESCRIPTION = 256 check (bluesky-social/social-app).

Does a Bluesky bio link require special formatting?

No. Paste the complete plain-text URL including https:// into the Description and save. Bluesky renders the saved bio through its RichText component rather than as plain text, and the AT Protocol's facet system converts detected URLs into app.bsky.richtext.facet#link annotations with no markdown involved (AT Protocol: "Posting via the Bluesky API").

How can I make my Bluesky link more visible?

Place the URL in your Description and pin a post that explains the destination. Bluesky has supported one pinned profile post since version 1.92, released 10 October 2024 (AT Protocol: "Lexicons), and that post can carry 300 graphemes against the bio's 256 (bluesky-social/atproto).

If your primary action is "support," FanBell gives you one page for paid questions, personalized shoutouts, tips, and project support (how it works), with a 12% platform fee only when a fan pays (pricing).

Want your Bluesky link to point somewhere a fan can actually pay, ask, or support you? Create your free FanBell page — no follower minimum and free to start — and paste it into your Description box today.

Ready to get paid for the interactions you already get?

Create your free FanBell link