Case study · Freelance
Reisky — Filipino Martial Arts Studio Platform
- Client
- Reisky Martial Arts · Surrey, BC, Canada
- Role
- Freelance Full-Stack Developer
- Timeline
- Jan 2026 – Apr 2026
A production website and headless-CMS platform for a Filipino martial arts studio, designed and built end-to-end as an international freelance client project in Surrey, BC, Canada.
- 100
- Lighthouse Accessibility — all 12 routes, mobile + desktop
- 50
- Sanity schema types connected to TypeGen
- 55
- Automated tests in the project suite
- ~34K
- Lines of strict-mode TypeScript
- 74
- React components
- 6
- API route handlers
Stack
- Next.js 16
- React 19
- TypeScript (strict)
- Sanity CMS
- GROQ
- TypeGen
The brief
Reisky Martial Arts was an international freelance client project for a Filipino martial arts studio in Surrey, BC, Canada. The work was a production website and headless-CMS platform built end-to-end in strict-mode TypeScript on Next.js 16 and React 19.
Architecture — an env-switched dual data source
The platform uses 12 service-layer modules that route at runtime between Sanity CMS (GROQ) and static fallback data behind a single feature flag. That keeps the CMS path and fallback path aligned behind one application contract.
- 12 service-layer modules route between Sanity CMS (GROQ) and static fallback data.
- A single feature flag controls the active data source.
- The architecture supports a tested CMS pipeline without rewriting the site around a different data shape.
Type-safe content pipeline
The content pipeline connects 50 Sanity schema types to TypeGen and then to 12 unit-tested anti-corruption mappers that produce domain types for the application.
- 50 Sanity schema types are represented in the CMS model.
- TypeGen supports the type-safe bridge between CMS content and application code.
- 12 unit-tested anti-corruption mappers translate content into domain types.
Build scope
The production build covered a sizeable application surface for a freelance client project.
- ~34K LOC in strict-mode TypeScript.
- 23 routes and 74 React components.
- 6 API route handlers.
Quality and accessibility
The project established a 55-test suite and reached strong Lighthouse results across every route.
- 55-test suite.
- Lighthouse Accessibility 100 across all 12 routes on mobile + desktop.
- Lighthouse Best Practices 96 and SEO 92.
Outcome
The result is a production website and headless-CMS platform that demonstrates end-to-end delivery across frontend, API routes, CMS data modeling, typed content mapping, testing, accessibility, and deployment.