roadmap
this is my own little todo list of things to get done.
- Port to Remix 3 โ๏ธ
- Re-wrote the entire site on Remix 3 beta
- Replaced Prisma with remix/data-table + node:sqlite
- Replaced Tailwind with remix/ui css() mixins
- Dropped the Minio sidecar; sticker uploads go to a local fs volume
- Production deploy ๐ข
- Multi-stage Dockerfile published to ghcr.io
- node-tsx in-place TS, no separate build step
- Auto-applied migrations on container boot
- Bootstrap-admin CLI for first prod login
- Admin Page ๐คด
- Delete users
- Delete stickers
- Refined table plumbing (per-row POST actions, no multi-select modal)
- Testing ๐งช
- node --test setup for backend integration testing
- Tested login (good + bad creds, CSRF rejection)
- Tested invitations (generate, accept, reject)
- Tested admin (auth gate, delete sticker)
- Tested edit profile + change password
- Tested edit sticker (owner + non-owner)
- Tested API (bearer auth, public reads, CRUD, ownership)
- Profile editing ๐ค
- Avatar upload (sharp-resized, center-cropped to 512ร512)
- Remove avatar
- Change password (with current-password re-verification)
- Edit sticker โ
- Rename
- Replace image
- Owner + admin gate
- Security hardening ๐
- CSRF middleware on every state-changing form
- Session ID rotation on login / logout / password change
- PUBLIC_ORIGIN env var for proxies (TLS terminator behind the app)
- Bcrypt password hashing
- JSON API ๐
- REST endpoints for stickers (CRUD)
- /api/me, /api/users/:username, /api/users/:username/stickers
- Bearer-token auth, hashed at rest, prefix lookup
- Per-user token management UI on /account/profile
- ๐ฏ Opengraph images ๐ผ๏ธ
- Per-sticker og:image, og:title, og:description
- Per-profile og:image (avatar), og:title (username)
- Site-wide defaults
- Stickers index polish ๐
- Pagination (replace the current load-1000 query)
- Text search by name
- Filter by owner
- Users search ๐
- Toasts ๐
- Trading ๐ฑ (the actual feature)
- Propose a 1-for-1 trade
- Accept / reject / cancel proposals
- Trade history / provenance per sticker
- Friends ๐ช
- Social associations ๐โโ๏ธ
- Discord login (replaces or supplements invite-only signup?)
- Twitter/X association (display only)
- Disassociation
- Users rough location ๐
- Events ๐
- List events
- Create event
- Events map
- Sticker image cropping ๐ผ๏ธ (like avatars)
- Accessibility audit ๐ง
- Color contrast review
- Screen reader review
๐ฏ means focus
smaller and faded means eventually