865b20f0b4a8c2569e9aa785bb7f3e763a18e0df
- Add chirp-design-spec.md (857-line full technical specification) - Create Go server directory structure (cmd/, internal/*, deploy/, tests/) - Create PWA frontend directories (web/templates, web/static, web/sw) - Write README with architecture overview and stack table Infrastructure status as of 2026-05-31: - GoToSocial v0.21.2 running on :8085 - PostgreSQL 16, Redis, Meilisearch all configured - Nginx SSL termination for chirp.myfacefeed.com
Chirp — Fediverse Microblogging PWA
A custom Progressive Web App frontend for the Fediverse, powered by GoToSocial.
Instance: chirp.myfacefeed.com
Architecture
Browser / Mobile
↓ HTTPS
Chirp Go Web Server (this repo)
↓ Mastodon-compatible API
GoToSocial (ActivityPub backend)
↓ PostgreSQL + MinIO
Stack
| Layer | Technology |
|---|---|
| Backend | Go 1.22, GoToSocial v0.21.2 |
| Auth | Zitadel (OIDC) |
| Storage | PostgreSQL 16, Redis, MinIO |
| Search | Meilisearch |
| Frontend | Vanilla JS PWA (no framework) |
| Deploy | Nginx + systemd on 38.242.152.38 |
Project Layout
cmd/server/ — main entry point
internal/
config/ — env-based config struct
gts/ — GoToSocial API client
proxy/ — API proxy (/api/v1/* passthrough)
oauth/ — Zitadel OIDC integration
db/ — chirp schema CRUD (bookmarks, lists, etc.)
ws/ — WebSocket hub (GTS stream bridge)
scheduler/ — post scheduler (Redis sorted set)
search/ — Meilisearch client
web/
templates/ — Go HTML templates
static/ — CSS, JS, icons
sw/ — service worker
deploy/
k8s/ — Kubernetes manifests (future)
nginx/ — nginx config
tests/
integration/ — integration tests
e2e/ — end-to-end tests
Design Spec
Full technical specification: chirp-design-spec.md
Infrastructure Notes
- GoToSocial DB: PostgreSQL
gotosocial(127.0.0.1:5432) - Chirp schema: PostgreSQL
chirp(8 custom tables) - Redis: 127.0.0.1:6379 (sessions, queues, pub/sub)
- Meilisearch: 127.0.0.1:7700 (search indexes)
- MinIO: s3.myfacefeed.com / chirp-media bucket
Status
Phase 1 (Infrastructure) — complete as of 2026-05-31 Phase 2 (Go Server Core) — in progress Phase 3+ (PWA) — assigned to Claude3
Description
Languages
Markdown
100%