StackFlow is an AI-powered project manager for solo developers. The app now includes core project execution, AI chat, GitHub publishing, public project pages, and a full community layer for discovery, feeds, galleries, idea sharing, and builder profiles.
backend/FastAPI API, AI orchestration, Supabase persistence, GitHub integration helpersfrontend/React + Tailwind web app with landing, onboarding, dashboard, task board, code panel, chat, demo mode, public pages, and community screensmobile/Expo app starter aligned to the same API and Supabase configsupabase/SQL schema and extension setup
- Node.js 20+
- npm 10+
- Python 3.9+
- A Supabase project
- Anthropic API key
- OpenAI API key with Codex-capable model access
- GitHub token for repository actions
- Copy
.env.exampleto.envat the repo root. - Fill in real values for Supabase, Anthropic, OpenAI, and GitHub.
- Create a Python virtual environment and install backend dependencies:
cd backendpython3 -m venv .venvsource .venv/bin/activatepip install -r requirements.txt
- Install frontend dependencies:
cd ../frontendnpm install
- Install mobile dependencies when you are ready to run Expo:
cd ../mobilenpm install
- Apply the schema in
supabase/schema.sqlto your Supabase database. - For local community/profile actions, the frontend currently uses a lightweight
X-User-Idbridge header in development. Production auth can be layered in later without changing the community UI.
cd backend
source .venv/bin/activate
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd frontend
npm run devdocker compose upcd mobile
npm run start- The backend starts without live API keys, but AI-powered endpoints require valid Anthropic and OpenAI credentials to work.
- The boilerplate route uses the OpenAI client and expects a Codex-capable model configured in
OPENAI_CODEX_MODEL. - GitHub push/repo flows require a valid
GITHUB_TOKEN. - Chat retrieval relies on
pgvectorplus the SQL function insupabase/schema.sql. - Demo mode and demo community pages are fixture-backed and safe to present without any backend keys.
- Import the GitHub repo into Vercel.
- Set the project root to
frontend/. - Confirm the framework preset is
Vite. - Add:
VITE_API_BASE_URL=https://<your-render-service>.onrender.comVITE_SUPABASE_URL=https://<your-supabase-project>.supabase.coVITE_SUPABASE_ANON_KEY=<your-supabase-anon-key>
- Deploy and use
/demofor the judge-safe walkthrough. - Recommended public links:
- Main submission:
https://<your-vercel-domain>/demo - Community showcase:
https://<your-vercel-domain>/demo/discover - Public project page:
https://<your-vercel-domain>/p/demo-dungeon-crawler
- Main submission:
The SPA rewrite for deep links like /demo is defined in frontend/vercel.json. Vercel rewrites are configured in vercel.json per the official docs: Vercel rewrites.
- Create a new Render Blueprint or Web Service from this repository.
- Use
render.yamlfrom the repo root. - Fill in the unsynced environment variables in the Render dashboard:
CORS_ORIGINS=https://<your-vercel-domain>SUPABASE_URLSUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYANTHROPIC_API_KEYOPENAI_API_KEYGITHUB_TOKEN
- Apply
supabase/schema.sqlin the Supabase SQL editor before using project, chat, embedding, or community routes.
Render blueprints use a root-level render.yaml file and support service rootDir, buildCommand, and startCommand as documented in the official Render blueprint reference: Render blueprint spec.
- Submit the public Vercel URL
- Demo judges on
/demo - Use
/demo/discoverif you want to show the community layer without relying on live data - Use
/p/demo-dungeon-crawlerto show the shareable public-project experience - Mention that the live app also supports full real mode through Render + Supabase + Anthropic + OpenAI + GitHub once production secrets are configured