Skip to content

superrare/superlinks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuperLinks.me

All-in-one link-in-bio for creators. Built with React Router 7, Cloudflare Workers, Supabase, and Tailwind 4.

Stack

  • Framework: React Router 7 (SSR, declarative routes)
  • Runtime: Cloudflare Workers
  • Database: Supabase (Postgres + Auth + Realtime + Edge Functions)
  • Styling: Tailwind CSS 4 + shadcn/ui (new-york)
  • State: Zustand, React Hook Form, nuqs
  • Payments: USDC on Base via x402

Local Development

Prerequisites

Setup

# Install dependencies
pnpm install

# Copy local secrets template
cp .dev.vars.example .dev.vars
# Edit .dev.vars with your Supabase project URL and anon key

# Update wrangler.jsonc vars with your Supabase public values
# SUPABASE_URL and SUPABASE_ANON_KEY

# Generate Cloudflare types
pnpm cf-typegen

# Start dev server
pnpm dev

Supabase

Migrations live in supabase/migrations/. Push them with:

supabase db push

Generate TypeScript types:

SUPABASE_PROJECT_ID=your-project-id pnpm db:types

Scripts

Script Description
pnpm dev Start dev server
pnpm build Production build
pnpm deploy Build + deploy to Cloudflare
pnpm cf-typegen Generate Cloudflare + RR types
pnpm db:types Generate Supabase types
pnpm typecheck Type check
pnpm check Type check + build + deploy dry run
pnpm knip Find unused exports/deps

Project Structure

app/
├── routes/              # Thin route modules (loader/action/component)
├── features/            # Feature-first organization
│   ├── auth/            # Login, signup, callback, session helpers
│   ├── editor/          # Link page editor (My Links)
│   ├── store/           # Product CRUD, posts
│   ├── wallet/          # Earn, balance, transactions
│   ├── insights/        # Analytics
│   ├── messages/        # Chat with Supabase Realtime
│   ├── admin/           # Admin panel
│   ├── creator-page/    # Public /:handle page
│   ├── discover/        # Browse creators
│   └── app-viewer/      # Hosted app iframe
├── components/
│   ├── ui/              # shadcn/ui primitives
│   └── shared/          # Cross-feature components
├── lib/                 # Shared infra (env, supabase, commerce, cache)
├── stores/              # Zustand stores
└── types/               # Generated types

workers/
└── app.ts               # Cloudflare Workers entry point

supabase/
└── migrations/          # SQL migrations (source of truth)

Routes

Path Description
/ Marketing landing page
/login Google OAuth login
/signup Claim username + sign up
/auth/privy/exchange Exchanges a Privy access token for an HttpOnly session cookie
/auth/refresh Refreshes the session cookie when the JWT is near expiry
/auth/logout Clears the session cookie
/docs CLI documentation
/discover Browse creators
/app/:id Hosted app viewer
/dashboard/links Editor: profile, links, theme
/dashboard/products Product + post management
/dashboard/insights Analytics
/dashboard/earn Wallet + transactions
/dashboard/messages Conversations
/dashboard/admin Admin panel
/dashboard/settings Account + theme toggle
/:handle Public creator page (catch-all, must be last)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors