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.

Ideas Unlimited Productions — digital archive for 35 years of Mumbai theatre

Role

Designer · Developer · Content Strategist

Timeline

4 days

Team

Solo + Claude Code

Scope

Web, Data Architecture, Agentic AI

Liveideasunlimited.productions

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.

4
Days to build
113+
Productions to archive
0
Lines of code per new production

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

data-layer.md

production-pages.md

person-pages.md

blog-pages.md

animations.md

code-standards.md

singleton-pages.md

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

01Drop folder of raw materials
02Claude reads skill files
03Translate source material
04Research production externally
05Source cast & crew photos
06Write synopsis + blog post
07Build complete JSON entry
08Validate data
09Push → Vercel deploys → Live

The 4 days

Architecture to deployment.
One person, four days.

  1. 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.

  2. 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.

  3. 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.

Ideas Unlimited Productions homepage — Manoj Shah portrait, '35 Years of Fearless Theatre' headline, upcoming shows ticker

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.

Productions grid — Mohan No Masalo, Bhav Prapanch, Karl Marx in Kalbadevi cards

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.

Production detail page for Mohan No Masalo — Pratik Gandhi essay with poster, full cast credits, multilingual production notes

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.

Also Worth Seeing rail — Dr. Anandibai, Hu Chandrakant Bakshi, related Manoj Shah productions

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.

Press & Reviews page — multilingual newspaper review cards across decades

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.

Pratik Gandhi profile — biographical essay, role-by-role production timeline

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.

Beyond IU — external work index for Pratik Gandhi: Scam 1992, Gandhi, Hum Hindustani

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.

Manoj Shah biographical essay page — full-length portrait, longform editorial layout

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.

Upcoming Shows page — Karl Marx in Kalbadevi, Prithvi Theatre Mumbai, June 27

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.

Jain Performing Arts sub-collection — cream/gold theme, Jain mandala motif, separate visual identity

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.

ToolCostRole
Claude Code Max$200 / moAI execution layer — writes files, runs research, generates content
Next.js + TypeScriptFreeFramework — App Router, RSC, file-system routing
VercelFree (hobby)Auto-deploy on git push, image optimisation, edge cache
Domain + DNS~$20 / yrideasunlimited.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.productions

Deep 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.

Search modal — typeahead spans Productions and People in one query, made possible only because the data graph treats both as first-class linked entities

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 / Director's Notes blog grid — Kaagdo, Dr. Anandibai, Bhav Prapanch — each entry produced by the blog-pages.md Claude skill against translated source material

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 12s

The output

Hu Chandrakant Bakshi blog post — example of what the pipeline produces: full editorial article with translated source material, biographical context, photo, and SEO structure

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

Mega menu overlay — full-bleed dark canvas, Karl Marx in Kalbadevi upcoming-show panel, primary navigation as serif headlines

Jain Performing Arts — cross-cut palette

Jain Performing Arts collection page — cream/gold palette, mandala motif, separate visual identity for sacred-collection sub-site

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.

About → 99 Productions, 1999–2025 — chronological list with year tags. Each row is a production waiting for the agentic pipeline to upgrade it from one-line entry to full detail page.

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.