Back to projects

In plain English

A tool that makes on-brand social posts in seconds. Speakers, partners, and volunteers pick a template, drop in their text and photo, and export a finished image or video. No designer needed, and everything matches the brand.

End-to-end · Solo build

Marketing Kits

A narrow, TechBBQ-specific personal-template generator. Pick a template (I am Speaking, We are a Community Partner, I am Attending, +5 more), drop in a photo or logo, pick a TechBBQ-brand background, type your name. Export to JPG or MP4. Brand-locked by design, ships an on-brand post in under two minutes.

ProductDesignFrontend
We are a Community Partner social post made with Marketing Kits, featuring the Etendy logo
Real output: a "We are a Community Partner" template composed in the tool with the partner-logo slot filled

Try it

Ship an on-brand TechBBQ post in two minutes

Pick a template, drop in your photo, type your name, hit Download. No signup, no install, JPG or MP4.

By the numbers

Templates

7

Speaking, Attending, Partner, +4

Backgrounds

12

Liquid-metal shader presets

Logo variants

3

Red, white, gradient

Stack cost

Free

Vercel free tier

Why I built this

Every TechBBQ event triggers the same scramble. Speakers, partners, investors, volunteers, and attendees all need an on-brand social post announcing their role. The design team gets asked the same five questions and produces the same five graphics over and over.

So I built a tiny, single-purpose generator. Seven templates (I am Speaking, I am Attending, I am Hosting, I am an Investor, I am a Volunteer, We are a Partner, We are a Community Partner). Three steps: drop a photo or logo, pick a background, type your name. Brand-locked by design, no way to use the wrong logo or the wrong typeface. Export JPG or MP4 and post.

The tool deliberately does less than the multi-format canvas editor I prototyped earlier. The whole product is one page.tsx. The narrow scope is the point: it does exactly this one job perfectly, and TechBBQ teammates can use it without being trained.

How it works

1

Pick a template

Seven role-specific templates. Each one auto-arranges the canvas, sets the right prefix/main copy ("I am" / "We are a"), and picks the right slot shape (square photo for personal, wide rectangle for partner logos).

2

Drop a photo or logo, pick a background

Upload, drag to position, scroll to zoom. 12 liquid-metal shader backgrounds, 3 TechBBQ logo variants (red, white, gradient) all pre-cached so switching is instant. Visibility toggles let you hide the photo or name entirely.

3

Type your name, export

Name + optional title or company. Two export buttons: JPG (still post) or MP4 (animated, shows the shader background motion). Both render at exact canvas resolution. No signup, no save state.

Key features

7 role-specific templates

Speaking, Attending, Hosting, Investor, Volunteer, Partner, Community Partner. Each one auto-arranges the canvas with the right prefix and slot shape.

12 liquid-metal backgrounds

@paper-design/shaders-react WebGL presets across warm, cool, and shaped palettes. CSS-gradient thumbnails for the picker dodge the browser's ~16 WebGL context limit.

3 TechBBQ logo variants

Red, white, and gradient. All three pre-cached on mount so switching is instant in the preview and carries through to exports.

Visibility toggles

iOS-style switches hide the photo/logo slot or the name+title block entirely. Hidden elements skip the upload UI AND export pipeline, not just display:none.

JPG + MP4 export

JPG via html-to-image at exact canvas resolution. MP4 via mp4-muxer captures the live shader background plus all overlays into a real video.

Drag, pan, zoom on photo

Photo slot supports click-drag to reposition and scroll-to-zoom. Fixed slot shape per template keeps the layout stable even with portrait or landscape source images.

Tech stack

Frontend

Next.js 16React 19TypeScriptTailwind 4

React compiler on, single client-side page (src/app/page.tsx), no API routes, no backend

Canvas + Export

@paper-design/shaders-reacthtml-to-imagemp4-muxer

WebGL liquid-metal shader backgrounds, JPG export via html-to-image, MP4 export via mp4-muxer with canvas drawImage for overlays

Analytics

Vercel Analytics

Anonymous page + event tracking only, no personal data captured

Under the hood

Everything happens right in your browser, with no server, no accounts, and nothing to save. That keeps it free to run and means your photo never leaves your own machine.

Each role, such as Speaking or Partner, is its own ready-made template, so adding a new one later is quick and the layout always lands on brand without anyone fiddling with it.

Brand & creative

Marketing posters and animated creative

Two brand posters and an animated 9:16 creative generated with Pomelli, Google's AI brand toolkit.

Marketing Kits hype posterHype poster
Marketing Kits step 1 · select your official roleHow it works
Animated MP4

Made with the tool

Real output, exported straight from the editor

The MP4 below was composed in Marketing Kits and exported directly from the canvas. Same shader background, same photo + name layers, same one-click MP4 pipeline that any TechBBQ teammate has access to.

"I am Speaking" social post composed in Marketing Kits and exported as an MP4

3-step walkthrough

From blank template to exported post in 90 seconds

The whole product is three steps and one keystroke for export. Brand-locked, so there's nothing to break.

1

Pick a template

Seven role-specific templates. Click one and the canvas auto-arranges with the right prefix copy and slot shape.

2

Photo, background, logo

Upload your photo or logo, drag to position. Pick from 12 liquid-metal backgrounds and 3 TechBBQ logo color variants.

3

Type your name, export

Add your name + optional title or company. Hit Download JPG for a still post or Download MP4 for an animated one.

Common questions

Is it free and open to anyone?+

Yes. Live URL is public, no signup, no install. The brand is TechBBQ-specific (logo, fonts, color palette) so it's really only useful if you're posting about a TechBBQ event, but anyone can play with it.

Why so narrow? Why not a general canvas editor?+

I prototyped that first. It was too much surface area for the actual job to be done. Brand-locked, single-purpose, three-step is what made it usable without training. The general editor lives on in a different repo as a sandbox.

Can I add my own brand instead of TechBBQ?+

Not without forking the code. Brand colors, logo, fonts, and the shader palette are hard-coded. A per-org config + custom logo upload is on the roadmap if other small communities want the same shape of tool.

How does the MP4 export actually work?+

mp4-muxer encodes a sequence of frames into a real .mp4 file in the browser. Each frame is captured by drawing the shader background plus all overlays into a 2D canvas via drawImage, then handed to the muxer. End result is a downloadable MP4 with the animated background, same length as the shader cycle.

Does it work on mobile?+

Desktop-first. Drag + scroll-to-zoom on the photo slot doesn't translate cleanly to touch gestures yet. Stays on the roadmap.

What happens to my photo?+

Stays in the browser. No upload, no server, no backend at all. The whole product is a single client-side page. Once you close the tab, it's gone.

What I learned

  • ·Doing less wins. I first built a full canvas editor with every bell and whistle, and nobody used it. Cutting it down to a few templates and three steps got the whole team on board overnight.
  • ·Taking away the ability to get it wrong was the point. When people cannot pick the wrong logo or font, they stop asking the design team for help, because there is nothing left to mess up.
  • ·Loading things people will switch between ahead of time, like backgrounds and logo colours, makes the whole tool feel instant and effortless.

What's next

Honest roadmap. Things I know are gaps, in priority order.

Mobile-friendly photo controls

Drag and scroll-to-zoom assume a mouse and wheel. A pinch-zoom + touch-drag mode would unlock mobile composition (which is how most attendees actually post).

More templates

Seven covers the most-requested roles but Jury, Mentor, Workshop Host, and Press would round it out. Each new template is one TEMPLATE_CONFIGS entry plus a slot-shape rule.

Multi-brand config

Hard-coded TechBBQ brand today. A per-org config (logo, color, fonts, copy presets) would let other small communities run their own version. Same code, different brand pack.

Polish the MP4 export UX

Export works (the sample on this page came out of it) but the surfacing is rough: no progress bar, no length picker, no format presets. Could be cleaner before a wider team launch.

Let's talk about this project

More projects

Next.js 16React 19TypeScriptTailwind 4@paper-design/shaders-reacthtml-to-imagemp4-muxerLucideVercel Analytics