Skip to content

Repository files navigation

HamsterCheek

A weatherproof box + web app for storing valuables outside of homes and banks. Drop a pin on a map, add a note and a photo, and always know where a stash is.

Generated by FleetCrown — the captain-mode command center for your AI agent fleet.

Stack

Get started

git clone <this-repo-url>
cd HamsterCheek
pnpm install
cp .env.example .env.local   # fill in DATABASE_URL
pnpm run db:generate          # generate SQL migrations from src/db/schema.ts
pnpm run db:migrate           # apply them
pnpm run dev

Open http://localhost:3000.

What's here

src/
├── app/
│   ├── page.tsx              ← home: list of stashes
│   ├── new/page.tsx          ← add-a-stash form (map picker + photo upload)
│   ├── stashes/[id]/page.tsx ← stash detail
│   └── actions.ts            ← server action: create a stash
├── components/
│   ├── MapPicker.tsx         ← click-to-drop-pin Leaflet map
│   └── StashLocationMap.tsx  ← read-only map for the detail page
├── db/
│   ├── schema.ts             ← the `stashes` table (Drizzle)
│   ├── index.ts              ← DB client
│   └── migrate.ts            ← runs drizzle/*.sql against DATABASE_URL
└── lib/coordinates.ts        ← lat/lng validation + formatting

Uploaded photos are saved to public/uploads/ on disk — fine for a single-server deployment, not for anything horizontally scaled or ephemeral-filesystem hosted.

What's next

  • Auth: pnpm add next-auth@beta + scope stashes to a user
  • Move photo storage to an object store (S3, R2) instead of local disk
  • Deploy: self-host behind a reverse proxy (build, then run next start on your server)

Need help?

Open this project in FleetCrown's Control panel to dispatch AI agents at it.

About

Weatherproof box + web app for storing valuables outside homes and banks. Drop a pin, add a note and photo, always know where a stash is.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages