Meal Cabinet

A full-stack meal planning web application built from scratch

Visit Site
Screenshot of Meal Cabinet

Overview

The Problem

Many meal planning apps are slow, over-complicated, or heavily gated behind subscriptions. I wanted a fast, flexible platform focused on usability and performance.

The Goal

I wanted to build a real, production-ready web application that solves a practical problem and gives me full control over performance, architecture, and future expansion.

My Role

Sole developer - product design, backend architecture, frontend implementation, database design, and deployment.

Role

Sole Developer

Stack

PHP / JS / MySQL

Status

Live Product

Features

checkbox icon

User accounts and authentication

checkbox icon

Weekly meal planning

checkbox icon

Recipe saving and browsing

checkbox icon

Responsive layout for desktop and mobile

The Technical Parts

Backendbackend icon

  • PHP-based custom routing system for clean URLs and request handling
  • Modular architecture designed for rapid feature expansion
  • MySQL schema designed for flexible meal and recipe relationships

Frontendfrontend icon

  • Vanilla JavaScript for interactivity
  • CSS-driven responsive layout
  • Focus on clarity and performance over heavy frameworks

Performance & Mediaperformance icon

  • Custom dynamic image resizing and formatting
  • Query caching to prevent overloading the database running identical queries

Challenges & Decisions

Challenge

Designing a flexible data model for meals and recipes

challenge arrow

Solution

I built small, reusable internal tools instead of relying on large frameworks.

Challenge

Keeping image-heavy pages fast

challenge arrow

Solution

Built an image resizer so that only relevant sized images are used on the page.

Challenge

Handling direct access to private users/meals

challenge arrow

Solution

Built a check for profile data to ensure correct permissions are set before displaying content

What's Next?

Short term

  • Improved meal discovery and filtering
  • Faster page loads on large recipe collections

Mid term

  • User-generated collections
  • Sharing meal plans between users

Long term

  • User-driven performance optimisations
  • Data-informed feature prioritisation