Files
such.software/TODO.md
T

3.3 KiB

Such Software - TODO

Before Production

  • Turnstile keys - Set NEXT_PUBLIC_TURNSTILE_SITE_KEY and TURNSTILE_SECRET_KEY in production environment

Nice to Have

  • Blog - Consider adding blog/articles section (MDX, Contentlayer, or headless CMS)
  • Rate limiting - Turnstile handles bots; add rate limiting only if abuse observed
  • Manual screen reader testing (NVDA, VoiceOver)
  • Further canvas performance optimization

Future Projects

  • Puzzle game (mobile app with web demo)
  • Decision making app (mobile app with web demo)

Architecture Notes (Feb 2026)

Blog Options

Option Pros Cons Best For
MDX in repo Simple, version controlled, no deps Dev-only editing, rebuild to publish Tech blog, infrequent posts
Contentlayer Type-safe MDX, great DX with Next.js Learning curve, config overhead Structured content, many posts
Headless CMS (Sanity/Payload) Non-dev editing, media management External dependency, cost at scale Team editing, media-heavy

Recommendation: Start with MDX in apps/web/src/content/blog/, add Contentlayer if it grows.

New App Architecture

Option A: Monorepo (web demos)

apps/
  web/              # such.software
  puzzle-demo/      # Vite or Next.js
  decision-demo/    # Vite or Next.js
packages/
  ui/               # Shared (already exists)
  • ✅ Share @repo/ui, unified CI/CD, easy cross-linking
  • ❌ Coupled deploys, heavier repo

Option B: Separate repos + subdomains

  • puzzle.such.software → own repo
  • decide.such.software → own repo
  • ✅ Independent deploys, clean separation
  • ❌ No shared packages, more repos to manage

Option C: Hybrid (recommended)

  • Web demos in this monorepo (lightweight, share UI)
  • Mobile apps in separate repos (React Native/Expo needs own tooling)
  • Link from such.software portfolio to demos

Mobile Considerations

  • React Native/Expo likely needs separate repo due to tooling differences
  • Web demos can use same game logic via shared packages/ if extracted
  • Consider Expo Web for code sharing between mobile and web demo

Completed

Lighthouse Scores (January 2026)

Page Performance Accessibility SEO Best Practices
Home 99% 100% 100% 77%*
Services 98% 100% 100% 100%
About 99% 100% 100% 100%

*Home 77% Best Practices due to Cloudflare Turnstile third-party cookies.

Accessibility & Compliance

  • WCAG 2.2 AA compliance (100% Lighthouse)
  • Section 508 & ADA compliance
  • Semantic HTML5 architecture
  • Playwright a11y automation (42 tests, chromium/firefox/webkit)
  • Color contrast fixes (emerald-600 → emerald-700)
  • Heading hierarchy (h1 → h2 → h3 → h4)
  • prefers-reduced-motion support in NebulaField
  • Skip-to-main link, ARIA labels, form accessibility

SEO

  • Meta descriptions and OpenGraph on all pages
  • Structured data (JSON-LD Organization schema)
  • Canonical URLs on all pages

Performance

  • Lazy loaded NebulaField with next/dynamic + requestIdleCallback
  • Removed debug console.log statements

Infrastructure

  • Cloudflare Turnstile bot protection
  • .env.example template
  • pnpm start script