Project 1 of ~34
π Career Launchpad β Architecture
Technical specification for the Career Launchpad micro-course platform. Built on Mac-first, using open-source and local AI where possible.
Mac-native Build
Open Source + Local AI
Node.js Backend
Deno Deploy
Career Launchpad is a web application with a heavy async/agentic backend. The frontend is a responsive web app (Mac-native via Electron if needed, but browser-first). The course content pipeline is powered by an AI agent that can run on local models (Ollama/LM Studio on Mac Mini) or cloud APIs.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β USER FACING β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββ β
β β Web App β β Mobile PWA β β Discord β β
β β (SvelteKit) β β (responsive) β β Communityβ β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ βββββββ¬βββββ β
βββββββββββΌβββββββββββββββββββΌββββββββββββββββββΌβββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β APPLICATION LAYER β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββ β
β β Course API β β Auth Service β β Payment β β
β β (Deno Oak) β β (JWT/Passkey)β β (Stripe) β β
β ββββββββ¬ββββββββ ββββββββββββββββ βββββββ¬βββββ β
βββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββ
β β
βΌ βΌ
βββββββββββββββββββββββ ββββββββββββββββββββββββββββ
β CONTENT PIPELINE β β DATA STORES β
β ββββββββββββββββββ β β ββββββββββββββββββββ β
β β AI Course Gen β β β β Supabase (Postgresβ β
β β Agent β β β β + Auth + Storage)β β
β β (Local Ollama β βββββββ ββββββββββββββββββββ β
β β or Cloud API) β β β ββββββββββββββββββββ β
β ββββββββββββββββββ β β β Vercel Blob / β β
β ββββββββββββββββββ β β β Cloudflare R2 β β
β β Content CMS β β β β (video storage) β β
β β (Markdown+MDX) β β β ββββββββββββββββββββ β
β ββββββββββββββββββ β β ββββββββββββββββββββ β
βββββββββββββββββββββββ β β Upstash Redis β β
β β (sessions, cache)β β
β ββββββββββββββββββββ β
ββββββββββββββββββββββββββββ
API is a JSON REST API. Auth via JWT (Supabase Auth). All endpoints prefixed with /api/v1/.
Auth
POST /auth/signup
Email + password signup. Returns JWT + user profile.
POST /auth/login
Email + password login. Returns JWT (1hr) + refresh token (30 days).
POST /auth/refresh
Rotate access token using refresh token.
Courses
GET /courses
List published courses. Query: ?topic=&page=&limit=
GET /courses/:slug
Course detail + syllabus preview (first module free).
POST /courses
Create course (creator role required). Triggers AI content pipeline.
GET /courses/:slug/modules
Full syllabus with all modules (enrolled users only).
Enrollments
POST /enrollments
Enroll in course. Creates Stripe checkout session. Returns enrollment on success.
GET /enrollments/mine
Current user's enrollments with progress %.
POST /enrollments/:id/complete
Mark course complete, trigger certificate generation.
Progress
POST /progress/:moduleId
Update module progress. Body: {status, quiz_score?, project_submission?}. Triggers XP update.
GET /progress/dashboard
User's full progress: XP, streak, badges, course progress, recommendations.
Badges
GET /badges
All available badges with earned status for current user.
Coaching
POST /coaching/book
Book coaching session. Body: {course_id, preferred_times}. Creates Stripe payment.
GET /coaching/sessions
List user's coaching sessions.
AI Content Pipeline (Internal)
POST /internal/generate-course
Trigger AI course generation. Body: {topic, target_audience, duration_weeks}. Returns job ID.
GET /internal/generate-course/:jobId
Check generation job status.
When a creator starts a new course, the AI pipeline generates the full curriculum. Runs async via a background job queue (Upstash QStash).
Step 1: Topic Research
AI analyzes job market data (Burning Glass, LinkedIn, BLS) to validate topic demand and identify the 3 most valuable career outcomes for someone who completes this course. Output: 1-page market brief.
Step 2: Syllabus Design
Generate week-by-week structure with module titles, learning objectives, and the "throughline" narrative connecting week 1 to week 6. Uses local Ollama (Mistral 7B) for iterative drafts, MiniMax API for final polish.
Step 3: Module Content Generation
For each module: write lesson text (800β1200 words), create quiz (5 questions with explanations), design worksheet with 3 exercises, write the capstone challenge. Content stored as Markdown in Supabase.
Step 4: Landing Page Copy
Generate the course landing page: headline, subheadline, 5 transforming outcomes, student persona description, syllabus overview, pricing copy, FAQ. Ready to paste into Webflow/Framer.
Step 5: Human Review & Publish
Creator reviews generated content in a UI, edits any sections, approves for publishing. Only publishes when creator explicitly approves.
Mac Mini Setup (Local AI)
Ollama on Mac Mini (Apple Silicon)
Run ollama serve on the Mac Mini. Models stored locally in ~/.ollama/models/. API endpoint: http://localhost:11434/api/generate. For a Mac Mini M4 with 24GB RAM, run Mistral 7B (5GB) + Llama 3.1 8B (5GB) simultaneously.
LM Studio (Alternative Local)
LM Studio provides a chat UI and a local server with OpenAI-compatible API. Better for iterative content generation. Supports GGUF quantized models up to 70B on Apple Silicon.
Cloud Fallback
If Mac Mini is offline or underpowered for a task, API calls fall back to MiniMax M2.1. This is transparent to the pipeline β a simple config flag switches between local and cloud.
| Component | Where to Deploy | Why |
| Frontend (SvelteKit) | Cloudflare Pages (free) | Fast CDN, automatic deployments from Git |
| Backend API (Deno) | Deno Deploy or Cloudflare Workers | Edge runtime, Deno-native, generous free tier |
| Database | Supabase (free tier: 500MB, 2GB transfer) | All-in-one Postgres + Auth + Storage |
| Redis | Upstash (free: 10K commands/day) | Serverless, pay-per-use beyond free |
| Video | Cloudflare Stream or Mux | Stream at $0.005/GB watched |
| Files (certificates, worksheets) | Cloudflare R2 (free: 10GB egress/month) | S3-compatible, no egress fees within Cloudflare |
| AI (Local) | Mac Mini (Ollama) | Private, no API costs, good for drafts |
| AI (Cloud) | MiniMax API or OpenAI API | High-quality final output |
| Email | Resend (free: 3K/month) | Developer-friendly, React Email templates |
| Payments | Stripe (2.9% + 30Β’ per transaction) | Industry standard |
Mac Mini as Development + Local AI Server
For local development and testing: run everything on Mac Mini. Ollama for AI, Supabase local for database (via Docker or Supabase CLI), Redis via Upstash (works locally too). Push to cloud for production.
# Mac Mini Local Dev Setup
# 1. Install Deno
curl -fsSL https://deno.land/install.sh | sh
# 2. Install Ollama
brew install ollama
ollama pull mistral:7b
ollama pull llama3.1:8b
# 3. Start services
ollama serve # AI on :11434
deno task dev # Backend on :8000
npm run dev # Frontend on :5173
# 4. Environment variables
# SUPABASE_URL, SUPABASE_ANON_KEY, STRIPE_SECRET_KEY
# MINIMAX_API_KEY (or use local Ollama via OLLAMA_BASE_URL)