Skip to content

jameblai/profiles

Repository files navigation

Profiles

A link-in-bio app built with TanStack Start, Better Auth, Drizzle ORM, and Cloudflare Workers (D1 + R2).

Getting Started

pnpm install
pnpm dev

Scripts

Command Description
pnpm dev Start dev server on port 3000
pnpm build Production build
pnpm check Format check
pnpm lint Lint
pnpm deploy Build and deploy to Cloudflare Workers
pnpm db:migrate:local Apply D1 migrations locally
pnpm db:migrate:remote Apply D1 migrations to production

Project Structure

  • src/routes/ — TanStack Router file routes (thin wrappers)
  • src/pages/ — Page components and route options
  • src/components/ — UI and form components
  • src/lib/ — Server functions, auth, schemas, utilities
  • drizzle/ — Database migrations

Profile images

Avatars and banners are stored in an R2 bucket (profiles-media) and served through /api/images/users/{userId}/{kind}.

Deploy

Requires Wrangler authentication and secrets:

pnpm auth:secret   # Set BETTER_AUTH_SECRET
pnpm deploy

See wrangler.jsonc for D1 and R2 bindings.

About

Profile page creator, built using TanStack Start and Cloudflare

Resources

Stars

Watchers

Forks

Contributors