Beer O'Clock
https://itsbeeroclock.au
This is my first serious React project. I wanted to make something I would use myself, and something I thought there was an actual need for.
The result was a hyper-targeted beer consumption tracker for Queensland drinks and sizes. It’s pretty inflexible for anything that’s not specifically Queensland beer, but that’s the point. It eliminates the vast majority of friction when it comes to actually keeping track of your drinks on a night out, which, as I’m getting older, becomes increasingly important for avoiding hangovers.

Track your session with no hassle

Review your past nights out

Sign up for detailed insights

Australian beers pre-loaded
Tech stack
The frontend is built with React and TypeScript, using Vite as the build tool.
The backend uses a thin Go layer on AWS Lambda, reaching out to DynamoDB for storage with a single-table design.
Authentication is handled with either anonymous sessions, or magic OTP links sent to email or Google Sign-In via Supabase. Cloudflare Turnstile protects the email OTP endpoint from abuse.
The app is a PWA with an offline-first approach, so you can log drinks even without service and they will sync when you’re back online.
AI
AI was used quite a bit in the development of this project. Regardless of my personal opinions, I realised it is important to make sure I can manage a project that relies on agentic coding, including managing steering files, documentation, exploring MCP servers and tools, and of course giving decent prompts. I used a combination of Copilot and Amazon Kiro for this project, and I purposefully chose the tech stack with this in mind, as I knew these are all extremely well-documented and popular technologies.
That said, I was very conscious that there’s the possibility of the agent to eventually steamroll the project into an unmanageable state, so I was sure to have at least a basic understanding of everything involved, keep regular audits, and practice good documentation.
Critical parts of the codebase, such as BAC calculations and privacy features, were scrutinised both manually and with other AI tools.
Future plans
The app is essentially feature-complete for my needs, but I have a few ideas for future improvements:
- Going against the initial philosophy, I’d like an easy way for this to be deployed for other states and countries if others want to do the same thing for their local drinks. This would involve some kind of configuration system, and maybe an admin interface for managing the beer catalogue.
- To sell out and practice my AI and AWS skills, incorporating an opt-in AI insights feature that analyzes your session history and provides personalized recommendations. Privacy would be a top priority, so I would need to carefully look at Bedrock’s terms and ensure that any data sent to the AI is properly anonymized and minimal. This may or may not happen.
- Dark mode improvements.