Skip to content

veatla/links

Repository files navigation

Short Links

A personal link-in-bio service for creating simple digital business cards and collecting links to your social networks, portfolio, and projects — all in one place.

Features

  • One link instead of many — Share a single short URL (e.g. yoursite.com/your-name) with all your links inside
  • OAuth sign-in — Sign in with Google or GitHub
  • Per-user profile page — Each user gets one editable profile page with a custom slug
  • ISR support — Incremental Static Regeneration for fast public page delivery (Vercel)

Tech Stack

  • SvelteKit — Full-stack framework
  • Svelte 5 — UI components
  • Drizzle ORM — SQLite or Turso (libSQL) database
  • Lucia — Authentication (OAuth)
  • Tailwind CSS — Styling
  • Marked + DOMPurify — Markdown parsing and HTML sanitization

Getting Started

Prerequisites

  • Bun or Node.js
  • SQLite (local) or Turso account (production)

Installation

# clone and install
bun install

# set up environment (copy .env.example and fill in values)
cp .env.example .env

# run database migrations
bun run db:migrate

# start dev server
bun run dev

Environment Variables

Variable Description
DATABASE_URL Local SQLite: file:local.db
TURSO_DATABASE_URL Turso database URL (production)
TURSO_AUTH_TOKEN Turso auth token
BYPASS_TOKEN Token for ISR cache bypass

OAuth credentials (GitHub, Google) are configured via Vercel or your hosting provider.

Project Structure

  • src/routes/[slug] — Public profile page (e.g. yoursite.com/username)
  • src/routes/config — Authenticated config page to edit your profile (slug, title, markdown)
  • src/routes/login — OAuth login (GitHub, Google)
  • drizzle/ — Database schema and migrations

Roadmap

The profile editor is currently array of links. Planned:

  • Figma-like visual editor — Replace Markdown with a limited, drag-and-drop canvas editor:
    • Blocks (text, links, images)
    • Reorder elements
    • Basic styling controls
      Simpler than full Figma — focused on link-in-bio layouts only.

Database

bun run db:push     # push schema changes
bun run db:generate # generate migrations
bun run db:migrate  # run migrations
bun run db:studio   # open Drizzle Studio

Deployment

Configured for Vercel via @sveltejs/adapter-vercel. Set environment variables in the Vercel dashboard and deploy.

License

Private project.

About

A personal link-in-bio service for creating simple digital business cards and collecting links to your social networks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors