All launches
6 min read

Building a Cinema Magazine With a CMS Hidden Inside It

How an indie film studio in the Philippines got a website that reads like a printed film journal — and a backend their team can run without filing a ticket.

Case StudyNext.jsCustom CMSEditorial DesignFilm & Entertainment
Walking Street Pictures homepage — magazine-style hero with serif 'Issue №01' framing and Walking Street arch logo

Walking Street Pictures is an independent cinema studio in Angeles City, Philippines. They make original web series, short-form art-house films, and anthology projects rooted in the city's late-night urban storytelling — work that takes its name from the Walking Street neighborhood the studio is built around. The brief, when they came to me, was deceptively simple: build us a website. The hard version of the brief, the one we landed on after the first call, was build us a website that reads like a printed film magazine and that we can actually run ourselves.

Those two requirements pull in opposite directions. Magazine-style sites tend to be hand-tuned, opinionated, and brittle. CMS-driven sites tend to be generic, template-shaped, and visually safe. The interesting work was figuring out how to be both at once — without giving up the editorial restraint that makes the magazine half work.

The setup: two audiences, one codebase

There are really two audiences on a film studio's website. The public — actors looking for casting calls, press writing about the productions, fans following Bar Girl or School of Hard Knocks — wants to feel something when they land. They want serif headlines, paper textures, the sense that they've opened an issue of a magazine that takes itself seriously. The studio team — directors, producers, the casting coordinator — wants to publish a new audition call at 11pm without bothering anyone, and have it live by 11:01.

The temptation is to solve this with two separate products: a marketing site you build by hand, and a Wordpress install nobody loves. We didn't. We built one Next.js codebase with two faces — a public, statically-generated magazine, and a private, server-rendered admin panel that talks to the same content layer. Same database, same image pipeline, same deploy.

The magazine half: editorial restraint

The visual language is intentionally analog. The hero treats every visit like opening a new issue, complete with archival numbering ('Issue №01') and a status indicator that says AUDITION OPEN in the same gold accent the rest of the brand uses. The Walking Street arch — the studio's logo mark — sits white on a paper-textured warm-brown background, with the silhouette of a figure walking through it.

Walking Street Pictures homepage — full magazine layout with hero, navigation, and Bar Girl web series promotion
The public site, top-of-page. Magazine numbering, serif headlines, paper texture, gold audition-status indicator.

The navigation rail (Productions · Casting · News · About · Press · Contact) sits in a magazine-style top bar with one high-contrast CTA: Open Casting Calls. Production pages are image-heavy, layered with serif headlines and tactile backgrounds. Cookie consent ships compliant with site-analytics opt-out, because even an art-house cinema site has to pass GDPR review.

The hard part of the editorial half wasn't the typography or the palette. It was the restraint — knowing what not to put on the page. A gradient. A scroll-jacking animation. A 'Subscribe to our newsletter' modal that pops up after 8 seconds. Every default a modern marketing site reaches for would have ruined the magazine illusion. So we left them out.

The CMS half: the publish button is the product

The studio team are filmmakers, not engineers. The brief for the editor side was: if making a new audition call takes more than four clicks, we've failed. Real publishing teams know this — the gap between 'I have a thought' and 'the world can read it' is the thing you optimize for, harder than anything else.

What we built is a private admin route on the same Next.js app, behind auth, with a clean WYSIWYG editor for productions, news posts, and casting calls. Image upload is one drag. Drafts are autosaved. Publishing is one button. Flipping a casting call from open to closed is a toggle in a list, not a code change. The studio's casting coordinator can sit in a coffee shop in Angeles City and update the site between auditions.

Why custom, not Sanity or Contentful

A reasonable critique here: why not Sanity, Contentful, Strapi? They're great. We considered them. The reason we built our own is that the studio's content shapes are unusual — a production has a cast list with character notes, a casting call has an open/closed status, a news post can be promoted to the hero. Off-the-shelf CMSs let you model this, but the editor experience for a non-engineer was always one layer of indirection too deep. By co-locating the editor with the site, we got to design the admin panel like a product, not a settings page.

The architecture, in one paragraph

Single Next.js codebase. Public routes statically generated for speed and SEO; admin routes server-rendered behind auth. Image optimization via Next.js Image (so the studio can drop a 4MB still from a shoot and the site still loads under a second). Deployed to Vercel for global edge delivery. No multi-repo split, no headless-vs-frontend boundary to maintain, no 'wait, that's in the CMS' confusion when something needs changing.

The takeaway

Magazines and CMSs aren't opposing forces. They're the same shape with different audiences. The editorial restraint that makes the public side feel premium is the same discipline that makes the editor feel calm to use. Two faces, one codebase, one thing to maintain. The studio publishes their own work now. That's the whole point.

Two faces, one Next.js codebase. Zero developer tickets to publish.

Want the rest of the story?

The portfolio case study has the full project breakdown — meta, services, tech stack, gallery, results.

Proudly Serving Nashville & Beyond

NashvilleHendersonvilleGallatinGoodlettsvilleMount JulietLebanonFranklinMurfreesboroSmyrnaLa Vergne