All work

2025 · Architecture & development

GrowPack Admin

A companion dashboard that lets the client publish catalogue changes to the live site with one atomic commit.

GrowPack Admin cover image

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.