Transform pain points into business opportunities.
-
Install dependencies:
npm install
-
Copy the environment template:
cp env.local.example .env.local
-
Set up Supabase database:
- Create a new project at supabase.com
- Go to Project Settings > API to get your URL and anon key
- Run the SQL migration in
supabase/migrations/001_initial_schema.sqlin the Supabase SQL Editor - This creates the
ideas,sources, andsubscriptionstables - Enable Authentication: Go to Authentication > Providers and enable "Email" provider
-
Fill in your environment variables in
.env.local:NEXT_PUBLIC_SUPABASE_URL– Supabase project URL (required)NEXT_PUBLIC_SUPABASE_ANON_KEY– Supabase anon key (required)OPENAI_API_KEY– OpenAI key for idea generation (required)RESEND_API_KEY– Resend API key for digest emails (required to send email)RESEND_FROM_EMAIL– Verified sending address for Resend (optional; defaults toonboarding@resend.dev)REDDIT_CLIENT_ID,REDDIT_CLIENT_SECRET,REDDIT_USER_AGENT– Reddit credentials for live data (optional; falls back to bundled mock data)
Note: We use
NEXT_PUBLIC_prefix for Supabase variables because they're needed on both server and client. The anon key is meant to be public - security comes from Row Level Security (RLS) policies. -
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run format:check- Check code formatting
src/
app/
feed/ # Feed page
api/ # API routes
assets/ # Static assets (images, icons, fonts)
lib/ # Pure logic (LLM, Reddit, Supabase, Email)
types/ # Shared TypeScript interfaces
data/ # Mock/static data
docs/ # Project documentation