A Louisville-only link-in-bio platform and public directory for local artists, businesses, and creators.
LouLink gives Louisville artists and businesses a single shareable URL that aggregates all their online presences — Instagram, Bandcamp, Etsy, website, and more — into one public profile page at loul.ink/<username>.
Unlike Linktree, LouLink is Louisville-only. Every user must be verified as Louisville-based, and the home page is a browsable directory of the entire local creative and business community.
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite |
| Backend | Hono on Cloudflare Workers |
| Database | Neon (PostgreSQL) |
| Media | Cloudflare R2 |
| Auth | Session-based (cookie + Hono middleware) |
| Deployment | Cloudflare Workers + Wrangler |
Install dependencies:
pnpm installStart the dev server:
pnpm devApp runs at http://localhost:5173. The Vite plugin proxies /api/* to the local Worker runtime automatically.
pnpm dev # Start dev server
pnpm build # Type-check + Vite build (outputs to dist/)
pnpm preview # Build then preview locally
pnpm lint # ESLint
pnpm deploy # Deploy to Cloudflare Workers
pnpm check # tsc + build + wrangler dry-run
pnpm cf-typegen # Regenerate worker-configuration.d.ts from wrangler bindings
npx wrangler tail # Stream live worker logsThe app runs entirely on a single Cloudflare Worker that serves both the API and the static React SPA.
src/react-app/— React 19 frontend, compiled by Vite. Entry:src/react-app/main.tsxsrc/worker/index.ts— Hono API backend, compiled for the Workers runtime
In dev, Vite proxies /api/* to the Worker runtime. In production, the Worker serves dist/client/ as static assets with SPA fallback, and handles /api/* via Hono.
Requires Wrangler and a Cloudflare account with the required secrets set.
pnpm deploySee docs/deployment.md for secrets management and custom domain setup.
Full documentation lives in docs/:
docs/overview.md— What LouLink is, target users, core user flows, verification modeldocs/architecture.md— Technical architecture, build targets, routingdocs/database.md— Neon (PostgreSQL) schema, connection pattern, migrationsdocs/storage.md— Cloudflare R2 media storage, avatar upload flow, image proxydocs/auth.md— Session-based auth, Hono middleware pattern, authorization rulesdocs/deployment.md— Cloudflare Workers deployment, secrets management, custom domaindocs/features.md— MVP scope, post-MVP roadmap