Why We're Building This
Right now Techne has no way to actually onboard a student. You discover it, you're intrigued, and then nothing — no signup, no payment, no way to access cohort materials. For Cohort 2 this needs to be fully automated: a student goes from landing on the site to enrolled and inside the members area without any manual intervention.
This needs to be live before Cohort 2 enrollment opens — target: 2-3 weeks.
Stack
| Layer |
Tool |
Reason |
| Framework |
Next.js (App Router) |
Static public pages + authenticated members area in one codebase |
| Auth + Database |
Supabase |
Magic link auth, Postgres, row-level security — no custom backend needed for v1 |
| Payments |
Stripe |
Checkout + webhooks + promo codes for sliding scale/scholarships |
| Hosting |
Vercel |
Natural fit for Next.js, handles env vars cleanly |
FastAPI comes later (v2) when we add the MCP/Parachute personalization layer.
Key Decisions
- Auth: Magic link via email — Supabase sends a link, no password required
- Recordings: YouTube unlisted embeds — store the URL in the database, zero storage cost
- Admin: Simple
/admin route (admin-flagged Supabase user) — paste a YouTube URL, title, week number, notes → immediately visible to enrolled students
- Pricing: $225 flat + Stripe promo codes for sliding scale / scholarship spots
- Design: Carry forward existing Techne aesthetic — dark hero, parchment body, Cormorant + IBM Plex Mono, ember red
Routes
| Route |
Type |
Description |
/ |
Static |
Homepage — migrate current Techne HTML |
/programs |
Static |
Program listings including LVB Cohort 2 |
/enroll/[cohort] |
Dynamic |
Stripe checkout for a specific cohort |
/cohort |
Protected |
Members area — recordings, materials, cohort directory |
/admin |
Protected (admin) |
Add/edit sessions and resources |
/writing |
Static |
Blog layer — ships as placeholder, populated later |
Database Schema
cohorts (
id uuid primary key,
name text, -- "Cohort 2"
description text,
price_cents int, -- 22500
stripe_price_id text,
starts_at timestamptz,
ends_at timestamptz,
is_active boolean default false
)
enrollments (
id uuid primary key,
user_id uuid references auth.users,
cohort_id uuid references cohorts,
stripe_session_id text,
enrolled_at timestamptz default now()
)
sessions (
id uuid primary key,
cohort_id uuid references cohorts,
week_number int,
title text,
youtube_url text,
notes text, -- markdown
published_at timestamptz
)
resources (
id uuid primary key,
cohort_id uuid references cohorts,
title text,
url text,
resource_type text, -- 'link' | 'document' | 'tool'
created_at timestamptz default now()
)
Row-level security ensures enrolled students only see content for their cohort.
User Flows
Enrolling student
- Lands on
/programs → reads about LVB Cohort 2 → clicks Enroll
- Stripe checkout ($225 or discounted via promo code)
- Stripe webhook fires on success → enrollment row created in Supabase
- Redirected to
/cohort → sees sessions and resources
Returning student
- Clicks Sign In → enters email → clicks magic link in inbox
- Lands on
/cohort → recordings, materials, cohort members
Aaron adding a recording after a session
- Goes to
/admin → Add Session
- Pastes YouTube URL, title, week number, optional notes
- Saves → immediately visible to enrolled students
Out of Scope for V1
- MCP / Parachute integration (v2 — requires FastAPI layer on top of Supabase)
- Observations / evidence profiles / collective memory
- Multiple simultaneous cohorts
- Full community profiles / portfolio pages
- Admin dashboard beyond simple session/resource management
Open Questions
What Comes After V1
The FastAPI MCP server sits on top of this Supabase database. When a student opens Parachute, it queries their enrollment, sessions attended, and what they've been building — personalizing their extended mind with Techne context. V1 builds the database that makes this possible. Cohort 2 students help build the MCP layer as a class project.
Brainstorm doc: docs/brainstorms/2026-02-23-techne-v1-platform-brainstorm.md
Why We're Building This
Right now Techne has no way to actually onboard a student. You discover it, you're intrigued, and then nothing — no signup, no payment, no way to access cohort materials. For Cohort 2 this needs to be fully automated: a student goes from landing on the site to enrolled and inside the members area without any manual intervention.
This needs to be live before Cohort 2 enrollment opens — target: 2-3 weeks.
Stack
FastAPI comes later (v2) when we add the MCP/Parachute personalization layer.
Key Decisions
/adminroute (admin-flagged Supabase user) — paste a YouTube URL, title, week number, notes → immediately visible to enrolled studentsRoutes
//programs/enroll/[cohort]/cohort/admin/writingDatabase Schema
Row-level security ensures enrolled students only see content for their cohort.
User Flows
Enrolling student
/programs→ reads about LVB Cohort 2 → clicks Enroll/cohort→ sees sessions and resourcesReturning student
/cohort→ recordings, materials, cohort membersAaron adding a recording after a session
/admin→ Add SessionOut of Scope for V1
Open Questions
/writingneed content at launch or ships as an empty placeholder?What Comes After V1
The FastAPI MCP server sits on top of this Supabase database. When a student opens Parachute, it queries their enrollment, sessions attended, and what they've been building — personalizing their extended mind with Techne context. V1 builds the database that makes this possible. Cohort 2 students help build the MCP layer as a class project.
Brainstorm doc:
docs/brainstorms/2026-02-23-techne-v1-platform-brainstorm.md