Giving a friend one place to book his mobile bar

A friend pours at events around Newark and Wilmington and had nowhere to send people except Instagram DMs. So we built him a hub that quotes a night.

A friend of mine runs a mobile bar. He shows up with a bar, ice, glassware, and a bartender, and he pours for backyard parties, campus events, weddings, and company mixers around Newark and Wilmington. Satellite Bar Co is the name. The pouring part he has handled.

The website part he did not. So we built one: satellitebar-demo.satellitebarco.workers.dev.

The problem was that everything happened in DMs

Every job started the same way. Somebody saw a photo on Instagram, sent a DM, and then he typed out the same four answers by hand. Do you come to Wilmington? How many bartenders for sixty people? Can you do mocktails? What does it cost?

Three things were missing, and none of them were “a website” in the generic sense.

He had no way to show where he works, so people outside his feed had no idea if he would drive to their venue. He had no way to show that he knows the craft beyond a grid of pretty photos. And he had no way for a host to get to a number without waiting on him to be free. A host planning a wedding at 11pm on a Tuesday will not wait. They will book the vendor whose site gave them a price range.

So we put a site in the middle

The idea we settled on: the site is the desk. Instagram is still the front window, but the desk is where somebody sits down and actually asks for a date.

That meant the homepage has to answer the geography question in the first line. It leads with mobile bar service in Newark, names the kinds of nights he does (campus events, backyard parties, venues around town), and puts two buttons up top: check availability and view packages. A hero photo rotates through real setups so it looks like a bar that moves, because it is one. Call us and Book now stay pinned as you scroll, since a decent share of people are reading this on a phone with a group chat open in another tab.

Under that, testimonials do the trust work. A wedding in Newark, a corporate night in Wilmington, a birthday where the host used the drink calculator and stopped guessing how much to buy.

It is an Astro site with a few Svelte pieces for the parts that move, running on Cloudflare Workers. That was mostly so he can deploy it himself without calling me.

Location and the work

The service area is stated plainly instead of implied: Newark and Wilmington, roughly within fifteen miles, with a map on the booking flow so you can see whether your venue lands inside it. If you are outside that, there is an out of orbit page where you ask anyway, because a good gig two towns over is worth the drive.

Then there is an events hub that splits the work by the kind of night it is: social gatherings, weddings, corporate, brand activations. All four pull from the same pool of photos, so he adds pictures once and every landing page gets better.

The calendar shows a public month of dates. Private bookings stay off the list, which sounds obvious and is the whole reason he trusts it.

Tools that get a host to yes

This is the part that replaced the DMs.

A quote calculator. Guests, hours, menu style, serviceware, and whether you want a non-alcoholic add-on. It gives you a real range instead of “contact us for pricing.”

Sample menus. You pick Simple, Mid, or Full custom, and drinks fill in as you move up the tier: Orbit, then Signal, then Deep Space. There is an NA toggle right there, because half the guest lists now include people who are not drinking and hosts want to see that they are covered. This is the page I would send someone first. It is the closest thing to standing at the bar and reading it.

Branded and event packages. Orbit Essentials, Signal Soirée, and Deep Space load straight into the quote, and there are event shapes on top of that (social gathering, wedding reception, corporate mixer, brand activation). Prices stay hidden until you reveal them or pull a package into a quote, so nobody anchors on a number that does not match their night.

A drink calculator at /tools/drink-calculator. Guests times hours times style (beer and wine, mixed, premium). It hands back a drink count and a suggested package band, then links you into packages or availability with that context still attached.

Booking itself is honest about what it is. You pick your market, drop your venue address on a map pin, set the date, guest count, event type, and package, and it sends an inquiry. It is a mailto for now until the booking API gets switched on. Nobody gets a fake “you are booked” screen for an event that needs a human to confirm.

Sitting next to Instagram, not replacing it

Here is where I had to argue with my own instincts. My reflex on any site build is to add a blog. For a mobile bar it is the wrong reflex. His proof is photographs of nights: the setup under string lights, the glassware, the line of people at 9pm. That is not a CMS problem, and he is never going to write posts. So the product site has no blog at all. Testimonials on the homepage carry the credibility, and the social profiles carry the rest.

The business already lives at @satellitebarco on Instagram, X, and Facebook, and hosts genuinely do find him there first. So the site links out instead of pretending otherwise. The contact page lists all three profiles next to his phone, email, and service area. The about page explains the staffed-bar-to-your-venue thing and then has a “follow along” section for event setups, menus, and nights on the road. The footer has share links.

We did try to pull the actual grid onto the page. A Behold widget went in and came back out within a day. It was heavy, it shoved the layout around while it loaded, and the payoff was a photo grid people could already see one tap away. Not worth the weight.

The plan for a live feed is Pane, wired through a PUBLIC_PANE_FEED_ID. It is not shipped yet. Until it is, profile links plus the about page call to action do the job. The part I do care about: all of the social integration hides behind a feature flag, so if a widget key is missing or an embed vendor has a bad afternoon, the customer-facing pages stay up and bookable. A third party losing an API key should never take down the page where somebody was about to ask for a Saturday.

What is live

The site is at satellitebar-demo.satellitebarco.workers.dev, the code is public at github.com/jjheffernan/satellitebar-demo, and it is listed on my demos page.

Fair warning on what you are looking at: the contact details in there are demo data (satellitebar.example, (555) 014-2088), so do not call it expecting a bartender. It is a real build for a real business, kept public so it doubles as something I can point at.

If you only have a minute, open the sample menus and drag the tier up. Watching the drinks fill in is the moment the whole thing stopped feeling like a brochure and started feeling like a bar you could book.

Verwandte Beiträge

JJ Heffernan ist eine heff.industries-Website.

© 2026 JJ Heffernan. Alle Rechte vorbehalten.