ef0c2ef78e28d861b2d7217e946973db39b73b76
- Project cards stack credits under title on small screens - Fluid headings on /work and project pages; next-project banner wraps - Footer, back, award and nav links padded to ~44px touch targets - theRender.Fish marked as in-house project Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ttvfx.com
The marketing site for Two Tales VFX: Next.js 16 (App Router), Tailwind CSS v4, exported as static HTML.
npm install
npm run dev # http://localhost:3000
npm run build # static site in ./out
Editing content
All copy (studio info, services, projects, contact email) lives in
content/site.ts. Items marked TODO are placeholders.
- Projects: add an entry to
projects. Put stills inpublic/work/and setimage: "/work/name.jpg"(2.39:1 looks best).videoaccepts an MP4 path or a Vimeo/YouTube embed URL. Each project gets a page at/work/<slug>/. - Showreel: drop
public/reel.mp4(muted, looping, ideally under 10 MB) andpublic/reel-poster.jpg, then setsite.reelandsite.reelPoster. - Logo: the fox mark is a vector in
components/Fox.tsx/public/fox.svg, traced fromG:\_ADMIN\TWOTALESLOGO.png. Favicons areapp/icon.pngandapp/apple-icon.png.
Structure
app/
page.tsx home: hero, selected work, services, studio, contact
work/page.tsx project index
work/[slug]/ project detail pages (statically generated)
sitemap.ts, robots.ts
components/ Header, Footer, Hero, Frame, ProjectCard, Reveal, Timecode…
content/site.ts all site content
Deployment is covered in DEPLOY.md.
Description
Languages
TypeScript
95.7%
JavaScript
2.8%
CSS
1.4%
Dockerfile
0.1%