WallpaperMachine
The wallpapers you love. A new home on your Mac.
Capture the stray cats and dogs you spot, and help the ones that need it.
LifestyleGitHub @kherklenOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
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 ↗A playful, map-first web app for Ulaanbaatar: "capture" the stray cats and dogs you spot. Each capture goes into My Collection, and when an animal needs something (food, water, a vet, or its owner), it raises an SOS pin on a shared map so people nearby can help and mark it helped.
Built with Next.js 16, Tailwind CSS, Supabase (accounts, database, photos), Leaflet + OpenStreetMap, and OpenAI (breed guess).
npm install.supabase/schema.sql and run it. Safe to re-run..env.example to .env.local and fill in:
NEXT_PUBLIC_SUPABASE_URL — Project Settings → APINEXT_PUBLIC_SUPABASE_ANON_KEY — the publishable key (sb_publishable_…), never the secret oneOPENAI_API_KEY — for the photo check, breed guess, and matching (server-only)SUPABASE_SECRET_KEY — the secret key (sb_secret_…), server-only; used to find matching captures and to send notificationsNEXT_PUBLIC_VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEY — for phone notifications; generate a pair with node -e "console.log(require('web-push').generateVAPIDKeys())"DEMO_PASSWORD — only needed for scripts/seed-demo.mjs, which creates the two sample logins and sample postsnpm run dev and open http://localhost:3000. On desktop, the camera falls back to a file picker.Phones only allow the camera and location on https://. Deploy to Vercel (import this GitHub repo, add the same environment variables, except DEMO_PASSWORD), then open the https://…vercel.app link on your phone.
Small scripts in scripts/ verify the database rules against your Supabase project using throwaway test accounts:
node --env-file=.env.local scripts/check-accounts.mjs
node --env-file=.env.local scripts/check-captures.mjs
node --env-file=.env.local scripts/check-helped.mjs
node --env-file=.env.local scripts/check-delete.mjs
node scripts/check-vets.mjs
# with `npm run dev` running; the folder needs cat.jpg, dog.jpg, banana.jpg
node --env-file=.env.local scripts/check-breed.mjs path/to/test-photos
To remove the test accounts and their captures afterwards, run this in the SQL Editor:
delete from auth.users where email like 'collectsavar.check+%';
Map tiles and street addresses come from © OpenStreetMap contributors, via the tile server and Nominatim, following their usage policies.