Private review build. Items marked “In review” are awaiting a decision before going public.

All projects

Molde

One master. Every format. On brand.

Molde is a Figma-inspired layout studio for automotive retail advertising. It takes one approved master (vehicle, offer, legal copy, seals) and unfolds it into every format a dealer campaign needs, from 1080×1920 stories to 360×80 micro-banners, with brand guardrails, a human-approved pilot per format and versioned review. It productizes a production system that turned out 400+ final pieces for dealer campaigns across eight automotive brands in September 2026, and was validated against those real jobs.

Internal production tool (restricted access)

400+
final ad pieces in delivery folders, September 2026
25
output formats, from 360×80 to 1920×1125
8
automotive brands
165
versions tracked, none overwritten
MoldeMolde editor: a format rail with live thumbnails and per-format checks, a proofing stage with safe margins and zones, and an inspector. Dealer address and layer names are blurred.

Molde editor: a format rail with live thumbnails and per-format checks, a proofing stage with safe margins and zones, and an inspector. Dealer address and layer names are blurred.

One master in, every format out

Frames are shown at their true relative size.

Master
Story
Story
Square
Widescreen
Widescreen
Strip
Micro banner
One 1080×1350 feed master becomes seven formats, from a 1109×1973 mobile page to a 360×80 strip. Same offer, same legal, same hierarchy. Repeated for 20 offers.
Master
Story
Square
Site banner
The approved 1080×1350 master plus the clean key visual become story, square and landscape, per city. 10 offers × 3 cities × 3 formats = 90 pieces.
Master
Half page
Interstitial
Large rectangle
Medium rectangle
Leaderboard
Mobile banner
A single feed post becomes the full programmatic display set, down to a 320×50 banner where every pixel of hierarchy counts.

How it works

  1. 1

    One master in

    Drop the approved master and the client reference. The original is read, never modified; every element keeps its live text and vector shapes.

  2. 2

    Frames, roles, auto-layout

    Elements are understood by role: vehicle, offer, legal, seals, brand. Lockups move as blocks, and frames follow Figma-style constraints (direction, spacing, padding, hug or fill) so each format is recomposed, not shrunk.

  3. 3

    Brand guardrails

    A missing font blocks export instead of being silently swapped. The offer outweighs badges, legal copy stays justified, and the product keeps its shadow and ground. Blockers and warnings are visible for every format.

  4. 4

    Pilot, then scale

    A person approves one pilot per format. Only approved formats render every offer, at exact pixel sizes, from the same renderer used for the preview. The output is the final PNG/JPG, nothing else.

  5. 5

    Review and versioning

    Each piece is compared side by side, or as a diff, against the approved reference. Versions are immutable, approvals are bound to the exact file, and clients only see what has been released to them.

Prompts, templates and pipeline internals stay private. What you see here is the output and the interface, not the recipe.

The studio

MoldeImport check (read, check, generate formats): fidelity score against the Photoshop composite, a missing-font guardrail, and elements mapped to roles.
Import check (read, check, generate formats): fidelity score against the Photoshop composite, a missing-font guardrail, and elements mapped to roles.
MoldeTemplate desk: the client reference and the generated format side by side, with all seven formats as tabs.
Template desk: the client reference and the generated format side by side, with all seven formats as tabs.
MoldeAuto-layout lab: Figma-style direction, gap, padding and hug/fill on a synthetic demo document.
Auto-layout lab: Figma-style direction, gap, padding and hug/fill on a synthetic demo document.
MoldeQA board: the approved reference and the generated output, format by format, across all seven BYD sizes.
QA board: the approved reference and the generated output, format by format, across all seven BYD sizes.

In production

Dealer campaigns produced for Servopa, a multi-brand dealer group, through an agency. The automakers were not direct clients.

Audi

City-level retail offers for Audi dealerships in Curitiba, Cascavel and Maringá

StoryAudi
StoryAudi
SquareAudi
SquareAudi
Site bannerAudi
Site bannerAudi

BYD

Dealer retail campaign (BYD Servopa): 20 offers unfolded into 7 formats each

StoryBYD
StoryBYD
SquareBYD
WidescreenBYD
WidescreenBYD
StripBYD

Volkswagen

Dealer sales-event campaign (Servopa): stories and site banners, versioned across revision rounds

Site bannerVolkswagen
Site bannerVolkswagen
SquareVolkswagen
StoryVolkswagen
StoryVolkswagen

Hyundai

Dealer offers (Servopa): site banners, square feed and link ads

Site bannerHyundai
Site bannerHyundai
SquareHyundai
Site bannerHyundai
CardHyundai

GAC

Dealer banners for the 'Move Brasil' offer to taxi and ride-hailing drivers

WidescreenGAC
Site bannerGAC
WidescreenGAC
CardGAC

Harley-Davidson

Dealership retail campaign, 2026 Softail and Touring lines, six formats per offer

StoryHarley-Davidson
FeedHarley-Davidson
StripHarley-Davidson
Site bannerHarley-Davidson
SquareHarley-Davidson

Honda

Dealer campaign (Honda Servopa): one feed post unfolded into the full programmatic display set

Half pageHonda
Large rectangleHonda
InterstitialHonda
LeaderboardHonda

Volvo

Dealer offers (Volvo Servopa): stories and feed

StoryVolvo
FeedVolvo
FeedVolvo

By the numbers

140
BYD pieces (20 offers × 7 formats), first full batch within a ~14 h production window
90.7%
of BYD pieces passed visual QA on the first full-scale run
99.7%
pixel match to the Photoshop composite when importing a real BYD master
90
Audi pieces from one master per offer (10 offers × 3 cities × 3 formats)
290
automated tests in Molde's suite
2.7 min
median per piece on a 25-piece Volkswagen run (72% approved first time)

Built with

  • React 19
  • TypeScript
  • Vite
  • Canvas 2D rendering (preview and export use the same renderer)
  • PSD parsing in the browser and in Python
  • Cloudflare Workers, D1 and R2
  • Role-based access with signed JWTs
  • Vitest