Build · Ideas Unlimited Productions · Mumbai · 2026
35 years of theatre, online in 4 days.
One designer. One AI. No CMS.
I designed and built a Next.js + Claude Code platform for one of Mumbai's most important theatre companies — 113+ plays, 2,300+ performances, decades of multilingual archive — in four days. The system keeps building itself: I drop a folder of raw materials, Claude produces a fully researched, multilingual, SEO-optimised production page, and Vercel deploys it.

Role
Designer · Developer · Content Strategist
Timeline
4 days
Team
Solo + Claude Code
Scope
Web, Data Architecture, Agentic AI
Background
A 35-year theatre institution
with almost no digital footprint.
Ideas Unlimited Productions is a Mumbai theatre company founded by Manoj Shah — director, actor, producer. 35 years of continuous work, 113+ plays across Gujarati, Hindi, English, and Marathi, performed in 2,300+ shows across 35+ cities globally. Notable productions include Mohan No Masalo (featuring Pratik Gandhi before Scam 1992, a Limca Book of Records holder), Mareez (the longest-running Gujarati play, continuously performed at Prithvi Theatre since 2004), and Bombay Flower (an NCPA co-production). I have been associated with the company since I was sixteen.
What I built is not a website — it is an agentic publishing system. Eight Claude skill files encode design rules, data schema, research methodology, content standards, and validation. Every new production is a folder drop away from a fully researched, translated, SEO-optimised page. The website is a consequence; the system is the product.
Impact
Four days from empty repository to a live, multilingual, editorial archive. 15 productions published; 98 remaining ready for the pipeline. Zero lines of code per new production thereafter.
The problem
Three platforms tried and abandoned.
All broke on the same problem.
A theatre company's data is inherently relational. A person is not simply “an actor.” They are the actor in play A, the assistant director in play B, the writer in play C. Many to many, with attributes on the join — the role changes per production. Every no-code CMS broke against that exact shape.
WordPress
Too technical for non-developers to update. 10–12 productions at peak. Every design change required a developer.
Webflow
CMS couldn't express relational data. A person can be an actor in one play, a director in another. Webflow can't attach a role to a person per production.
Framer
Even more limited CMS than Webflow. One tag per person. The relational problem got worse, not better.
Next.js + Claude Code
Code has no CMS constraints. Relational data model designed correctly from the start. Claude Code compressed weeks of development into 4 days.
The real brief, self-imposed: build a permanent digital home for one of India's most significant theatre institutions — and design it so it can keep building itself with minimal human effort.
The system
8 skill files. Zero coding
per new production.
The 4-day build was possible because the agentic workflow was designed before a single line of code was written. Eight Claude skill files encode everything — design rules, data schema, research methodology, content standards, animation behaviour, code conventions, and deployment validation.
Claude
orchestrator
design-system.md
Typography, colour, spacing, component patterns
data-layer.md
JSON schema — productions, people, press, festivals
production-pages.md
Full workflow for adding a new production
person-pages.md
Research + profile generation for cast & crew
blog-pages.md
Editorial guidelines, SEO structure, longform standards
animations.md
Framer Motion patterns — consistent motion behaviour
code-standards.md
TypeScript standards, component structure, naming
singleton-pages.md
Rules for Home, About, Contact, Festivals pages
The pipeline
Folder in. Production page out.
Folder
raw materials
8 skill files
.md
External research
archives, festivals
Claude
orchestrator
JSON entry
schema-typed
Production page
Next.js RSC
Blog post
multilingual
GitHub
git push origin
Vercel
auto-deploy · live in 60s
The 4 days
Architecture to deployment.
One person, four days.
Day 1
Setup + data architecture + skill files
Next.js project initialised. Data architecture designed from first principles: productions.json, people.json, press.json, festivals.json. Each cast/crew entry carries both a person_id and a role — the relational model the no-code platforms couldn't express. 8 Claude skill files written end-to-end before any UI work.
Day 2 → 3
15 productions + content + people directory
15 productions added with full detail pages — researched synopsis, cast/crew linked to people profiles, gallery, press entries, ambient music. People directory populated. Blog seeded with longform editorial articles. Manoj Shah biographical essay built as the deepest page on the site.
Day 4
Singleton pages + launch
Home, About, Contact completed. Legacy numbers strip with count-up animation. Performed-At marquee. Newsletter section. Responsive validation. GitHub push → Vercel auto-deploy → site live.
The work
Designed in code, not in Figma.
At this speed, they had to be the same tool.
Four surfaces every production page composes against: the editorial home, the production detail, the people directory, and the Manoj Shah longform essay. Each one is a Next.js RSC page assembled from the relational JSON and the design system skill.
Homepage
Dark editorial. Theatre-forward.

The site should feel like entering a theatre, not a corporate brochure. Manoj Shah portrait, ambient sound, upcoming-shows ticker overhead. 35 years stated up front: "Fearless Theatre."
Productions grid
Every production, scannable in one surface.

Year tags, language tags, status flags (Now Performing). One agentic pipeline produced every card from a JSON entry — synopsis, photo, language metadata, all generated.
Production detail
Mohan No Masalo — a permanent, searchable home.

Full synopsis, cast & crew with role-specific links, gallery, press reviews, related productions, ambient music while you read. Built from a single JSON entry by the agentic pipeline.
Also worth seeing
Related productions, surfaced by the relational model.

The 'also worth seeing' rail uses person and theme links across the JSON graph — a person in this production directs another; a theme recurs across decades. The CMS workaround would be hand-curation; the schema gives it for free.
Press & Reviews
Decades of newspaper clippings, finally indexed.

Full-bleed photo strip, multilingual review cards, source attributions. Each clipping links back to the production it reviewed and the person it praised — bidirectional traversal in two clicks.
People directory
Pratik Gandhi — one person, many roles, expressed correctly.

The relational model that broke every CMS. Each profile lists every production with the exact role — actor in this play, assistant director in that, narrator in a third.
Beyond IU
Where the company's people went next.

Pratik Gandhi's external work — Scam 1992, Gandhi, films and TV — pulled into the same person profile. The archive doesn't end at the theatre door.
Manoj Shah essay
35 years of work, told as a single narrative.

A longform biographical essay — the deepest page on the site. Timeline, philosophy, notable productions, collaborators. Not a bio card — a portrait.
Upcoming shows
On stage, this week.

Date, time, venue, city — a single 'next show' surface that reuses the production-detail data. No separate calendar to maintain.
Jain Performing Arts
A sub-collection with its own visual language.

A separate light-cream palette and Jain mandala motif for the sacred-collection sub-site. Same data, different theme — the design system handles the cross-cut.
Design decisions
Five decisions that made 4 days possible.
Speed without architecture is a demo. Each of these decisions cut a category of work, not just a task — and each is portable to the next regulated-domain build.
Decision
What it reveals
Designed in code, not in Figma
I think at this build speed, the design tool and the build tool have to be the same. Static comps would have slowed the loop without improving the outcome. I work directly in TSX with Tailwind and iterate against live components.
Relational JSON over a CMS
I think CMS limitations are data-model limitations. A theatre company is many-to-many with attributes on the join. Hand-rolled JSON with a typed schema is faster, more correct, and removes the ceiling that killed three earlier attempts.
8 skill files written before any UI
I think the system is the product, not the website. Encoding design rules, research methodology, and content standards into Claude skills made the agentic pipeline reproducible. The website is a consequence of the system.
Dark editorial aesthetic, 5/7 split layout, ambient music
I think theatre lives in the dark and sounds like sound. The site should feel like entering a theatre. Onassis-style 5/7 split for editorial weight, Playfair Display for cultural seriousness, ambient track per production for sense memory.
Janam-reviews-then-pushes commit gate
I think AI accelerates implementation, not architecture. Claude writes files; I review the diff, push to git, and Vercel deploys. The override moment lives at the commit, not the prompt.
Context
Hand-coded estimate: 4 to 6 weeks.
Actual delivery: 4 days.
Without AI — honest estimate
4–6 weeks
Hand-coding the relational schema, scaffolding pages, translating multilingual content, sourcing photos, writing SEO copy. Solo, part-time evenings — realistically a month or more.
With AI — actual
4 days
Eight skill files, one relational schema, Claude Code as execution layer. Architecture took the morning of day one; the rest was reviewing diffs and pushing commits.
Cost transparency
Total monthly cost to keep the system running and to publish new productions: about $200/month, plus $20/year for the domain. Reproducible by anyone with the same toolchain.
| Tool | Cost | Role |
|---|---|---|
| Claude Code Max | $200 / mo | AI execution layer — writes files, runs research, generates content |
| Next.js + TypeScript | Free | Framework — App Router, RSC, file-system routing |
| Vercel | Free (hobby) | Auto-deploy on git push, image optimisation, edge cache |
| Domain + DNS | ~$20 / yr | ideasunlimited.com |
Scope boundary
What I built is the system — the relational schema, the skill files, the pipeline, and the surfaces. The content track runs in parallel: a team of two to three people researches plays, translates Gujarati / Hindi / Marathi source material, and surfaces source photos and press clippings. AI handles the synthesis and SEO; humans handle the cultural memory.
Closing
One designer-developer, four days, a system that keeps building itself. The website is a consequence. The system is the product.
Visit ideasunlimited.productionsDeep dive
Inside the four days,
for readers who want it.
Chapter 1 · The relational data problem
The constraint was never design skill.
It was data architecture.

Cross-entity search — productions and people in one typeahead. Trivial in code. Impossible in Webflow.
Webflow CMS can attach a tag to a person. It cannot attach a role to a person per production. The workarounds existed but were fragile and unscalable to 100+ productions. Framer was even more limited — one tag per person. The relational problem got worse, not better.
In code, this is trivial: a production has a cast_crew array where each entry carries both a person_id and a role. The entire structural limitation that killed three platforms was solved in a single JSON schema decision on day one.
Chapter 2 · The skill files are the real product
Designing the system was harder
than building the site.

Stories grid — everything you see is the blog-pages.md skill in action. Editorial voice, structure, and SEO encoded once, applied per article.
The 8 skill files encode design rules, data structure, content standards, research methodology, and validation — everything Claude Code needs to produce consistent, high-quality output without human supervision of each decision. They are versioned, reviewable, and reusable across future cultural-archive builds.
design-system.md ensures every page respects the dark editorial aesthetic. data-layer.md ensures relational integrity. production-pages.md runs the full research-to-page pipeline. person-pages.md handles biographical research across multiple databases. blog-pages.md maintains editorial voice. The remaining three handle animation behaviour, code conventions, and singleton pages.
Chapter 3 · The pipeline in full
Folder in. Live page out.
No code per production.
✔ Reading production-pages.md✔ Translating Gujarati synopsis — Hindi, English✔ Researching cast — 8 sources cross-checked✔ Sourcing photos — public databases✔ Writing productions.json entry✔ Writing blog post — bombay-flower.mdx✔ Validating relational integrity — 0 errors$ git add . && git commit -m "add: Bombay Flower"$ git push origin main✔ Vercel deploying...✔ Live — ideasunlimited.com/productions/bombay-flower# elapsed: 4m 12sThe output

One folder of raw clippings → one finished editorial article. End-to-end Claude-generated, reviewed and pushed by me.
When a new production needs to be added, I drop a folder containing raw materials — synopsis in any language, photographs, YouTube links, cast list, newspaper clippings — and instruct Claude Code to add the production. Claude reads the production skill, translates source material, researches the production externally, finds backlink-worthy sources for SEO, adds new people to people.json with researched biographical profiles, sources photos from public databases, writes a rich synopsis, builds the complete JSON entry, writes a longform blog post, generates review pages for newspaper clippings, and validates everything.
The pipeline is not about replacing work. It makes work tractable that would otherwise be impossible for one person working part-time on a 113-production archive.
Chapter 4 · Dark editorial. 5/7 split. Ambient music.
Theatre lives in the dark
and sounds like sound.
Mega menu — full-bleed

Jain Performing Arts — cross-cut palette

The site should feel like entering a theatre, not a corporate brochure. Dark editorial aesthetic was a first-principles decision, not a trend. The Onassis-style 5/7 split column layout creates editorial weight — content feels considered, not crowded. Playfair Display serif type signals cultural seriousness. Full-bleed photography and a YouTube video hero put the work first.
Ambient music per production was a creative decision unique to this site. Theatre is sound as much as sight. Letting the music of a production play while reading about it changes the experience entirely — sense memory, not just information.
Chapter 5 · The content challenge
The platform problem was solvable.
The content problem is ongoing.

99 productions waiting in the queue. The system is ready. The content team is researching.
Source materials exist in Gujarati, Hindi, Marathi, and English. Newspaper reviews, director's notes, programme booklets — mostly in regional languages. Every piece needs translation and rewriting. Photographs, video recordings, press clippings, posters span 35 years and live in physical files, old hard drives, and personal collections.
Because nothing was properly documented digitally before, every production requires original research — newspaper archives, festival records, academic papers, external mentions — to reconstruct the full picture. The system had to be designed to make adding content as frictionless as possible. That's why the skill files came before the UI.
Chapter 6 · What I'd do differently
Three lessons I'd hand
to anyone starting an agentic build.
01
Write the skill files exhaustively before you start
Some early productions needed correction passes because the blog-writing skill wasn't specific enough about voice and structure. The production-pages skill evolved during the build. Day-zero specificity beats mid-build refactor.
02
Set up analytics on day one
Site launched without tracking. The first weeks of traffic — likely the highest due to novelty — went unmeasured. Plumbing analytics on day one is cheap; retro-fitting it loses the data window forever.
03
Record a video of the agentic pipeline running
A 60-second screen recording of Claude turning a folder of raw materials into a live production page is more convincing than any prose. Capture the artefact while the build is fresh.
Chapter 7 · What this project made me understand
AI in service of art,
not commerce.
Cultural institutions — theatre companies, archives, arts organisations — are exactly where this technology can do its most meaningful work. They have decades of content and almost no resources to digitise it. The same agentic pipeline that took IU online in four days is the pipeline I'd hand to any regional theatre, music school, or independent gallery sitting on three decades of unscanned material.
Every platform I tried before taught me something. WordPress taught me that non-technical handoff is a real constraint. Webflow taught me that CMS limitations are data-model limitations. Next.js + Claude Code taught me that when you remove the CMS ceiling, the constraint shifts to where it should be: design and content quality.