User
Build and publish a link-in-bio page
Create a public page of links and content blocks, style it, save it as a draft and publish it only after testing the public result.
Step-by-step guide
Before you start
- Prepare your page title, a unique slug, the links you want to share and any images you are allowed to publish.
- Decide whether the page should stay a draft while you work. The live preview is not the same as a saved public page.
Open this feature
- Open /portal/link-bio on your site.
How to use it
Create a draft page with a first link
- Open /portal/link-bio/create. In Page, enter the title and a unique slug. Add a headline/description if useful.
- Leave Publish this page off while preparing. Add the intended profile/cover images using the offered image controls.
- Open Blocks. Add a link-based block, select it in the editor and fill its Label and URL. For example, use the label Book a table with your real booking URL.
- Use Add/the item controls to include additional links in the selected block. Review each destination rather than copying the same URL into every item.
- Choose a template/appearance in Style, inspect the preview, then select Create page.
Reorder blocks and publish
- Open /portal/link-bio, choose the intended page and open Edit.
- Select each block to edit its content. Use drag/reorder or the displayed move controls to arrange it; duplicate/remove only the intended block.
- In Style, check colors, alignment, avatar/button style and background with the real content length.
- Select Publish this page when the content is ready, then select Save changes. The header should indicate Public after saving before you save the published state.
- Open the page’s public link in a separate session. Test every link, contact action and image on a phone-sized screen before sharing the URL.
Return a page to draft
- Open Edit for the intended page and clear Publish this page.
- Select Save changes, then test the public address from a separate session.
- Review any QR codes or campaigns pointing to the page before leaving it unpublished.
Fields and examples
| Field or choice | How to use it |
|---|---|
| Title / Slug | Title and slug are required, maximum 160 characters. The slug must be unique and use allowed letters/numbers/dashes/underscores. |
| Headline / Description | Headline allows up to 190 characters; description up to 4,000 in this version. Use plain reader-facing text. |
| Blocks and link items | A block is a content section; an item is a link/product/etc. inside it. Select the intended block before editing its item fields. |
| Publish this page | Controls saved public visibility. Save after changing it. |
| Brand assets / Share settings | Review the selected domain, UTM, pixels, directory/share options and branding availability when those controls are offered. |
Check your finished result
- Reload the editor to confirm saved content and visibility.
- Open the public link in a separate session and test every visible action.
Problems and fixes
| What you see | What to do next |
|---|---|
| Slug is rejected | Choose an unused slug with the allowed characters; do not reuse another page’s address. |
| Changes only appear in the editor | Save the page and reload the public link. |
| Public page cannot be opened | Check its saved published state, URL and any selected custom-domain routing. |
| The wrong block changed | Select the intended block/item in the canvas before editing, then verify the preview and save. |
Technical reference
Role-scoped source references
Pinned commit: ca125291cce57358ac4842e50928bc31fc6eab07
- modules/AppLinkBio/Http/Controllers/PublicLinkBioController.php
- modules/AppLinkBio/Http/Controllers/PublicShortLinkController.php
- modules/AppLinkBio/Livewire/LinkBioForm.php
- modules/AppLinkBio/Livewire/LinkBioIndex.php
- modules/AppLinkBio/Livewire/LinkBioTemplates.php
- modules/AppLinkBio/resources/views/livewire/index.blade.php
- modules/AppLinkBio/resources/views/livewire/studio/inspector.blade.php
- modules/AppLinkBio/resources/views/livewire/studio/styles.blade.php
- modules/AppLinkBio/resources/views/livewire/studio.blade.php
- modules/AppLinkBio/resources/views/livewire/templates.blade.php
- modules/AppLinkBio/resources/views/partials/pages-workspace-styles.blade.php
- modules/AppLinkBio/resources/views/partials/renderer.blade.php
- modules/AppLinkBio/resources/views/partials/template-library-styles.blade.php
- modules/AppLinkBio/resources/views/partials/template-sample.blade.php
Source-only route information
| Method | Source-default route |
|---|---|
| GET | /portal/link-bio |
| GET | /portal/link-bio/create |
| GET | /portal/link-bio/templates |
| GET | /portal/link-bio/{page}/edit |
| GET | /l/{code} |
| GET | /b/{slug}/click/{block}/{item} |
| GET | /b/{slug} |
Unmapped fields — not user instructions
These fields belong to this role’s source handler, but their screen labels were not confirmed.
| Source key | Handler |
|---|---|
| aiBioBrief | modules/AppLinkBio/Livewire/LinkBioForm.php |
| aiBioTone | modules/AppLinkBio/Livewire/LinkBioForm.php |
| aiBioLanguage | modules/AppLinkBio/Livewire/LinkBioForm.php |
| title | modules/AppLinkBio/Livewire/LinkBioForm.php |
| slug | modules/AppLinkBio/Livewire/LinkBioForm.php |
| headline | modules/AppLinkBio/Livewire/LinkBioForm.php |
| description | modules/AppLinkBio/Livewire/LinkBioForm.php |
| accentColor | modules/AppLinkBio/Livewire/LinkBioForm.php |
| avatarUrl | modules/AppLinkBio/Livewire/LinkBioForm.php |
| coverUrl | modules/AppLinkBio/Livewire/LinkBioForm.php |
| backgroundUrl | modules/AppLinkBio/Livewire/LinkBioForm.php |
| backgroundOverlay | modules/AppLinkBio/Livewire/LinkBioForm.php |
| backgroundPosition | modules/AppLinkBio/Livewire/LinkBioForm.php |
| backgroundFit | modules/AppLinkBio/Livewire/LinkBioForm.php |
| templateKey | modules/AppLinkBio/Livewire/LinkBioForm.php |
| brandingText | modules/AppLinkBio/Livewire/LinkBioForm.php |
| avatarStyle | modules/AppLinkBio/Livewire/LinkBioForm.php |
| buttonStyle | modules/AppLinkBio/Livewire/LinkBioForm.php |
| contentAlign | modules/AppLinkBio/Livewire/LinkBioForm.php |
| directoryCategory | modules/AppLinkBio/Livewire/LinkBioForm.php |
| brandKitId | modules/AppLinkBio/Livewire/LinkBioForm.php |
| customDomainId | modules/AppLinkBio/Livewire/LinkBioForm.php |
| utmPresetId | modules/AppLinkBio/Livewire/LinkBioForm.php |
| aiBioLanguage | modules/AppLinkBio/Livewire/LinkBioIndex.php |