BRCG Case Study

One template. 128K restaurants, personalized.
Atmosfy needed personalized outreach for 128,000+ restaurants, and hand-designing an image per venue does not scale. So we built an engine that renders a unique marketing image for every restaurant from Atmosfy's own API, in under two seconds.
128K+
Restaurants with a personalized image
3
Channels served: email, social, print
<2s
Render time per restaurant
0
Manual layout work per piece
The Challenge
Generic templates get ignored.
Owners open outreach that shows their restaurant, not a stock graphic. Atmosfy had the data for every venue but no way to turn it into 128,000+ personalized images without a design team that would never scale.
Personalization at scale
Restaurant owners respond to outreach that shows their real venue, not a stock template. Across 128,000+ venues, hand-designing an image for each one was never going to ship.
Manual design is the bottleneck
Every image needed the venue's name, real customer photos, ratings, and hours pulled in and laid out. Producing that by hand, per restaurant, per channel, would stall the program on day one.
One venue, three channels
The same restaurant had to render for cold email, in-app messaging, and print-ready mail, each with different dimensions, formats, and delivery constraints.
Our Approach
Template, data, snapshot, signed URL.
One template, driven by data pulled live from Atmosfy's API, captured server-side as a signed image. Build it once, render it 128,000 times.
HTML template engine
A responsive template where every block is driven by URL parameters, so one layout serves every venue.
- Built with Tailwind CSS and Alpine.js for dynamic rendering
- Name, address, rating, and video thumbnails passed via query string
- One template, no per-restaurant layout work
- Brand-aware blocks adapt to each venue's identity
Live data from Atmosfy
Three real-time signals pulled from Atmosfy's REST API and merged into the template at render time.
- Restaurant details: name, location, cuisine, hours, contact
- Video content: customer thumbnails and engagement metrics
- Social proof: ratings, review counts, follower counts
- No stale data, no manual copy-paste per venue
Server-side snapshot
OpenGraphImage.com captures the rendered template as a print-and-web-ready image, delivered from CDN.
- 1200x630 PNG snapshot of the live template
- Renders in under two seconds per restaurant
- High-resolution variant for print-ready output
- CDN delivery so images load instantly in-channel
Signed, secure URLs
Every image request is signed so the engine can't be abused to generate unauthorized renders.
- Server-side MD5 signature on every request
- Unauthorized generation requests are rejected
- Same signed URL works across email, social, and print
- One render feeds all three output channels
The Result
Every venue, one render away.
Coverage
128K+
Every restaurant in Atmosfy's database can now render a unique, on-brand marketing image on demand, pulled from real venue data with zero manual layout work per piece. One signed render feeds three channels, Apollo email, Braze messaging, and print, in under two seconds.
Proof of Work
Same template. Different restaurant.
Three live renders straight from the engine. Each one pulls its own venue name, brand look, signature dish, hours, and social proof from Atmosfy's API.
Click to enlargeBerkeley Social Club
Bay-Area neighborhood spot. Auto-pulled signature dish, hours, and ratings.
Click to enlargeGordon Ramsay Steak
Las Vegas fine dining. Brand-led hero with a reservations CTA.
Click to enlargeMandarin Oriental, Tokyo
International luxury. Same template, different geography.
From the BRCG Team
“Atmosfy had 128,000 restaurants and no way to make outreach feel personal at that scale. We built the engine that renders each venue's own data into a unique image in under two seconds, across email, social, and print.”

Kodie Critzer
Founder & CEO, BRCG · Ran the Atmosfy engagement
Stack
FAQ
Questions, answered.
What did BRCG build for Atmosfy?
BRCG built a rendering engine that auto-generates a personalized marketing image for every restaurant in Atmosfy's database. It pulls each venue's real details, customer videos, and social proof from Atmosfy's REST API, merges them into a responsive template, and captures a signed image ready for email, social, and print.
How does the image generation work?
A responsive HTML template built with Tailwind CSS and Alpine.js is driven entirely by URL parameters. Restaurant data is passed via query string, OpenGraphImage.com captures a 1200x630 snapshot server-side, and a server-side MD5 signature keeps the URL from being used to generate unauthorized renders. Each image renders in under two seconds.
What channels does the engine serve?
Three. Apollo email campaigns for cold outbound that shows owners their real customer sentiment, Braze in-app and push messaging featuring venues a user has engaged with, and print-ready images for direct mail with per-restaurant QR codes. One render feeds all three.
How many restaurants does it cover?
Every venue in Atmosfy's database, more than 128,000 restaurants, can render a unique, on-brand marketing image on demand, with zero manual layout work per piece.
More Work
Related case studies.
Want an engine that ships this?
Let's talk about what BRCG could build embedded in your stack, from personalization engines to lifecycle infrastructure.
Book a growth call

