Tag: Soma Coffeehouse

  • Every Day’s Food Specials, a Form That Reads Photos, and a Giveaway

    Every Day’s Food Specials, a Form That Reads Photos, and a Giveaway

    Bloomington Online got a lot more useful this week for people who want to know where to eat tonight, and a lot easier for restaurants to be found. Today, working with Claude Code, we put every day's food and drink specials on its own page, built a form that reads a photo of a menu board and fills itself in, launched a $10 gift card giveaway, and put a new landmark on the 3D map. Earlier this week we also slimmed down the header and cleaned up the site. Here is what we got done, with the screens to prove it.

    Earlier this week: a shorter header, so the content comes first

    The old header was 138 pixels tall before you saw a single word of content, with a centered logo, a tagline, a search box and a wrapped menu. It now sits in one row at 76 pixels. The logo and name are on the left, the menu is in the middle, search is a small icon on the right, and the 3D map has its own white button so nobody has to hunt for it. On a phone it collapses into a tidy menu.

    Before and after screenshots of the Bloomington Online header, the new one is a single slim row with a 3D Map button
    The header before (top) and after (bottom). Same menu, about half the height.

    Every day of the week gets its own specials page

    People don't search for "specials." They ask what's good on Thursday. So there is now a page for each weekday, with a day navigator across the top and a "Where to eat tonight" link from the main Food page. The pages draw on two sources at once: our Google Calendar of food and drink specials, and deals that local people send in. Thursday had 17 deals on it when we took this screenshot, and nobody has to edit a page by hand for any of them to appear.

    Thursday food and drink specials page with a list of deals and a day navigator
    The Thursday page, with deals from the calendar and from community submissions.

    Post a deal by taking a picture

    This is the part I like most. A restaurant owner, or any customer who spots a good deal, can open the Submit a Deal page and upload a photo of the menu board, flyer or sign. Claude reads the picture and fills in the form: the business, the deal, the days and the times. The person checks it, fixes anything that is wrong, and presses Send. They can add a note for context, and they can submit without giving a name.

    Nothing goes live until I approve it, and the photo is deleted from the server as soon as the deal is approved or rejected. We tested it on a made-up sign for The Test Tavern, with an upstairs bar and a few specials. The first screenshot is the empty form. The second is what it looked like a few seconds after the photo went in.

    Empty Submit a Deal form with a photo upload box
    The Submit a Deal page before anything is entered. One box for the photo, and everything else is optional.
    Submit a Deal form after a photo was read, with business, deal, days and times filled in
    After uploading a photo of a sample sign, the form is filled in and ready to check.

    Getting there took some honest debugging. The first version failed on a real phone screenshot because a script looked for a field before the form existed, and then a cached page carried a stale security token and said it had been open too long. We fixed both, made the form fetch a fresh token every time, and tested it in a real browser until it worked from start to finish.

    A giveaway, and a reason to love your favorite places

    To get people to use the directory and the 3D map, we are giving away a $10 gift card to Soma Coffeehouse and Juice Bar. Enter with your email and you are in. You earn extra chances by confirming the Monday email, sending in a deal, or loving at least three businesses in the directory. Entries are capped at four per person, no purchase is necessary, and the drawing happens automatically on November 16 at 9 AM. The winner gets an email right away, copied to me and to the Bloomington Online inbox. We will change the prize from time to time so that other businesses get their turn.

    The official rules are posted online, written with Indiana and Bloomington in mind. Soma is not a sponsor and we are not affiliated with them. It is simply a business we love.

    Giveaway page for the $10 Soma Coffeehouse and Juice Bar gift card
    The giveaway page, with the prize, the ways to earn entries and the rules.

    Business of the Week

    The homepage now features one local business at a time, chosen from the directory and rotated every week. It only picks listings that have a real photo and a proper description, because we learned the hard way that a card with a cut-off sentence and no picture does nobody any favors. This week it is Brightside Cafe, a 100% gluten-free cafe and bakery on the lower level of Fountain Square Mall.

    Homepage card for Brightside Cafe with the giveaway banner above it
    Business of the Week on the homepage, with the giveaway banner above it.

    A weekly email, with consent that respects you

    People can now get a short weekly email on Mondays with local food and drink deals. Everyone who signs up confirms by email first. We also added a simple cookie banner that lets you decline analytics, and on the 3D map it remembers your choice.

    Paper in the real world

    Not everything happens on a screen. We made a poster for restaurants ("Got a special? We will post it. Free."), a giveaway flyer, and a flyer for Amplify Bloomington, the coworking space, which includes a screenshot of Amplify on the 3D map and three QR codes with tear-off tabs. Each QR code goes to a different place: the giveaway, the deal form or the map.

    Three printable flyers with QR codes for Bloomington Online
    Three print pieces, ready to hang up: the restaurant poster, the giveaway flyer and the Amplify Bloomington flyer.
    Amplify Bloomington highlighted on the 3D map of Bloomington, Indiana
    Amplify Bloomington, found on the 3D map.

    A local legend on the map

    We also added Shalooby's to the 3D map, at 405 E Kirkwood Ave in the old Cafe Pizzeria location. It is marked as a "Local legend" landmark rather than an ordinary listing, because Shalooby's is a fake restaurant from 2024 that Bloomington took to heart, and that deserves more than a normal pin.

    Earlier this week: cleaning up and measuring what matters

    Not every improvement is visible. Along the way we removed 111 fake accounts that bots had registered, took spam links out of 12 business listings, and made the events pages pass Google's structured data test, so Bloomington events can show up properly in search. We also set up better analytics. One thing the numbers showed: of 18,192 page views, 11,912 (65 percent) came from Singapore, and those visitors averaged zero seconds of engagement, compared with 26 seconds for everyone else. That looks like automated traffic, and it means our real audience is smaller, and more interesting, than the raw total suggests.

    Dave also set up GitHub Actions so the 3D map can be deployed to the server from GitHub, not just from one laptop.

    How it was made, and what's next

    All of this was built by working with Claude Code in the terminal, one request at a time. I would describe what I wanted, we would build it, check it in a real browser, and fix what was wrong. Some of the best ideas came from questions like "Is there anything else you would add?"

    Next up is the 3D map itself. Thirteen species of birds are being added as animated models, so the town will have something to watch besides cars. Meanwhile, if you run a business here, send in your special. If you love a place, tell us, and you might win coffee.

Bloomington this week, in your inboxOne short email every Monday: upcoming events, new businesses and local news. Free, and you can unsubscribe in one click.