Files
admin 865b20f0b4 TASK-012: Initialize Chirp project — design spec, directory structure, README
- 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
2026-05-31 01:28:55 -04:00

1.9 KiB

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