Skip to content
Back to endeavors

Goodberry's Custard Addict

Tracking daily custard flavors since 2020

  • React
  • Supabase
  • Tailwind CSS
  • Python
  • Cloudflare
  • AWS Lambda

The idea

In early 2020 I emailed Goodberry’s with a simple ask: create a public calendar for the Flavor of the Day so customers could subscribe on their phones. They never responded. So I built one myself.

Manual Google Calendar

Problem: There was no easy way to know what flavor was coming up. You had to check social media, call the store, or just show up and hope.

Solution: I started manually typing each day’s flavor into a Google Calendar that anyone could subscribe to.

Outcome: It worked, but keeping it updated by hand was tedious. I wrote a blog post about it in 2020 — it’s still my most-trafficked page. Turns out a lot of people searching for my site are actually just looking for custard flavors.

iOS Shortcuts for data entry

Problem: Manually typing flavors into a Google Calendar every month was slow and error-prone.

Solution: Built iOS Shortcuts to speed up the process — first to populate the calendar directly, then to generate a public JSON file on GitHub that another Shortcut could read to return the flavor via Siri.

Outcome: The data entry got faster, and the JSON file gave me a programmatic source I could build other things on top of.

Goodberry’s goes public

Problem: I was still the bottleneck — if I didn’t update the calendar, nobody got flavor data.

Solution: In fall 2023, Goodberry’s finally launched their own public Google Calendar. I wrote a Python script to sync their calendar into mine automatically, handling placeholders (“NEW FLAVOR” entries that get updated later) and corrections.

Outcome: The flavor pipeline became fully automated. The script runs every 6 hours via GitHub Actions, syncs to a destination calendar and a flavor API, and handles edge cases like mid-month flavor changes and backfills.

Web dashboard

Problem: A calendar subscription tells you what’s coming, but I wanted stats — frequency charts, gap tracking, trend analysis. And I wanted it to feel like a real product, not a spreadsheet.

Solution: Built a React dashboard on Supabase with user accounts, a customizable card layout (drag-and-drop reordering, show/hide cards), dark mode, and email notifications when specific flavors show up. Deployed to Cloudways via GitHub Actions.

Outcome: The dashboard tracks every flavor since July 2020. Logged-in users can configure their layout and get notified when their favorites are coming up.

Alexa skill & Apple Shortcut

Problem: Sometimes you just want to ask “what’s the flavor today?” without opening a browser.

Solution: Built an Alexa skill (“custard addict”) backed by an AWS Lambda function that queries the flavor API. Also built an Apple Shortcut that scrapes Goodberry’s directly for quick lookups on iPhone, iPad, and Apple Watch.

Outcome: The Alexa skill is published on the Alexa store. The Apple Shortcut supports Siri, date lookups, and auto-update checks.

AI topping suggestions

Problem: You know the flavor, but what do you put on it?

Solution: Added a “Today’s Fix” card to the dashboard powered by a Supabase Edge Function that calls the Anthropic API. It suggests topping combinations for whatever today’s flavor is, with client-side rate limiting and suggestion history.

Outcome: A fun addition that makes the dashboard feel more useful on game day — check your Canes promos, then check your custard toppings.