Quick Answer
A link-in-bio page is a single mobile page that collects your important links — the page an Instagram or TikTok bio points to. This generator builds one entirely in your browser: add your profile, links, headings, and social icons; pick colors, button style, and fonts with live contrast checks; then export a single self-contained index.html file (avatar embedded) plus a QR code. It is free, needs no account, and nothing you type is uploaded — the file is yours to host anywhere.
How It Works
Fill in your profile: display name, one-line bio, and an avatar (any PNG, JPEG, or WebP is downscaled to 256px and embedded automatically)
Add blocks: links with an icon, section headings, text paragraphs, and a social icon row — reorder with the arrows or delete as you go
Style the theme: pick a preset or set background, text, button, and accent colors, then choose filled or outline buttons, corner radius, and font — contrast warnings come with a one-click fix
Enter the https URL where you will host the file and generate a QR code that points to it
Download index.html (a single self-contained file) and upload it to any static host — export the project as JSON if you want to edit it later
Key Facts
- Four block types: links with drawn icons, headings, text paragraphs, and social icon rows
- Add, reorder, and delete blocks with a live phone-frame preview that mirrors the export exactly
- Live WCAG contrast checks on text and buttons with one-click auto-fix suggestions
- Six theme presets, custom colors, filled or outline buttons, 0–24px corner radius, and three font stacks
- Export one self-contained index.html — inline CSS, avatar embedded as a data URL, zero external requests
- QR code PNG for your hosted URL, generated locally in the browser
- JSON project export and import, plus automatic save in this browser
- Free with no account, no watermark, and no uploads
Frequently Asked Questions
How does the HTML export work?
The generator writes one self-contained index.html file: the CSS is inline, your avatar is embedded as a base64 data URL, and every color is spelled out explicitly, so the page looks identical on any host and in dark or light system themes. Opened as a string, the file contains no requests at all — no fonts, scripts, or images fetched from elsewhere. Your links are the only external URLs, and each opens in a new tab with rel="noopener".
Is this a free Linktree alternative?
Yes. Linktree hosts a free tier on linktr.ee and unlocks custom themes, analytics, and removal of its branding on paid plans (from around US$5/month). This tool takes the other approach: every feature is free, there is no account, and instead of renting a page you download a single HTML file you own and can host anywhere — GitHub Pages, Netlify, Cloudflare Pages, or your own server.
Is my data private?
The editor runs entirely in your browser with client-side JavaScript — no network calls, no analytics in your exported page, and nothing you type or upload leaves your device. Your work-in-progress is saved only in this browser’s localStorage, and the JSON export/import lets you move projects between devices by file instead of an account.
How do the contrast warnings work?
For text-on-background and button-text-on-fill pairs, the tool computes WCAG relative luminance from the sRGB channels and the contrast ratio (L1 + 0.05) / (L2 + 0.05). Any pair under 4.5:1 — the WCAG AA threshold for normal text — shows a warning. The auto-fix mixes the failing color toward black or white in 5% steps and applies the first mix that clears 4.5:1, so brand colors shift as little as possible.
How do I host the page and use the QR code?
Download index.html and upload it to any static host — GitHub Pages, Netlify, Cloudflare Pages, or a folder on your own site. Put the final address (for example https://you.example.com) in the hosted URL field and generate the QR code: it encodes that https URL as a PNG you can print on flyers or stickers. If you change the page later, re-export the file and the same address and QR keep working.
Can I save my page and edit it later?
Yes, two ways. Your project saves automatically to this browser’s localStorage, so a refresh keeps everything. To move between devices or keep a backup, use Export JSON and later Import JSON to restore the full project — profile, avatar, blocks, and theme — exactly as it was.