AI film and UX architecture — built in-house.
Campaign film and product UX made end to end in-house, by one person directing the build rather than briefing a chain of specialists.
Prototypes, boards and pages are directed and built in Claude Code. Film and imagery in Seedance, Kling, VEO, Nano Banana, GPT Image and Midjourney; voice in ElevenLabs; every cut finished in Premiere Pro.
2.44M views and plays · published January to June 2026 · three markets
Index — selected work 2025–2026
Interface and front-end
Conversion-led UX delivered as production-grade front-end, not static comps.
The Universal Configurator
UXPhotobook editor UXSix months in, three sections shownThe company’s biggest project: an in-house replacement for the third-party configurator software the group pays for. It is becoming the ordering platform for every product — front-end and back-end, connected to production, with functions the IT team adds continuously. I work on the UX and the UI.
Six months in and still in progress. What is shown here is a set of sections, not the finished platform: the way in, and three of the twenty-one. Each was built as a working screen rather than a mockup — live price, live state, a working control — so the flow could be argued over before anything was built.
The work · three plates. Open any one at full size.
Twenty-one sections were prototyped this way — menu, formats, print options, patterns, fonts, orientation, prices, checkout and last step. Each one is a real screen with live price, live state and a working control, so the flow could be argued over before anything was built.
↑ Index01 / 15
AI Pet Portrait
UXOne page instead of eleven Nano Banana · KlingThe live flow runs eleven screens from landing page to basket, with a one-way gate at screen six — “No more edits will be possible once you proceed” — placed before the customer has seen a price. The prototype is one page and a basket: every row reopens, the full product and size matrix is visible before anything is chosen, and nothing locks.
Eight screens come out. A step here means a screen the customer must pass to reach the basket, not a click — the same journey photographed for four product variants produces more captures than a customer ever sees, so the count is of the path, not the screenshots.
The build is config-driven: the shell is 4KB and every price, product name and sentence renders from a data file, which is why the DE⇄UK switch swaps catalogues rather than translating strings. The frame is drawn so its face holds 19.5mm at every size, checked by an acceptance suite — a preview that lies about proportion is worse than no preview.
Still to do: connecting to the production configurator, so final crop and adjustment happen there and the customer goes straight to basket. Image editing cannot live on the landing page, which is also the homepage.
The prototype · open it full size and use it.
Two changes in the copy shown here, both flagged rather than hidden: it boots the UK catalogue so the case reads in English, and generation runs the built-in simulation — the live path is gated to localhost by design, so a static host falls back to the same four states driven from timers.
The UK page it replaces, still live ↗The German page it replaces, still live ↗
↑ Index02 / 15
Stampa su Tela
BuildShopify replatformFour running templatesThe group’s shops had been carrying close to twenty years of accumulated design. The brief was to make them modern, fresher and more exciting to buy from.
The Italian shop has to move off its old platform and be rebuilt on Shopify. I built the four templates the rest of the shop is generated from — homepage, category, product and a gift finder — as working front-end, not mockups. Reviewed and endorsed internally, then approved; it is being rebuilt on Shopify for launch now.
What each template replaces · open one and toggle. The before is a capture of the live Italian shop, the after is the build itself, running.
The product page carries the size matrix and the on-wall preview — both stated in centimetres.
Every after is the working front-end file, not a screenshot — open one and use it.
The offers page becomes the gift finder: the same discount logic, asked as a question — who is it for, what is the occasion — instead of four cards each carrying its own code to copy.
↑ Index03 / 15
Photo sur Toile
BuildWhat the shop argues Switzer · Geist MonoThe group’s shops had been carrying close to twenty years of accumulated design. The brief was to make them modern, fresher and more exciting to buy from.
The live shop argues price: the page title is “Photo sur Toile 4€ » Toile
Photo −87%”, and the sections are “Impression sur toile certifiée”,
“Paiement sécurisé”, “à bon prix”. The prototype argues the
wall — “Quelle taille sur votre mur”, “Un mur nu est une décision
reportée”, “Déjà en place”.
It carries its own visual language rather than the group’s system in different colours, its own faces in Switzer and Geist Mono, both variable and
self-hosted, and a palette derived from the wordmark. The rule is written into tokens.css
— a literal hex or px spacing value inside a section is a build failure.
Two languages at content depth, not a toggle: full French and English content files, plus five legal and service pages doubled — twelve pages in all, including an accessibility declaration. The hero film is art-directed per breakpoint, 1920×1080 on desktop and a separately framed 720×480 cut for mobile rather than one file scaled.
The size and format matrix is open on the page, prices sit beside the options rather than after them, and the preview updates against a measured room reference.
The honest limit: this is a landing page plus content pages, one product. Stampa su Tela covers four template types.
The prototype · open it full size and use it.
Two changes in the copy shown here, both flagged rather than hidden: the hero film is
switched off, because its first and last frames differ by 25.3% and the loop snaps once every twenty
seconds — the poster is what the file’s own refusals already fall back to; and the proportions
control and language segments were restored to the --tap token, which a later tuning pass had
overridden to 42px and 34px.
The shop it replaces, still live ↗
↑ Index04 / 15
Universal Product Card
UXCross-shop componentThe component in placeLive tiles made a £4.50 canvas and a £26 acrylic look identical, so customers defaulted to the cheapest. I rebuilt the card around material-first imagery and a fixed spec line, benchmarked it against four category leaders, tested it for German string lengths, and cut card height by a quarter.
What it replaced · open it and toggle against the rebuild. Both start at the bestsellers grid and scroll the full section.
- A raking macro of the real surface replaces the floating cut-out — weave, edge thickness and finish are visible before anything is read.
- A fixed spec line on every card: finish, build and what the material is best for. Same three slots, every product, tested against German string lengths.
- One line under the heading explains the range before it is browsed, so the six are read as a considered set rather than a price ladder.
- The discount becomes a corner badge and the price reads after the spec, not before it — so material decides the choice instead of the cheapest number.
- A single call to action per card instead of two competing buttons, and card height cut by a quarter, which puts more of the range above the fold.
Header, teaser, trust bar and footer in the prototype are placeholders — the card grid and editorial row are the work.
↑ Index05 / 15
Photo Books
ShippedTwo markets, a day eachA working day per marketA category page the UK shop did not have, taken from nothing to two market-ready documents inside a single working day. The page itself — restructured, designed, coded — was live in four hours; the rest of the day went on the complete image and film set and the German document. I built a price database off the universal configurator so every figure on the page is the live one, and wrote the copy — one clean route through four bindings instead of a spec sheet. The German document followed the same day, written for its own market rather than translated.
The films made for the page · one per binding. Open any one full size.
What it replaced · open it and toggle against the running build. Six changes below.
- Seven cards became four. The old grid mixed product types with paper sizes and left an orphan card on a row of its own.
- The page is organised by binding — the decision that actually changes the object — instead of by format.
- Size moved inside the card as a selector, so choosing A5 or 30x30 no longer means choosing a different product.
- Size and price resolve before the editor opens. People want to know what their binding at their size costs before committing an hour to building it — the old page gave one from-price per product and left the real number several steps inside the editor.
- A real hero replaces the banner: one next step, priced from, with the review score next to it rather than halfway down the page.
- Paper and certification move up under the hero, where they answer the question people actually ask before they commit.
Now the live photo-book landing page. The old page is still up at the second address below, so the comparison can be checked rather than taken on trust.
The new page, live ↗The page it replaced, still live ↗
Four films in the set, one per binding, alongside the stills. Prices render from a database derived from the universal configurator, so the page stays in step with what the configurator charges.
↑ Index06 / 15
merchOne
UXRedesign proposalB2B print-on-demandAn afternoon’s work: analyse the live shop, then redesign and restructure it to show how much better it could be in a short time. The proposal keeps only the sections that earn their place, restructures what is left, and reads as a more modern shop even with placeholder images in it.
A proposal, not a commissioned rebuild.
What it replaces · open it and toggle against the proposal. Both scroll the full page. Five changes below.
- The headline states the offer — sell your designs, we handle the rest — instead of naming the category the visitor is already on.
- A centred stack becomes asymmetric: copy holds the left, the product composition carries the right, so the eye has somewhere to go.
- Two explicit next steps, one to start and one to browse, replace a single Sign up that assumed the decision was already made.
- Proof moves up beside the offer — seller and product counts, EU and US production, no customs delay — rather than waiting below the fold.
- A capacity band carries years, daily units, sites and delivery time, doing the job the three-column text wall was doing badly.
↑ Index07 / 15
AI film
One locked asset set per campaign, run as a documented production system.
All-Year Spot
FilmBrand TVC · 1.73M views, two marketsSeedanceThe group’s strongest products are wall decor — canvas, blanket, mug, cushion, MIXPIX. The brief was a film that could run all year: no season, no offer, warm and recognisable, for the core audience of women roughly 30–45, often young mothers.
A girl plays on her own with the dog while her mother is busy in the kitchen. The dog is her audience. She walks him through the pictures around the room, never naming a product, only the memory in each one — her parents, her family, the dog himself. She tells him not to sit on the sofa and enjoys being the one who knows the rules; he does not mind, he is a good listener. At the end her mother calls her name for lunch, and it lands that she has been alone with him the whole time.
An everyday scene, with the products present rather than presented.
Production · three plates. Open any one at full size.
Published
Four cuts went out on 9 June 2026 and have passed 1.7M views between them. The end-card line on the storyboard above is the title the UK cut shipped under.
↑ Index08 / 15
Summer Vibes
FilmThe production systemSeedanceThis is where the method is worked out. The aim is consistency without rigidity: control over timing, voiceover, locations, beats, dynamics, lens and camera, while leaving room to change the approach when a campaign asks for something different. The workflow is varied deliberately between campaigns to find what suits each one.
The sheets and boards exist for one reason: control over how the products appear, so they read as real.
Production · three plates. Open any one at full size.
One locked asset set, two deliverables: the emotional hero film and a companion film whose only job is making ordering feel easy. The how-to’s photo picker is filled with the hero film’s own frames — the system yields a campaign, not a clip.
↑ Index09 / 15
Valentine’s
FilmSocial cuts published, TVC unreleasedVEOThe landscape TVC was never published. The campaign went out as vertical cuts on all three shop accounts in the same week — UK and US on 29 January, Germany on the 31st. One cut per language: subtitles and the end logo are localised per shop, and the German is adapted rather than translated word for word.
Production · four plates. Open any one at full size.
Published
Just under 68,000 plays across the three shops.
Instagram plays counted 9 August 2026. There is no public API for reel plays, so these are a snapshot; YouTube figures update live.
↑ Index10 / 15
Mother’s Day — The Brand Cut
FilmBrand cut, two marketsVEOOne campaign, two markets. The same asset set carries a UK cut and a German cut: subtitles and the end logo localised per shop, the German adapted rather than translated word for word.
Production · three plates. Open any one at full size.
The brand cut ran on the UK Instagram account. No figure is given here: the post is not currently linkable, and everything else on this page is.
↑ Index11 / 15
Mother’s Day — The Offer Cut
FilmOffer-led cut · unreleasedKlingThe same campaign cut for the offer rather than the feeling, and the version that never went out. On this campaign the emotional cuts were generated in VEO, which was carrying that work at the time. This one moved to Kling, which holds product motion better, and the whole piece turns on hands actually handling the product. Unreleased, and here because I think the execution is the best in the set.
Production · three plates. Open any one at full size.
↑ Index12 / 15
Narrative Films
FilmFive films · distance, memory, presenceKling / VEOFive films where the product is doing the same job in five different tones. Someone is missing a pet, a father, a home, or a moment that’s already gone — and the printed object is what keeps it in the room. The registers deliberately differ: two are elegies, one is a proposal retold to camera in a creator’s own voice, one is friends keeping a ritual five hours apart, one is homesickness. Same argument, five ways of making it.
The other four films · open any one full size, with sound.
Published
32,000 plays across the three shops for the pet memorial.
Instagram plays counted 9 August 2026. There is no public API for reel plays, so these are a snapshot; YouTube figures update live.
↑ Index13 / 15
Product Films
FilmRange, format, and one in the buying flowKlingFlexiArt is an explainer: it shows the frame opening and the print being swapped. The cushion, blanket and MIXPIX films are product presentations for the galleries on the product pages — not advertising. Short, calm, and about the quality and the specifics of the thing itself.
Four more product films · one per format. Open any one full size.
FlexiArt on the product page, live ↗
Published
Instagram plays counted 9 August 2026. There is no public API for reel plays, so these are a snapshot; YouTube figures update live.
↑ Index14 / 15
Published
On airThe films are not sitting in a folder. Eight cuts are running on the brands’ own YouTube channels in two languages, landscape and vertical, alongside the social reels — 2.44M views and plays in total. Every YouTube figure below is pulled live; click any of them.
Rounded down and still climbing — the two June cuts alone have passed a million. A home full of stories is the All-Year Spot: the end-card line is the one written on its storyboard, and the German cut went out the same day.
↑ IndexFilm
Campaign and print craft
Layout, editorial and print production — the classic craft underneath the AI-first work above.
Campaign & Print Craft
CraftStudio, press and print2007–2022The twenty years underneath the last five. Campaign and packaging for the PepsiCo portfolio, creative direction on a seasonal magazine reaching around 850 Lidl stores, and trade press, product photography and design at volume across the group. Shown as craft evidence rather than as case studies — the argument for the current work is made above. The canvas photography ran in the American design press, and the same shoot carried the German magazine advertising.
Sponsored features · PRINT (USA) and Feature Shoot (USA)
Printed advertising · Fotohits and Vonovia Magazine (Germany)
Product listings · ePhotozine (UK) · three posts across 2022, images supplied
PRINT (USA), sponsored feature — the article, then the photographs inside it
Feature Shoot (USA), sponsored feature — the article, then the photographs inside it
Printed advertising






























































































































































Also 97 gift-card designs across occasions, book cover templates and B2B sales sheets — production design at volume, held to one system.
↑ Index15 / 15
About
Twenty years as a designer; the last five have widened that into something broader. Working AI-first, I take a website, a configurator or a campaign from idea to a working, implementation-ready prototype — structure, design, a working front-end built in Claude Code, imagery and film included, without waiting on a chain of specialists.
That has turned into a cross-departmental role spanning Marketing, Product and Engineering at an international e-commerce group of acquired brands. The work is conversion-led UX: restructuring pages and product configurators, cutting steps that don’t need to exist, correcting the copy that trips people up — then building it far enough that engineering can ship it.
UX, AI production and prototype builds across meinfoto.de, my-picture.co.uk and canvasdiscount.com