Link in Bio Page Builder – One File, Hosted by You
A link in bio page is the small landing page a profile points at when the profile itself allows only one address: a picture, a name, a line of text and a column of labelled buttons. This builder assembles one in your browser and hands you the result as a single .html file. Everything happens on your device — no account, no upload, no network request of any kind.
What the builder actually produces
The download is one self-contained document. The styling sits in an inline <style> block, the profile picture is embedded in the file itself as a data: image, the type is a system font stack rather than a web font, and there is no <script> element anywhere in it. Open the file from your desktop with the network switched off and it renders exactly as it will on a web host, because there is nothing left for it to fetch.
Why there is no saved page and no edit link
Saving a draft means storing it somewhere, and there is nowhere here to store it. The draft link is the substitute: everything you typed is packed into the part of the address after the #, which browsers keep locally and never send to a server. Open that link and the builder fills itself back in. It is not a published page and not a short link — it is your draft written into a URL, and anyone holding it can read it, so treat a draft link as public. Long drafts make long links, and clients truncate them at points that vary, so past a conservative cutoff the tool tells you to use the file instead.
How the picture is handled
The image you choose is decoded in the tab, turned upright using its own EXIF orientation tag, cropped to a centred square, downscaled to 400 px and re-encoded — preferring WebP, falling back to JPEG — before it is embedded. It never leaves the device, which you can confirm in your browser’s network panel. Because image bytes would make a draft link unusably long, the picture is carried by the downloaded file only, never by the link.
Why only http and https links are accepted
Every address you type is checked against an allowlist: a link is written into the file only when the browser’s own URL parser reports its scheme as http: or https:. That rejects javascript: and data: addresses along with the spellings that defeat blocklists, because the test is “is it one of the two” rather than “does it look dangerous”. Text you type is escaped for the exact place it lands in the document, so a name containing <script> shows up as those characters on the page and runs nothing. Each button also carries rel="noopener noreferrer nofollow".
What the tool will not tell you
There is no recommended number of links, no ideal bio length and no suggested order, because none of those are measurable here — the page is yours and the audience is yours. The character counts shown are informational, counted as the clusters a reader sees so an emoji or a flag counts as one. The generated page contains nothing that can count a click or a visit either; if you want figures you would add your own analytics after downloading, and your host may keep access logs of its own.
Editing the file afterwards
The output is ordinary, readable HTML, so a text editor is all you need to change a label, swap the lang attribute for the language you actually wrote in, or paste the markup into a host’s own editor with the copy button. Keep the draft link if you would rather make the change here and download the file again.