
Who
I build for operators. Sometimes that operator is me. Sometimes it is a pit crew on Main Street in Canton, North Carolina.
Mack's Shack BBQ needed a site that looked like the shack, with a catering path that dropped leads somewhere durable when Chris was on the line. Guests needed hours, address, phone, and a menu that matched the board on the wall. Planners needed "mouths to feed" and an event date without playing phone tag first.
I am the builder. Hustle Launch is on the footer. The food is theirs. The stack is mine to keep honest.
What
I shipped a private Next.js 16 App Router site. React 19. Bun. Tailwind 4. Biome. Framer Motion on the hero. Cabin Sketch for chalk. Source Sans for the rest.
The homepage is a condensation-glass hero over looping pit video. Pointer clears fog. Mobile drops the canvas and keeps the video. Wood strip across the nav. Tomato catering CTA. Outline button into the menu board.

The menu is a skeuomorphic blackboard: real blackboard texture, wood dividers with inset depth, taped Polaroids for brisket, pork, sides, banana pudding. Item copy lives in one content module so the Schema.org Restaurant JSON-LD and the chalk board drink from the same list. Wings brined, smoked, fried, tossed in Bama white. Mack Sack Combo. Family packs. Pick N Choose by the pound.
Catering is a real form: name, email, phone, event date, mouths-to-feed slider, details. The API writes a Convex cateringLeads row and fires Resend from Mack's Shack Bbq <notify@uncap.us> to macks.shack.bbq@gmail.com (CC me). Contact does the same with contactSubmissions and a "Message Chris" button next to Chris Lewallen's photo and a Maps embed. Sentry on the error boundaries. PostHog on the pageviews. Reviews via a Jotform widget that cannot take the page down with it.

Where
366 Main St. Canton, NC 28716. Phone 828-631-2520. Hours Fri–Sun 11–7, Monday 12–7.
Canonical URL is www.macksbbqshack.com. Vercel also serves the project alias. Repo is private: michaelmonetized/macksbbqshack-com.
Footer socials hit Yelp, Instagram, Google Maps, Facebook. Footer credit names Hustle Launch for web design and app development. The audience for this write-up is builders who care how a local business site actually captures a wedding headcount, and anyone in WNC who already knows the Main Street pit.

When
2026-05-19. Init. Condensation glass hero mockup. Mobile video fallback. Same day: live business copy, catering flow, hero refinements, mobile drawer, section photos.
2026-05-20. Blackboard background. Wood textures. Hustle Launch footer credit. Hero CTA polish until the catering button went tomato. Chris on the contact page. Maps embed. Contact form + Convex persist. Menu Polaroids. Structured data. Sentry. PostHog. Social icons.
2026-05-22. Merge PR #1 from dev. Deploy prod.
2026-06-04. Launch prep. Button fix.
2026-06-27. Phone update.
2026-07-12. Dirty rice off the board.
2026-07-13. SEO and custom error boundaries, twice, because the first pass lied. Google/Jotform reviews on about and the other pages. Script moved to the end of body so it stopped breaking the layout.
2026-07-29. Sitewide vacation dialog for the Aug 2–3 closure. Cookie dismiss. Sticky banner.
2026-08-08. X-Robots-Tag: index, follow locked in Vercel headers.
2026-08-30. Ten commits titled [fix] convex + resend connections. HEAD settled. Sixty-seven commits from init. That is the clock.

Why
A Main Street BBQ needs the board, the hours, the phone, and a catering form that still works when the dining room is loud.
I wanted the hero to feel wet and hot: condensation over real pit video. I wanted the menu to feel like chalk on wood. I wanted leads in Convex and in the inbox from a domain I control (notify@uncap.us). I wanted Schema.org to carry the same wings and family packs the chalkboard shows.
So I linked the textures, wired the mutations, shipped the vacation banner before the holiday, and kept fixing the Resend path until August 30 stopped yelling. Operator stack. Local business. Own the notify domain.
The repo is still private. The site is live. The Polaroids are still taped to the board.
If you were standing at 366 Main tonight, which section of that chalkboard would you photograph first?
