No updates detected yet. GitHub releases will appear here.
MRR App Maxxing
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Mirror is a photo-tracking app for grooming and skincare progress. It does not score your appearance, rate your attractiveness, or compute facial proportions — that's not a missing feature, it's the reason the app exists.Read the full README ↗Mirror is a photo-tracking app for grooming and skincare progress. It does not score your appearance, rate your attractiveness, or compute facial proportions — that's not a missing feature, it's the reason the app exists.
Most apps in this category ("looksmaxxing" apps) sell you a number: an attractiveness score, usually built on the Marquardt phi mask or similar proportion-based facial measurement. That approach doesn't hold up. The ratios it's built on were derived from a narrow sample of fashion models, and they don't replicate across non-European populations — the error introduced by locating landmarks on a photo is close to the same size as the population variation the score is supposedly measuring. There's no signal there to build a product on.
The one part of those apps that's actually useful — looking at a photo of yourself now next to a photo from weeks ago — doesn't need a score attached to it. Mirror keeps that part and drops the rest. This isn't a UI decision; there's no rating, percentile, or proportion field anywhere in the database schema. It was left out at the data-model level, not just hidden from the screen.
face_shape_source field records whether the final value came from the model or from your edit.Capture, Compare, Log, Stack, and Readings are built and running. Two things aren't built end-to-end yet:
Next.js (App Router), Supabase (Postgres + Storage + Auth), deployed on Vercel. PWA, installable, no native app.
git clone https://github.com/only1makai/Mirror.git
cd Mirror
npm install
Create .env.local with:
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
Then:
npm run dev
Migrations live in supabase/migrations/ and can be applied with scripts/run-migration.mjs (needs a DB_URL Postgres connection string).
Face photos are sensitive. Storage is a private, RLS-locked bucket scoped to the owning user, with no third-party analytics on any route that renders a photo.