Noah Dummett Investigation

Documentation

Technical Documentation

Technical documentation for the Noah Dummett investigation platform architecture, APIs, and development guidelines.

Platform Architecture

Next.js App Router Structure

The platform uses Next.js 15 with App Router and route groups for clean URL separation between the main site and documentation.

src/app/
├── (main)/           # Main investigation site
│   ├── page.tsx      # Homepage (noahdummett.com)
│   ├── evidence/     # Evidence portal
│   ├── legal/        # Legal documents
│   └── noah-dummett/ # Profile page
├── (docs)/           # Documentation subdomain
│   ├── layout.tsx    # Docs-specific layout
│   └── docs/         # Documentation pages
│       ├── page.tsx  # Docs homepage (docs.noahdummett.com)
│       ├── evidence-analysis/
│       └── technical/
├── globals.css       # Global styles
└── layout.tsx        # Root layout

Middleware & Routing

Subdomain Routing

Custom middleware handles subdomain routing to provide clean URL separation:

  • noahdummett.comsrc/app/(main)/
  • docs.noahdummett.comsrc/app/(docs)/docs/
// src/middleware.ts
export function middleware(request: NextRequest) {
  const hostname = request.headers.get('host') || '';
  
  if (hostname.startsWith('docs.')) {
    const newPath = pathname === '/' ? '/docs' : `/docs${pathname}`;
    return NextResponse.rewrite(new URL(newPath, request.url));
  }
  
  return NextResponse.next();
}

Technology Stack

Core Technologies

Frontend

  • Next.js 15 (App Router)
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Framer Motion

Content & Documentation

  • MDX Support
  • Remark & Rehype Plugins
  • Syntax Highlighting
  • Auto-generated TOC

Deployment & Infrastructure

Single Deployment Strategy

Both the main site and documentation are served from a single Next.js deployment, with subdomain routing handled by middleware.

  • Single codebase for both main site and docs
  • Shared components and styling
  • Unified deployment pipeline
  • Centralized content management