Project Brief
What I Built
- A Next.js App Router website with dedicated home, games, about, contact, and news experiences.
- A Sanity-powered editorial flow for news content with author support and rich article structures.
- A webhook-based revalidation endpoint so published content appears without full redeploys.
- Cinematic UI behavior using GSAP and custom scroll/animation utilities.
- Cookie and analytics integration (CookieYes + Umami) aligned with privacy requirements.
Architecture Decisions
- Routing and app structure: Route groups in src/app keep public pages and admin/CMS functionality separated.
- Content operations: News schema lives in Sanity, while static product/studio data is centralized in src/config/siteConfig.ts.
- Rendering strategy: News pages are fetched server-side with real-time freshness goals, then revalidated through webhook triggers.
- Design system approach: Reusable section wrappers and animation components keep visual consistency while allowing page-specific identity.
Build Process
- Foundation - establish route layout, shared components, and config-first content structure.
- CMS integration - define schemas, wire client queries, and render dynamic article pages.
- Publishing pipeline - add signed webhook revalidation for reliable content updates.
- Experience polish - apply animation timing, motion depth, and visual hierarchy tuned to the horror-studio brand.
- Production concerns - plug in cookie consent, analytics script gating, and SEO metadata/sitemap handling.
Challenges and Solutions
- Keeping content live without redeploy pain: I used webhook-triggered revalidation to update listing and detail routes immediately after publish.
- Balancing heavy visuals with performance: I constrained animation scope to high-impact sections and leaned on optimized image loading patterns.
- Avoiding config sprawl: I kept studio/game metadata centralized to simplify updates and reduce hardcoded values across components.