Skip to content

Releases: ShamgarBN/paperplate

v2.1.0 — iPad now matches the desktop aesthetic

26 May 06:44

Choose a tag to compare

The iPad PWA's look and feel now mirrors the macOS app: same warm cream background, same burnt-orange primary color, same Fraunces serif for titles and Inter for body text. The teal placeholder palette is gone.

What changed

  • Central theme tokens (`apps/mobile/src/theme/tokens.ts`) derived from the desktop's HSL CSS variables — light + dark palettes precomputed to hex for React Native.
  • Loaded Fraunces + Inter via `@expo-google-fonts`. App boot waits for fonts so the first paint never flashes a system fallback.
  • Refactored 12 screens + components to consume the tokens. Headings (Library, Plans, Recipe titles, etc.) use Fraunces; everything else uses Inter at the right weight.
  • Added expo-asset (peer dep of expo-font that the install command missed).

No behavior changes — pure styling.

Install — Mac

Drop `Paperplate_2.1.0_aarch64.dmg` into Applications and right-click → Open the first time.

iPad

The PWA at https://shamgarbn.github.io/paperplate/ auto-deploys from `main`. The next launch from your home-screen shortcut picks up the new theme; you may need to fully close + reopen the app to flush the old bundle from cache.

Diff

`v2.0.0...v2.1.0` is a single commit (23 files, 601 inserts, 372 deletes) plus the version bump and Cargo.lock update.

v2.0.0 — Supabase backend + iPad PWA

26 May 06:28

Choose a tag to compare

First release of Paperplate 2.x. The local-first SQLite app from 1.x is now a two-device household app backed by Supabase: a Tauri-shelled Mac Silicon desktop binary and an installable iPad PWA sharing one library, one set of meal plans, one running shopping list.

Highlights

  • Supabase backend — Postgres schema mirroring the old SQLite (recipes, ingredients, steps, categories, plans, slots, day notes, aisles, shopping lists/items/checks), all RLS-restricted to authenticated users. Storage bucket for hero images.
  • iPad PWA at https://shamgarbn.github.io/paperplate/ — open in Safari → Add to Home Screen → launches chrome-less.
  • macOS app — Tauri 2 shell, 5.1 MB ad-hoc signed `.dmg` attached below. Right-click → Open the first time.
  • Auto-fill the planner heuristic ships to both devices.
  • Unit-correct shopping aggregator (1 cup + ½ cup = 1½ cup, indivisibles rounded up) runs on both devices via shared `packages/core`.
  • Hero image backfill — 21 of 22 imported recipes had their hero images re-fetched from the source URL and uploaded to Storage.

Install — Mac

  1. Download `Paperplate_2.0.0_aarch64.dmg` below.
  2. Open the DMG, drag Paperplate into Applications.
  3. First launch: right-click `Paperplate.app` → Open → click Open in the warning dialog.

Apple Silicon only.

Install — iPad

  1. Open https://shamgarbn.github.io/paperplate/ in Safari (must be Safari, not Chrome).
  2. Tap ShareAdd to Home ScreenAdd.
  3. Launch from the home screen icon.

Future PWA updates auto-deploy on every push to `main`.

What's not in 2.0.0

  • One recipe still missing its hero image ("Shoyu Chicken" — source returned HTTP 402, retry coming).
  • App icon — generic Expo icon for now; custom icon work pending.
  • Native iPad build (vs the PWA) — possible via EAS Build with a paid Apple Developer account; not in scope yet.

Full changelog

Git history from `v1.0.1...v2.0.0` is squashed across the `supabase-rebuild` branch (merged into `main` on 2026-05-25). Notable commits:

  • Restructure to monorepo + Supabase backend
  • Migrate desktop data layer from `tauri-plugin-sql` to `@supabase/supabase-js`
  • Expo SDK 56 iPad app
  • `scrape-recipe` Supabase Edge Function (JSON-LD)
  • Hero image backfill + Storage rendering
  • Per-plan shopping list + send-to-main-list
  • Plan editing (slot lock, day notes, auto-fill)
  • Settings (categories + aisles)
  • Hero image upload (mobile + desktop)
  • Print support
  • Extracted `packages/core` and proper shopping aggregator
  • Tauri Rust cleanup (stripped unused plugins + commands)

Paperplate v1.0.1

21 May 16:32

Choose a tag to compare

First tagged release. Apple Silicon only.

What's in 1.0.1

Editor

  • Sub-recipe sections for both ingredients and instructions (e.g. "Cake" + "Frosting"). Section headers render on the recipe detail page and in print.
  • Rich text on step instructions: bold, italic, underline, and an 8-color palette tuned for light + dark themes. Ingredient lines stay plain text so scaling and shopping-list aggregation keep working.
  • Separate "Description" and "Notes" fields — description renders at the top of a recipe, notes at the bottom.

Library

  • Categories split into TYPE (Main, Soup, Dessert, ...) and COOKING METHOD (Oven, Grill, Air-Fryer, ...).
  • Source domain (e.g. nytimes.com) shown next to the Source link.
  • Recipes and categories alphabetized by default.
  • HTML entities (', &, etc.) decoded consistently at scrape and render time.

Meal Plans

  • Multiple recipes per slot. Drag a main + a side into the same slot and the shopping list aggregates correctly.
  • Per-day notes field above each day's meal slots.
  • Rename + duplicate plans from the plan header.

Shopping

  • "Add to main list" / "Remove from main list" on per-plan shopping lists so the per-plan and Global lists can stay synced.
  • Per-row aisle reassignment with persistent ingredient→aisle override.
  • Full CRUD over aisles in Settings, alphabetized.
  • Recipe multiplier shown and editable inline on the Shopping List (1x / 2x / 3x / 4x).

Capitalization & polish

  • "Meal Plans" and "Shopping List" capitalized everywhere.

Security

Step-instruction rendering is gated by DOMPurify with a strict allowlist (bold, italic, underline, span with palette class, br). 22 unit tests pin allow/deny behavior — scripts, event handlers, styles, anchors, images all stripped.

Install

  1. Download Paperplate_1.0.1_aarch64.dmg.
  2. Open it and drag Paperplate into Applications.
  3. First launch: right-click Paperplate.app in Applications and choose Open (ad-hoc signed, not notarized — one-time bypass).

Known limitations

  • Apple Silicon only; no Intel build attached.
  • Not notarized, so Gatekeeper requires the right-click → Open dance on first launch.

v0.1.0 — initial release

21 May 01:58

Choose a tag to compare

First public build of Paperplate. Apple Silicon only.

Highlights

  • Recipe scraping (JSON-LD + microdata + generic HTML fallback)
  • Manual recipe import with drag-and-drop hero images
  • Meal planner with auto-fill (no-repeat-in-week, no-same-cuisine-in-a-row)
  • Per-plan + global shopping lists, grouped by aisle
  • Fractional serving multipliers (1/4× through 3×)
  • Reversible "Cooked today" tracking
  • Native print, database export/import, 30-day cleanup of transient data

Install

  1. Download Paperplate_0.1.0_aarch64.dmg.
  2. Open it and drag Paperplate into Applications.
  3. First launch: right-click the app in Applications and choose Open (ad-hoc signed, not notarized — one-time bypass).

Known limitations

  • Apple Silicon only; no Intel build attached.
  • Not notarized, so Gatekeeper requires the right-click-Open dance on first launch.