TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Your digital business card — tap to share.
Translation pending
ProductivityTypeScript · PLpgSQLGitHub @lesteralteradoOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
NFC digital business card app. Tap an unclaimed card to set up a profile;
every tap after that shows the public profile. One profile can own many
cards — edit once, every card stays current. See the architecture brief in
this repo's history / your notes for the full product spec.Read the full README ↗NFC digital business card app. Tap an unclaimed card to set up a profile; every tap after that shows the public profile. One profile can own many cards — edit once, every card stays current. See the architecture brief in this repo's history / your notes for the full product spec.
Next.js (App Router) · Tailwind CSS · Supabase (Postgres, Auth, Storage) · Vercel.
supabase/migrations/0001_init.sql
(or use the Supabase CLI: supabase link then supabase db push). This
creates profiles, tags, the tags_public view, the get_tag_profile
/ claim_tag RPCs, RLS policies, and the avatars storage bucket.src/app/t/[tag_id]/actions.ts
to handle the pending-confirmation state.cp .env.local.example .env.local and fill in
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY from
Project Settings -> API Keys (publishable key). SUPABASE_SECRET_KEY is
only needed for the provisioning script below.npm run dev, then visit /t/<any-code> — since no tags
are provisioned yet, this correctly shows the "not recognized" page. Seed
one manually to try the claim flow:
insert into public.tags (tag_id) values ('test123');
then visit /t/test123.npm run generate-tags -- --count=50
Generates 50 unique short codes, inserts them as unclaimed rows via the
service-role client, and writes tag-batch-<timestamp>.csv with
tag_id,url columns — feed the url column into whatever tool writes the
NDEF URI record onto each physical NTAG213/215/216 card. Needs
SUPABASE_SECRET_KEY and SITE_URL set in .env.local (use your
production domain, not localhost, once you're provisioning real cards).
src/proxy.ts — refreshes the Supabase session cookie on every request
and gates /dashboard behind login. (Renamed from middleware.ts in
Next.js 16 — see node_modules/next/dist/docs/.../proxy.md.)src/lib/supabase/ — client.ts (browser), server.ts (Server
Components/Actions, cookie-based), admin.ts (service-role, scripts only).src/app/t/[tag_id]/ — the core route: claim flow (unclaimed) or public
profile (claimed), plus the .vcf download route.src/app/dashboard/ — protected owner dashboard: edit profile, upload
avatar, list linked cards, add a card by code.supabase/migrations/0001_init.sql — schema, RLS, and the two
SECURITY DEFINER RPCs every write to tags goes through.scripts/generate-tags.ts — Stage 6 batch provisioning.Push to a Git repo and import into Vercel; set the same env vars there
(SUPABASE_SECRET_KEY only if you'll run the provisioning script from CI —
otherwise keep it out of Vercel and run that script locally/from a trusted
machine).