Skip to main content
Ross Boag
AI-generated class timetable screen graphic
AI-generated izakaya menu — Japanese restaurant design

AI Signage Design System

VIZN AI

A generation system I designed, engineered and shipped end to end: brand documents in, governed on-brand signage screens out, scheduled to physical displays.

VIZN AI / Case Study

I built an on-brand graphic design generator for digital signage. End to end. Alone.

Founder / product designer / systems architect / front-end engineer

Digital signage has a production problem. A venue with six screens needs a menu, a weekly offer, a seasonal promotion, a timetable and a brand loop, in two orientations, refreshed constantly, all of it on brand. The honest cost of doing that by hand is a designer on retainer. The dishonest cost is a template tool that makes every business look like the same business.

VIZN AI is my answer to both. It is a generation system, not a template library. A business feeds it a brand document and a menu; it compiles a locked design specification, assembles a governed prompt of roughly thirty-six thousand characters, orchestrates two model providers, scores the result against the spec, corrects it, stores it durably, and schedules it to a physical screen. Nobody drags a text box. If a screen is wrong, you tell it why and it regenerates within the rules.

I designed the product, wrote the design directive that encodes how a menu board should actually be composed, built the Next.js application and the generation engine, the queue, the tenancy and billing model, the device player, the test suite, and the infrastructure it runs on. Every screen below came out of that system.

Generated output / unedited

Eleven screens, six art directions, two orientations, zero manual retouching.

Each specimen is a first-class signage render: safe areas respected, hierarchy enforced, cultural direction carried through typography and composition rather than pasted on as a filter.

Generated gym promotion in a constructivist art direction
Portrait
ConstructivistGym promotion
Generated ramen menu board in an ukiyo-e illustration style
Landscape
Ukiyo-eMenu board
Generated hotel brand screen in an art deco style
Portrait
Art decoHotel brand screen
Generated coffee menu in a mid-century modern style
Landscape
Mid-century modernCoffee menu
Generated ryokan brand screen in a Japanese ink wash style
Portrait
Sumi-e ink washRyokan brand screen
Generated Fish Friday promotional screen
Landscape
CampaignWeekly promotion
Generated barbershop promotion for a gentleman's cut
Portrait
EditorialService promotion
Generated izakaya restaurant menu screen
Landscape
IzakayaMenu board
Generated seasonal latte promotion screen
Portrait
SeasonalProduct promotion
Generated Turkish restaurant menu in an Iznik tile art style
Landscape
Iznik tileMenu board
Generated class timetable screen graphic
Landscape
Utility gridTimetable

7

pipeline stages from brand document to live screen

36k

characters of governed directive compiled per generation

1,700+

automated tests across engine, queue and QA

30+

database models behind tenancy, billing and lifecycle

2

model providers orchestrated behind one design brain

0

manual canvases: every screen is regenerated against a locked spec

System architecture

From a brand PDF to a scheduled screen in seven governed stages.

The engine is deliberately strict. Every stage has a contract, every failure has a named state, and no stage is allowed to spend money the previous one has not authorised. The strictness is what makes the output look designed rather than generated.

  1. Stage 01

    Brand ingestion and DNA extraction

    A business does not arrive as a clean brief. It arrives as a PDF, a logo file, a menu and a strong opinion.

    • Brand guideline documents parsed from PDF and DOCX into structured tokens: palette, type families, tone, forbidden treatments.

    • Logos normalised, background-stripped and stored as processed brand assets with durable object references, never a bare URL.

    • A compact "brand DNA" record is compiled per organisation and injected into every downstream prompt so nothing is regenerated off-brand.

    • Every input passes a content moderation gate before it can cost a single generation credit.

  2. Stage 02

    Locked design specification

    The system is opinionated on purpose. There is no manual canvas. You do not nudge a text box; you regenerate against a spec.

    • Canvas, safe areas, type scale, hierarchy and legibility thresholds are fixed per signage format (portrait and landscape screens, menu sets, playlists).

    • A wizard captures business context, audience, offer and creative controls, validated with typed schemas before anything reaches a model.

    • Chat refinements are constrained edits: layout, typography and brand rules are preserved while copy, imagery or mood change.

    • Style chips carry their own visual principles, composition rules and constraints, so "art deco" means the same thing on the hundredth screen as the first.

  3. Stage 03

    Governed prompt assembly

    The prompt is a compiled artefact, not a sentence. Roughly 36,000 characters of directive, spec and governance per generation.

    • A master design directive encodes the craft: grid logic, contrast rules, food-hero composition, negative space, typographic pairing.

    • Per-cuisine and per-industry cultural direction (Greek taverna, Indian truck art, ukiyo-e, mid-century diner) is routed through dedicated channels rather than generic style text.

    • Anti-repetition logic varies layout, composition and type treatment across generations so a playlist never looks stamped out.

    • Prompt budgets are audited to the character. A double-injected directive was found, traced and removed after a forensic pipeline audit.

  4. Stage 04

    Provider orchestration and the generation queue

    Two model families, three dispatch paths, one set of rules about money.

    • Creative reasoning and image generation run across Google Gemini and OpenAI paths, with a design-intelligence layer reconnected so the cleaner image path also inherits the orchestration logic.

    • Jobs dispatch through Cloud Tasks first, a Redis-backed BullMQ worker second, and an inline fallback third. Each job is claimed with a compare-and-set transition so duplicate deliveries can never re-enter paid work.

    • Running jobs heartbeat a lease and observe durable cancellation. A single abort signal reaches reasoning, image generation, QA, corrective generation, storage and the database save.

    • A provider rate-limit is the only automatic retry. Timeouts and unknown outcomes are terminal states that cannot start another billable attempt.

  5. Stage 05

    Compositional QA and corrective generation

    The first render is a candidate, not an answer.

    • Automated QA scores legibility, hierarchy, safe-area violations and brand deviation against the locked spec.

    • Failures trigger a corrective generation pass with the deficiencies written back into the brief, then a final prohibited-content guard.

    • Thumbnails and delivery renders are produced server-side with Sharp so screens, project cards and playlists share one pixel-accurate source.

  6. Stage 06

    Persistence, tenancy and billing

    A generated screen is worthless if it is blank after the next deployment.

    • Every design version stores bucket and object references for the render and thumbnail. A persistence audit removed every read path that trusted a cached URL instead.

    • Neon Postgres through Prisma across 30+ models: organisations, memberships, entitlements, usage counters, invoices, audit logs, consent ledger, data-lifecycle and export jobs.

    • Stripe subscriptions gate entitlements; Firebase handles identity; Sentry and structured audit logs cover observability; Playwright drives the end-to-end suite.

    • Migrated from Google Cloud Run and Cloud SQL to Vercel and Neon without losing a customer record.

  7. Stage 07

    Screens, playlists and playback

    The output is not a JPEG. It is a scheduled, brand-locked feed to a physical screen.

    • Device registration by QR pairing, playlist assignment, and a player that resolves media through durable references rather than stale links.

    • Menu sets span pages; promotions rotate; the same brand DNA governs a dozen screens in a dozen venues.

What it actually took

The design problem was the easy half.

Idempotency under retry storms

Queue deliveries are not exactly-once. Tenant-scoped idempotency keys and status-guarded transitions mean a replayed message finds the job already claimed and stops.

Cancellation that actually cancels

An abort must propagate through every awaited provider call and the persistence layer, and the queue must hold its concurrency slot until the work acknowledges the abort.

Cost containment as a first-class state

Timed-out and unknown provider outcomes are terminal. Guest traffic can be contained with a no-store 503 before a body is even parsed.

Prompt economics

Thirty-six thousand characters of governance per call is expensive and fragile. Budgets are enforced before dispatch and audited line by line.

URL rot versus object truth

Rendered assets live as bucket and object pairs. Signed URLs are derived at read time, so a redeploy or a stale browser session cannot blank a saved design.

Design craft as machine-readable rules

Fourteen years of layout instinct had to be written down as directives a model will obey: grid, contrast, hierarchy, cultural direction, what a food hero is allowed to look like.

Category Overview

Where this category gets won or lost.

VIZN AI turns a brand guideline and a menu into a stream of on-brand digital signage. It compiles a locked design specification, assembles a governed prompt of roughly thirty-six thousand characters, orchestrates two model providers through an idempotent generation queue, scores every render against the spec, corrects it, stores it durably and plays it out to registered screens. There is no manual canvas: every screen is regenerated within the rules. I built the product, the design directive, the engine, the queue, the tenancy and billing model, the device player and the infrastructure.

Seven-stage pipeline from brand PDF to scheduled screen, each stage with an explicit contract

Governed prompt assembly with cultural and industry direction, anti-repetition logic and audited budgets

Idempotent generation queue with lease heartbeats, end-to-end cancellation and terminal cost states

Durable asset persistence, multi-tenant billing and a 1,700-plus test suite behind the product