A working demonstration of a modernized National Testing Network web presence, built by That Simple Tech. One codebase replaces the current three-property split (React SPA + ColdFusion marketing pages + WordPress agency site) with a server-rendered, fully crawlable application on AWS Amplify Gen2.
Demo content only. Not affiliated with or endorsed by National Testing Network or Ergometrics & Applied Personnel Research, Inc.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router, SSG/SSR) + TypeScript + Tailwind CSS 4 |
| Auth | Amazon Cognito user pool (Amplify Gen2 defineAuth, optional TOTP MFA, Admins/Agencies groups) |
| API | AWS AppSync GraphQL (Amplify Gen2 defineData) with per-model authorization directives |
| Functions | TypeScript Lambda (score-summary, AppSync custom query) + Python 3.12 Lambda (pricing-quote, Function URL via CDK escape hatch) |
| Infra | Amplify Gen2 (CDK-based), deployed by ampx pipeline-deploy on git push |
| Hosting | AWS Amplify Hosting (SSR compute) |
npm install
npm run dev # frontend only, demo mode (no AWS needed)
npx ampx sandbox # personal cloud sandbox; writes amplify_outputs.json
npm run dev # now /dashboard uses live Cognito + AppSyncamplify_outputs.json is committed as a stub so the frontend builds without a
backend; the sandbox and the Amplify pipeline both overwrite it with real
outputs. Without a backend the site runs in demo mode (sample dashboard data,
locally computed pricing quotes) and labels itself accordingly.
Connected to AWS Amplify Hosting; every push to main runs amplify.yml:
backend deploy via ampx pipeline-deploy, then next build. See
docs/RUNBOOK.md for environment setup, seeding, and rollback.
MODERNIZATION.md— the audit of the current NTN web presence and the case for this architecturedocs/ARCHITECTURE.md— system design and data flowdocs/adr/— architecture decision recordsdocs/RUNBOOK.md— deploy, seed, rollback, troubleshootdocs/ONBOARDING.md— new-engineer guide (first PR in under an hour)