2025 · Architecture & development
GrowPack Admin
A companion dashboard that lets the client publish catalogue changes to the live site with one atomic commit.

Role
Architecture & development
Timeline
2025 · In use
Stack
Flutter Web · Riverpod · Firebase · Cloud Functions · GitHub API · Sharp
Overview
The catalogue site is fully static, so I needed a way for a non-technical client to edit products, categories and images without touching code or waiting on me.
The admin app keeps a draft catalogue in Firestore. Uploaded photos are watermarked and thumbnailed by a Cloud Function. When the client presses Publish, another function generates the site's data files and commits them together with the raw images to the GitHub repository in one atomic commit. Vercel picks up the push and redeploys the site.
Images carry their git blob SHA, so untouched products cause zero churn in the repository, and a golden test checks that the generated code matches the hand-written original byte for byte.
One atomic commit per publish
Data files and images land together or not at all.
Publish → GitHub → Vercel
A deployment pipeline the client drives with one button.
Server-side image processing
Watermark and thumbnails generated in Cloud Functions.
Locked down
A single account, self-signup disabled, secrets in Secret Manager.