Lab 01 — Process

13 case studies, 33 code components, 7 CMS collections and 60+ slides with client names retyped out — built by directing AI agents, and reviewed by me, frame by frame.

Process2026ClaudeFramer MCPPythonOCR

This portfolio, directed — not drawn

01The idea

What happens when a design leader stops pushing pixels and starts directing? This site was the test. I set the brief, the voice and the rules; AI agents did the heavy lifting; I reviewed every frame before it shipped.

The rules were the interesting part:

  • Clients stay anonymous — the story and the outcome stay in
  • No confidentiality notes on case pages; they live on the terms page
  • Brand-free visuals only — client names retyped out of the slides, logos masked, nothing invented
  • Every claim must trace back to a deck slide, a résumé line or a feedback note

02How it's built

The pipeline, end to end:

  • Read — my portfolio and craft review decks, résumé, Medium articles and old project PDFs, extracted to text and slide images
  • Retype — OCR found client names on 60+ slides; a script erased each one and retyped the line without it, in a matching font, and I checked every slide by eye
  • Structure — seven CMS collections: projects, experience, reviews, posts, services, lab and site settings
  • Build — 33 React code components in Framer, driven through the Framer MCP, with the CMS data baked in for server rendering
  • Verify — every pasted file read back and diffed; the live site checked in a browser

The check found a real bug: every case page was quietly rendering the same case, so 'next case' went nowhere. Fixed by reading the page address first.

mask.py
# find brand names on a slide, paint them out with the surrounding colour
for word, box in ocr(slide):
    if BRANDS.search(word):
        bg = median(ring_around(box))      # colour just outside the word
        fill(slide, box.pad(3), bg)        # a bar, not a blur
# then: a human looks at every crop before it ships

03What I learned

AI gets you through the first 80% at a speed no team can match. The last 20% is judgement — what to anonymise, what not to claim, which story to tell — and that part doesn't delegate.

  • Write the rules down before the first prompt
  • Never let the agent fill a gap with a guess; make it ask
  • Verify against the live thing, not the file
The job didn't get smaller. It moved — from making every frame to directing every frame.

Lab 01 — Process

13 case studies, 33 code components, 7 CMS collections and 60+ slides with client names retyped out — built by directing AI agents, and reviewed by me, frame by frame.

Process2026ClaudeFramer MCPPythonOCR

This portfolio, directed — not drawn

01The idea

What happens when a design leader stops pushing pixels and starts directing? This site was the test. I set the brief, the voice and the rules; AI agents did the heavy lifting; I reviewed every frame before it shipped.

The rules were the interesting part:

  • Clients stay anonymous — the story and the outcome stay in
  • No confidentiality notes on case pages; they live on the terms page
  • Brand-free visuals only — client names retyped out of the slides, logos masked, nothing invented
  • Every claim must trace back to a deck slide, a résumé line or a feedback note

02How it's built

The pipeline, end to end:

  • Read — my portfolio and craft review decks, résumé, Medium articles and old project PDFs, extracted to text and slide images
  • Retype — OCR found client names on 60+ slides; a script erased each one and retyped the line without it, in a matching font, and I checked every slide by eye
  • Structure — seven CMS collections: projects, experience, reviews, posts, services, lab and site settings
  • Build — 33 React code components in Framer, driven through the Framer MCP, with the CMS data baked in for server rendering
  • Verify — every pasted file read back and diffed; the live site checked in a browser

The check found a real bug: every case page was quietly rendering the same case, so 'next case' went nowhere. Fixed by reading the page address first.

mask.py
# find brand names on a slide, paint them out with the surrounding colour
for word, box in ocr(slide):
    if BRANDS.search(word):
        bg = median(ring_around(box))      # colour just outside the word
        fill(slide, box.pad(3), bg)        # a bar, not a blur
# then: a human looks at every crop before it ships

03What I learned

AI gets you through the first 80% at a speed no team can match. The last 20% is judgement — what to anonymise, what not to claim, which story to tell — and that part doesn't delegate.

  • Write the rules down before the first prompt
  • Never let the agent fill a gap with a guess; make it ask
  • Verify against the live thing, not the file
The job didn't get smaller. It moved — from making every frame to directing every frame.

Lab 01 — Process

13 case studies, 33 code components, 7 CMS collections and 60+ slides with client names retyped out — built by directing AI agents, and reviewed by me, frame by frame.

Process2026ClaudeFramer MCPPythonOCR

This portfolio, directed — not drawn

01The idea

What happens when a design leader stops pushing pixels and starts directing? This site was the test. I set the brief, the voice and the rules; AI agents did the heavy lifting; I reviewed every frame before it shipped.

The rules were the interesting part:

  • Clients stay anonymous — the story and the outcome stay in
  • No confidentiality notes on case pages; they live on the terms page
  • Brand-free visuals only — client names retyped out of the slides, logos masked, nothing invented
  • Every claim must trace back to a deck slide, a résumé line or a feedback note

02How it's built

The pipeline, end to end:

  • Read — my portfolio and craft review decks, résumé, Medium articles and old project PDFs, extracted to text and slide images
  • Retype — OCR found client names on 60+ slides; a script erased each one and retyped the line without it, in a matching font, and I checked every slide by eye
  • Structure — seven CMS collections: projects, experience, reviews, posts, services, lab and site settings
  • Build — 33 React code components in Framer, driven through the Framer MCP, with the CMS data baked in for server rendering
  • Verify — every pasted file read back and diffed; the live site checked in a browser

The check found a real bug: every case page was quietly rendering the same case, so 'next case' went nowhere. Fixed by reading the page address first.

mask.py
# find brand names on a slide, paint them out with the surrounding colour
for word, box in ocr(slide):
    if BRANDS.search(word):
        bg = median(ring_around(box))      # colour just outside the word
        fill(slide, box.pad(3), bg)        # a bar, not a blur
# then: a human looks at every crop before it ships

03What I learned

AI gets you through the first 80% at a speed no team can match. The last 20% is judgement — what to anonymise, what not to claim, which story to tell — and that part doesn't delegate.

  • Write the rules down before the first prompt
  • Never let the agent fill a gap with a guess; make it ask
  • Verify against the live thing, not the file
The job didn't get smaller. It moved — from making every frame to directing every frame.

Contact…

Gurgaon · IST

Hiring for design leadership, or a journey that needs someone to look at it from the other side? Write to me — I reply within a day.

Email me

Contact…

Gurgaon · IST

Hiring for design leadership, or a journey that needs someone to look at it from the other side? Write to me — I reply within a day.

Email me

Contact…

Gurgaon · IST

Hiring for design leadership, or a journey that needs someone to look at it from the other side? Write to me — I reply within a day.

Email me
Prod.Portfolio 2026
SceneFooter
Take1
RollAC-26
DirectorAmit Chotia
Date 
Buildv1 · Oct 2026

Thanks for reading to the end. Say hello — I read every message and reply within a day.

Write to meamitchotia9@gmail.com