Zen is an application for structuring your daily routine.
Note
Zen has no feature to read your mind yet; therefore, cheating your way up the leaderboard is possible. However, keep in mind that doing so does not outsmart the developers, but yourself.
Tool prerequisites:
pulumigonpm/nodejsawscli
AWS prerequisites:
- Create a route53 public hosted zone for your domains if you want
monkto automatically setup all required records. - To make the Email verification work correctly your AWS account must be unsandboxed from SES.
The deployment of zen is facilitated via monk 🪬, a tiny cli tool that wraps the underlying pulumi process which builds and deploys the software. The process is interactive, so the only command you ever need (for both deployment and upgrades) is this:
go run cmd/monk/monk.goImportant
If you are not me, you should change the privacy policy and terms of service before deploying.
Zen was built to solve a specific problem while running on high available but extremly low-cost cloud-infrastructure. This comes with certain drawbacks:
- Zen is based on various eventually consistent mechanisms (e.g. timing updates from the weekend might be added to next weeks leaderboard). Certain operations might seem to be magically swallowed or disappear in hyperedgecases.
- The leaderboard cannot be queried server-side; you must load the full json and sort it client-side (+ the json is aggressively cached by cloudfront).
For this particular scope, this is totally fine; however, please do NOT take this as an example or argument of how to correctly implement business-critical software!