Documentation

Technology Stack

FutureContent combines a server-rendered web application with a Postgres-backed assessment workflow. Managed providers are kept behind application-owned boundaries so stored results remain stable and explainable.

Web application

  • Next.js 16 App Router for server-rendered pages, API routes, and background continuation
  • React 19 and TypeScript 6 for the application and its typed domain boundaries
  • Tailwind CSS 4 and Lucide icons for the interface system

Data and identity

  • Supabase Postgres for workspaces, scans, immutable assessment results, and operational state
  • Postgres Row Level Security and server-authorized functions for tenant and role isolation
  • Supabase Auth for email Magic Links and Google sign-in, plus Realtime for scan progress signals

Hosting and operations

  • Vercel for deployments, Next.js Functions, Cron recovery, Analytics, and BotID protection
  • Vercel Sandbox for isolated mobile-rendered SEO evidence
  • Separate Preview and Production environments with independent credentials and Supabase projects

Assessment services

  • Google PageSpeed Insights and Lighthouse for mobile page-experience evidence
  • OpenAI moderation and structured qualitative analysis for bounded content assessment
  • FutureContent-owned retrieval, normalization, scoring, and versioned assessment rules

Communication and abuse protection

  • Resend for transactional Workspace invitation email
  • hCaptcha and Supabase Auth rate limits at authentication boundaries
  • Vercel Firewall controls and privacy-preserving request limits for Guest Scans

Quality engineering

  • Vitest and Testing Library for unit and integration coverage
  • Playwright for browser journeys and the Supabase CLI for local database verification
  • ESLint, Prettier, strict TypeScript, production builds, and GitHub Actions as merge gates

A versioned result, not a live provider response

Provider output is normalized before it becomes evidence. Each saved Page Scan retains the Evaluation Version and assessment result that produced it; a later framework change does not silently recalculate historical results.