How many times today did you invoke a deity or a dog?
GD Tachometer is a tongue-in-cheek counter for involuntary invocations of a deity (G) or a dog (D) during particularly demanding workdays. Because sometimes the best stress thermometer is counting how many times you said something you wouldn't say in front of children.
The tachometer tracks daily counts and automatically sets the next day's limit based on the previous day's total — so you can monitor the trajectory of your inner peace over time.
| Key | Action |
|---|---|
ENTER |
Register an invocation, alternating between G and D |
G |
Register a G-type invocation |
D |
Register a D-type invocation |
The tachometer updates in real time across all connected devices.
| Layer | Technologies |
|---|---|
| Backend | NestJS · TypeORM · PostgreSQL · Socket.IO |
| Frontend | Angular 21 · Signals · RxJS · Socket.IO client |
| Deploy | Docker (single image, multi-stage build) |
Prerequisites: Node.js 22+, PostgreSQL 16+
Configure .env file in ./backend folder from develop.env.default file
# Backend (port 3000)
cd backend
npm install
npm run start:dev
# Frontend (port 4200, proxied to the backend)
cd frontend
npm install
npm run startOpen http://localhost:4200.
# Build the image and run
task docker:up
# Or manually (from project root)
docker compose -f docker/docker-compose.yml -f docker/docker-compose-db.yml build
docker compose -f docker/docker-compose.yml -f docker/docker-compose-db.yml upOpen http://localhost:3000.
At the start of each day the tachometer limit is calculated automatically:
today_limit = max(200, yesterday_G + yesterday_D)
If yesterday you racked up 350 invocations, today the tachometer aims for 350. The limit never drops below 200.
This project was born from the spark of inspiration we found in Uri Glauco, and it would not exist without it.