slack status without the slack. built on quickslice.
live: https://status.zzstoatzz.io
- backend: quickslice on fly.io - handles oauth, graphql api, jetstream ingestion
- frontend: static site on cloudflare pages - vanilla js spa
builds quickslice from source at v0.17.3 tag.
fly deploy
required secrets:
fly secrets set SECRET_KEY_BASE="$(openssl rand -base64 64 | tr -d '\n')" fly secrets set OAUTH_SIGNING_KEY="$(goat key generate -t p256 | tail -1)"
cd site npx wrangler pages deploy . --project-name=quickslice-status
register an oauth client in the quickslice admin ui at https://zzstoatzz-quickslice-status.fly.dev/
redirect uri: https://status.zzstoatzz.io/
user status records with emoji, optional text, and optional expiration.
{
"emoji": "π₯",
"text": "shipping code",
"createdAt": "2025εΉ΄12ζ13ζ₯T12:00:00Z"
}user preferences for display settings.
{
"accentColor": "#4a9eff",
"theme": "dark"
}serve the frontend locally:
cd site
python -m http.server 8000for oauth to work locally, register a separate oauth client with http://localhost:8000/callback as the redirect uri and update CONFIG.clientId in app.js.