A small Postgres-backed to-do list used to exercise Better Prototype's deploy flow. It serves the browser UI and JSON API from one dependency-light Node process.
- Add, complete, and delete tasks
- Clear all completed tasks
- Persistent storage through the injected
DATABASE_URL - Upload files to S3-compatible blob storage and open them with short-lived signed URLs
- Record and inspect a namespaced Redis test value
- Responsive, accessible browser UI
npm install
DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres \
BLOB_BUCKET=your-bucket \
BLOB_PREFIX=better-prototype-hello-world \
AWS_REGION=us-east-1 \
REDIS_URL=redis://localhost:6379 \
REDIS_NAMESPACE=better-prototype-hello-world \
npm startOpen http://localhost:3000. The server creates the todos table on startup.
Dockerfile→ Node 22 container with the injectedPORTexposed.DATABASE_URL→ Postgres connection used by the to-do API.BLOB_BUCKET→ S3 bucket used for file attachments.BLOB_PREFIX→ optional key prefix that keeps this app's objects together.AWS_REGION→ bucket region; defaults tous-east-1when omitted.REDIS_URL→ Redis connection used by the cache test.REDIS_NAMESPACE→ optional namespace for the demo hash; defaults tobetter-prototype-hello-world.- The branch tip → the commit sha, message and author shown on the app overview.
Once the webhook is wired up, pushing any commit to main should start a build.
An easy way to generate one:
date >> heartbeat.txt && git commit -am "test: trigger a deploy" && git push