Mirobody
The canonical registry of human health — roughly two thousand standardized indicators, clinical and lifestyle, resolved into one language.
Scan any barcode to check if a product is bioengineered, track your purchases, and build healthier habits.
HealthTypeScript · SwiftGitHub @hilltyler2xOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Scan a barcode → find out if the product is bioengineered (BE), likely contains BE-derived ingredients, or is verified non-GMO. Built as an MVP: Next.js 14 (App Router) + Supabase + Vercel, same stack pattern as TaxSnap.
/ (app/page.tsx) — camera barcode scanner (via @zxing/browser) with a
manual-entry fallback./api/lookup — server route that takes a barcode, looks the product up
on Open Food Facts (free, no API key needed),
and runs it through the BE detection logic.lib/beCheck.ts — the actual classification logic. Checks in order:
supabase/schema.sql — tables for profiles, scans, goals, and
receipts (the last one is scaffolded for Phase 2 receipt OCR), all with
row-level security so users only see their own data. delete_policy.sql
adds the scans DELETE policy alongside it.Create a free project at supabase.com — the free tier is enough for this app.
Open SQL Editor → New query, paste in supabase/schema.sql, and run it.
Then run supabase/delete_policy.sql the same way — without that second one
the Delete button on the history page silently does nothing, because RLS
blocks deletes when no matching policy exists. Running it is harmless even if
your copy of schema.sql already creates that policy.
Open Project Settings → API and copy two values:
NEXT_PUBLIC_SUPABASE_URLanon public key → NEXT_PUBLIC_SUPABASE_ANON_KEYThe anon key is safe to expose in the browser — RLS is what protects the
data. Never put the service_role key in this app.
cp .env.example .env.local
# paste your Supabase URL + anon key into .env.local
npm install
npm run dev
Both NEXT_PUBLIC_* vars must be set before npm run build too — the Supabase
client is created at module scope, so a build without them fails at prerender
with supabaseUrl is required.
NEXT_PUBLIC_SUPABASE_URL and
NEXT_PUBLIC_SUPABASE_ANON_KEY (and USDA_FDC_API_KEY if you have one) for
all environments, then deploy.https://gmo-scan.vercel.app.Back in Supabase, Authentication → URL Configuration:
https://your-app.vercel.app/** and, for local work,
http://localhost:3000/**Until this is set, email confirmation links and the Google button send people
back to localhost instead of the live site.
"Continue with Google" needs one extra step. It stays broken until you enable the Google provider under Authentication → Providers and paste in a client ID and secret from a Google Cloud OAuth consent screen. Email + password sign-in works with no extra setup, so you can ship without Google and add it later.
The camera scanner only runs over HTTPS (or localhost) — that is a browser
rule, not an app setting. Vercel is HTTPS by default, so it works once deployed.
The same code also builds as an iPhone and Android app, on GitHub with no Mac needed. See docs/phone-apps.md for how it works and the one-time Apple / GitHub setup.
lib/beCheck.ts are a starting point,
not exhaustive. Cross-check against the live USDA BE List
periodically — it gets updated as new BE crops are approved.receipts table and Storage bucket
convention are scaffolded but no upload UI or OCR pipeline is wired in.goals table exists;
the recommendation engine and goal-tracking screens aren't built.public/ so it installs as a PWAgoals table)scans with source: 'receipt_ocr'