the app allows to collaborate on arbitrary lists and randomly pick items from those lists. we use it on a daily basis to decide where to get lunch at.
random is actually random, using numbers generated by a quantum computer at ANU QRNG.
- protocol contains definitions of types, actions and state reducers that frontend and backend use to communicate.
- app is a sveltekit app that is both backend and frontend
- server contains code server-side only code that is shared between the sveltekit app and a socket.io backend, that runs in the same process
make sure mkcert is installed, it's required for local ssl.
if you've never built before, run:
$ pnpm build
also, you have to rebuild anytime websocket related logic changes.
to start development server, do:
$ pnpm dev
local database will be created as ./app/database.dev.jsonl.
the app is hosted on fly.io and can be deployed by running
fly deploy
from the root directory. it's is also automatically deployed for every new commit in master.