The Baddie Stack πŸ’…πŸΎπŸ“±βŒ¨οΈ

thebaddiestack.tech/grocery-essentials

← Back to the portfolio

Infrastructure, not willpower

The Grocery Essentials Workflow

A GitLab pipeline that checks what's actually low, sorts it by store, and lands a ready-to-shop note in Obsidian before you've had to think about it β€” because "just restock the basics" was never actually just anything.

Overview

I'm a spoonie. Hydration, real nutrition, and the supplements that keep my chronic conditions from running the whole week aren't extras for me β€” they're foundational infrastructure. Which makes the grocery run a recurring dependency, not a chore: skip it, forget an item, or get the order wrong, and the week feels it.

For a long time, that dependency lived entirely in my head β€” a rotating mental list of what's low, which store carries it, and which backup store to hit if the first one's out. Grocery Essentials (WF-01) is what happens when you stop asking a body with a limited energy budget to also be the inventory system. It's the first workflow in a suite I'm building precisely because "the basics" shouldn't cost this much to maintain.

1 The tax nobody puts on a to-do list

Chronic illness has plenty of visible costs. This is one of the quiet ones β€” the overhead of tracking and re-deciding the same handful of essentials, on repeat, indefinitely.

  1. Knowing what's actually low before you're already out of it.
  2. Knowing which store carries it, and which backup store to use if the first one doesn't have it.
  3. Not re-litigating the same decision every few days when it's really the same short list on repeat.
  4. Doing all of this on the schedule a body sets β€” not the one a generic to-do list app assumes everyone runs on.

2 What it actually does

Not a shopping bot. A decision-maker that refuses to guess.

  1. Every foundational item lives in one config β€” tagged critical or not, with a primary store and a fallback.
  2. If a critical item's status isn't confirmed, the whole run stops and flags it. It fails closed, on purpose, instead of quietly shipping a list that's wrong.
  3. Once everything critical checks out, it groups the confirmed items by store, in priority order β€” primary store first, fallback only if the primary's unavailable.
  4. It writes one clean, ready-to-shop note. Not a spreadsheet. Not a scavenger hunt through three apps.

3 Where it lives

The unglamorous plumbing, for the people who like to see it.

  1. Config and inventory live in Obsidian β€” the vault is the source of truth, not the code.
  2. A GitLab CI/CD pipeline runs the check on a schedule, using a local runner so the result can land directly in the real vault instead of a build log nobody opens.
  3. The output shows up as a note that's already organized, waiting the next time the vault is open.
# Illustrative shape of the note it writes β€” not real inventory
 
## Costco (priority 1)
- Electrolyte powder Γ—2 β€” confirmed
- Protein source Γ—2 β€” confirmed
 
## Sprouts β€” Ellsworth (priority 2)
- Magnesium supplement Γ—1 β€” confirmed
- Fresh produce restock β€” confirmed
 
Status: READY β€” all critical items confirmed. Nothing blocked.

4 What actually changed

Specific, not inspirational β€” "it changed my life" isn't information.

0critical items silently missed since it went live
1note to open, already sorted by store
Autodelivery straight into the real vault, no export step
  1. The list is already organized by the time it's opened, instead of being rebuilt from memory every few days.
  2. Nothing on the critical list gets missed quietly β€” if something's unconfirmed, the workflow says so instead of guessing.
  3. Restocking went from a recurring decision to a recurring review: smaller, faster, and far less taxing on a limited energy budget.
The one tap it leaves you Grocery Essentials doesn't check live store inventory itself β€” it hands you a direct link to the right item at the right store instead. Tap it, and if it's in stock, it drops straight into your basket. That's the entire manual step left in the whole process: one tap per item, not a hunt across three stores and a mental inventory rebuilt from scratch every time.