Project Structure
Shipfastai follows a monorepo structure with separate frontend and backend directories.
Overview
Shipfastai/
├── frontend/ # Next.js application
│ ├── src/
│ │ ├── app/ # App Router pages
│ │ ├── components/ # React components
│ │ ├── lib/ # Utilities and helpers
│ │ └── hooks/ # Custom React hooks
│ └── public/ # Static assets
├── backend/ # FastAPI application
│ ├── app/
│ │ ├── api/ # API endpoints
│ │ ├── core/ # Config, security
│ │ ├── models/ # Pydantic models
│ │ └── services/ # Business logic
│ └── tests/ # Backend tests
├── supabase/ # Database setup
│ └── migrations/ # SQL migrations
└── docs/ # Documentation
Frontend Structure
`src/app/`
Next.js App Router pages:
•(marketing)/ - Public marketing pages
•(auth)/ - Login, signup, password reset
•(dashboard)/ - Protected app pages
•api/ - API route handlers
`src/components/`
Reusable components organized by feature:
•ui/ - Base UI components (buttons, inputs)
•marketing/ - Landing page components
•dashboard/ - App-specific components
•providers/ - Context providers
`src/lib/`
Shared utilities:
•supabase.ts - Supabase client configuration
•stripe.ts - Stripe helpers
•email.ts - Email sending functions
•utils.ts - General utilities
Backend Structure
`app/api/`
FastAPI routers:
•auth.py - Authentication endpoints
•users.py - User management
•billing.py - Stripe integration
•ai.py - AI/LLM endpoints
`app/services/`
Business logic layer:
•rag.py - RAG pipeline implementation
•embeddings.py - Vector embeddings
•llm.py - LLM integrations
Database
Supabase tables:
•profiles - User profiles
•organizations - Multi-tenancy
•subscriptions - Stripe subscriptions
•documents - RAG document storage