Biolinks
The Biolinks app is a link-in-bio page builder. Users create customizable landing pages with multiple links, then share a single URL (typically for social media profiles). The app tracks page views and link clicks, and supports multiple pages per user.
Key features
Section titled “Key features”- Page creation with title, slug, and configurable status (active/draft)
- View and click tracking displayed as aggregate stats on the dashboard
- Multi-page support — users can manage multiple biolink pages
- Page management with settings and listing sub-routes
Page structure
Section titled “Page structure”| Route | Purpose |
|---|---|
/business/apps/biolinks | Dashboard with stats, nav cards, and recent pages |
/business/apps/biolinks/pages | Full page listing |
/business/apps/biolinks/pages/new | Create a new biolink page |
/business/apps/biolinks/pages/[id] | Edit an individual page |
/business/apps/biolinks/settings | Biolinks app settings |
Data model overview
Section titled “Data model overview”The server load function calls two service functions from $lib/apps/biolinks/services/index.js:
| Function | Description |
|---|---|
getStats(userId) | Returns page_count, total_views, and total_clicks |
listPages(userId) | Returns all biolink pages; dashboard shows the 5 most recent |
Each page record includes: id, title, slug, status (active or draft), and created_at.
Key components
Section titled “Key components”The dashboard is organized into four sections:
- Header with “New Page” button linking to the creation form
- Stats grid — three
Cardcomponents showing Pages, Views, and Clicks counts with corresponding icons - Navigation cards — two cards linking to Pages (full listing) and Settings
- Recent pages list — a
Cardlisting the 5 most recent pages with title, slug, status badge, and creation date
Status badges
Section titled “Status badges”Pages use color-coded badges:
- active —
defaultvariant (primary color) - Other statuses —
secondaryvariant (muted)
Notable integrations
Section titled “Notable integrations”- Slug-based URLs — each page has a slug displayed as
/{slug}in the list, which maps to the public-facing biolink URL - Dashboard limit — the recent pages list is capped at 5 items server-side (
pages.slice(0, 5)) with a “View All” link to the full listing - Parallel data loading — stats and pages are fetched concurrently with
Promise.all