Skip to content

Tech Stack

This page covers the technical foundation of the FundedYouth Portal for developers and system administrators.

LayerTechnology
FrontendReact 19, TypeScript, Tailwind CSS v4
BackendHono (edge-first API framework)
DatabasePostgreSQL via Supabase
ORMDrizzle ORM
PaymentsStripe (embedded checkout, webhooks)
HostingCloudflare Pages
CDNCloudflare R2
CacheUpstash Redis
MonitoringUptimeRobot (health endpoint + frontend)
  • React 19 with TypeScript (ES2022, react-jsx)
  • Vite 6 as the bundler with @vitejs/plugin-react
  • Tailwind CSS v4 using the @theme directive (no tailwind.config.js)
  • motion/react (Framer Motion) for animations
  • lucide-react for all icons
  • react-router-dom v7 with BrowserRouter
  • @tanstack/react-query for data fetching and caching
  • Hono — Lightweight, edge-first API framework running on Cloudflare Workers
  • Drizzle ORM — Type-safe SQL query builder for PostgreSQL
  • Supabase — Managed PostgreSQL database
  • Upstash Redis — Serverless Redis for caching and rate limiting
  • Stripe handles all payment processing
  • Embedded checkout (ui_mode: 'embedded') for in-app payment flows
  • Webhook handlers for checkout.session.completed and invoice.paid events
  • Subscription lifecycle management (create, cancel, freeze, reactivate)
  • Cloudflare R2 — S3-compatible object storage for media files
  • Files stored with timestamp-based naming to prevent collisions
  • Publicly accessible via the FundedYouth CDN
  • Currently used for custom badge graphics and will support inventory product images
  • Managed through the Media section in the Admin Portal
  • Cloudflare Pages — GitHub push triggers build and deploy
  • Edge-first deployment via Wrangler
  • Environment variables managed through Cloudflare dashboard
CommandDescription
pnpm devStart dev server on port 3000
pnpm buildProduction build
pnpm lintType-check with tsc --noEmit