Skip to content
available for projects000%
All projects
PRJ-06SYSTEM CASEExperimentalProduct · Planning

Good Move

Meal + movement planning system

ReactSupabase

An experimental system that generates a two-week personal plan from goals, food preferences, preparation time, movement preferences and equipment.

Status
Experimental
Type
Product · Planning
Role
Product logic · Planning system
Platforms
Mobile-first web
CTX-01

Context

Meal and movement plans are usually separate products even though groceries, preparation and movement all compete for the same weekly capacity.

PRB-01

Problem

Many constraints had to become an actionable two-week plan while keeping the active plan available through connectivity problems.

ROL-01

My role

  • Product logic
  • Planning system
  • Frontend / backend
SOL-01

Solution

I turn onboarding into a shared Plan Context from which meals, groceries, preparation and movement outputs are derived.

BLD-01

What was built

  • Onboarding and profile context
  • Two-week personalized plan
  • Portion scaling and meal swapping
  • Automatic grocery list and preparation flow
  • Movement planning and progress
  • Supabase persistence + LocalStorage fallback
  • PDF.js and Excel import support
ARC-01

System architecture

Plan generation
  1. Profile Constraints
  2. Plan Context
  3. Two Week Plan
  4. Meals
  5. Shopping
  6. Prep
  7. Movement
STK-01

Technical stack

Frontend

React 19 · TypeScript · TanStack Start · Tailwind CSS 4

Backend

Supabase · Supabase Auth

Data / Import

LocalStorage fallback · PDF.js · Excel import · Zod

DEC-01

Important engineering decisions

  • Bind meals and movement to one constraint context instead of separate planners
  • Use a LocalStorage fallback for the active plan during connectivity loss
CODE-01

Code / architecture excerpts

Plan contextTS
01type PlanContext = {
02 foodPreferences: FoodPreference[];
03 allergies: Allergy[];
04 prepTime: number;
05 movement: MovementPreference[];
06 equipment: Equipment[];
07};
08
09const plan = createTwoWeekPlan(context);
OUT-01

Result / current state

Good Move tests personalization, constraint-based planning and weekly execution as one experimental product.

LRN-01

Engineering takeaways

  • Personalization is less about adding options and more about resolving constraints in the right order.

OUT-LIVE / Visit product

Good Move

Visit product

AVAILABLE FOR PROJECTS · PRODUCT & SYSTEMS ARCHITECT · TAKEOVER / STABILIZE / OPERATE · WEB · ANDROID · WINDOWS · AHMET CANAL

Contact

Has your product grown faster than its system?

Send the current situation, your biggest blocker and the outcome you want. We will clarify scope together.

Availability

Open to new consulting and project-based work.