- Node.js 18+
- A Supabase project
- A GitHub OAuth app configured in Supabase (Authentication > Providers > GitHub)
# Frontend
npm install
# Backend
cd server && npm installFrontend — create .env in root:
cp .env.example .env
# Fill in VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY, VITE_API_URLBackend — create .env in server/:
cd server && cp .env.example .env
# Fill in SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, GITHUB_TOKENRun the SQL migration in your Supabase SQL Editor:
supabase/migrations/001_initial_schema.sql
This creates all tables (repositories, profiles, snippets, resources, sync_history) with Row Level Security policies and an auto-profile trigger.
# Frontend (from root)
npm run dev
# Backend (from server/)
cd server && npm run devFrontend: http://localhost:5173
Backend: http://localhost:3001
- Auto-runs
eslint --fixandtsc -bon staged files - Blocks commits with lint or type errors
npm run test # Run all tests once
npm run test:watch # Interactive watch modenpm run lint # ESLint
npm run type-check # TypeScript compiler checkWe use specialized GitHub templates to maintain project standards.
- Bug Report: Use this for "Intelligence Loss" (logic bugs).
- Feature Request: Use this to suggest "New Signals."
- Aesthetic Enhancement: [PREMIUM] Use this for UI polish, motion, and glassmorphism refinements.
All PRs must pass the Visual Impact Checklist defined in our PULL_REQUEST_TEMPLATE.md. Ensure you've verified the "Motion & Interaction" feel before submitting.
The project is split into:
/src: React + Framer Motion + Tailwind (Frontend)/server: Fastify + Supabase + Octokit (Data Engine)
Always ensure your types are aligned between these two layers by running npm run type-check from the root.