π§ Tech Stack (MVP)¶
Core Technologies¶
Frontend¶
- Framework: React 19 with Vite
- Build Tool: Vite
- Styling: Tailwind CSS
- Components: shadcn/ui (Radix UI primitives)
- State Management: TanStack Query + React Context
- Forms: React Hook Form + Zod
- Data Tables: TanStack Table
- Routing: React Router v7
- Deployment: Cloudflare Pages (SPA)
Backend¶
- API: Supabase auto-generated REST/GraphQL APIs
- Database: Supabase (PostgreSQL + Auth)
- File Storage: Cloudflare R2
- Edge Functions: Cloudflare Workers (as needed)
Static Sitest¶
- Marketing: Cloudflare Pages
- Documentation: Cloudflare Pages (MkDocs)
Integrations¶
- Auth: Kinde (SSO + Multi-tenant)
- Email: SendGrid or Postmark
- WhatsApp: Twilio API
- Billing: Stripe (via Kinde integration - check alpha/beta status)
Backend Processing (MVP - No AI)¶
- PDF Generation: WeasyPrint (Python) or Puppeteer (Node.js)
- Text Extraction: pdf-parse, mammoth.js (non-AI document parsing)
- Background Jobs: Simple cron triggers (Cloudflare Workers Cron)
- Email Templates: Resend or similar transactional service
Development¶
- Package Manager: pnpm
- Version Control: GitHub
- CI/CD: GitHub Actions
- IaC: Pulumi (TypeScript)
Why These Choices?¶
React + Vite + Cloudflare¶
- Massive ecosystem and component library support
- Fast development velocity with modern tooling
- shadcn/ui provides 50+ production-ready components
- TanStack ecosystem (Query, Table, Router) best-in-class
- Simple SPA deployment to Cloudflare Pages
- TypeScript throughout
Supabase¶
- PostgreSQL with Row Level Security
- Built-in auth (backup to Kinde)
- Real-time subscriptions if needed
- Generous free tier for MVP
Kinde Auth¶
- Multi-tenant out of the box
- Australian company (data sovereignty)
- Simple pricing model
- Good developer experience
- Stripe integration for billing (verify current status)
Processing & Automation¶
- Rule-Based Logic: TypeScript/SQL for all business logic (no AI)
- PDF Generation: WeasyPrint or Puppeteer for board reports
- Cron Jobs: Cloudflare Workers Cron for scheduled tasks
- Forms: React Hook Form + Zod for structured data collection
What We're NOT Using (Yet)¶
Deferred to Post-MVP:
- AI/ML/LLM features (LangGraph, Claude API, GPT)
- n8n workflow engine (too complex for MVP)
- Kubernetes (overkill for MVP)
- Microservices (monolith is fine)
- Redis (Cloudflare KV if needed)
- Complex monitoring (basic logging only)
- Native mobile (web-first)
Development Setup¶
# Prerequisites
node >= 18
pnpm >= 8
# Clone and install
git clone [repo]
pnpm install
# Environment variables
cp .env.example .env
# Add your keys for Supabase, Kinde, etc.
# Run locally
pnpm dev
# Deploy
pnpm build
pnpm deploy
Keep it simple. Use proven tools. Ship fast.