WIP! A BB-style forum, on the ATmosphere! We're still working... we'll be back soon when we have something to show off!
node typescript hono htmx atproto
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: reorganize completed plans and sync atproto-forum-plan

- Move all 45 completed plan docs from docs/plans/ to docs/plans/complete/
to distinguish finished work from active/upcoming plans
- Mark SQLite support as complete in the Future Roadmap section
- Add show-handles-in-posts as a completed Phase 4 item
- Update docs/plans/ path references to docs/plans/complete/

Malpercio 46fcc646 f33475f9

+4 -8
+4 -8
docs/atproto-forum-plan.md
··· 265 265 - ATB-24 | Topic view mod buttons (lock/hide/ban) gated on permissions; `<dialog>` confirmation modal; `POST /mod/action` web proxy route; `getSessionWithPermissions()` for permission-aware rendering 266 266 - [x] Basic responsive design 267 267 - ATB-32 | Mobile-first responsive breakpoints (375px/768px/1024px), CSS-only hamburger nav via `<details>`/`<summary>`, token overrides for mobile, accessibility improvements (skip link, focus-visible, ARIA attributes, semantic HTML), 404 page, visual polish (transitions, hover states), SVG favicon 268 + - [x] Show author handles in posts 269 + - Design in `docs/plans/complete/2026-02-24-show-handles-in-posts-design.md`. OAuth callback upserts `users.handle` after `getProfile()` resolves; posts display human-readable handles instead of raw DIDs. Users who have never logged in still show their DID (intentional MVP scope). No schema changes required. 268 270 269 271 #### Phase 5: Packaging & Deployment (Week 9–10) 270 272 - [x] Dockerfiles for AppView and Web UI — **Complete:** Multi-stage Dockerfile with Node 22 Alpine, nginx reverse proxy, health checks (ATB-28) ··· 313 315 314 316 React Native + Expo cross-platform apps consuming the same `/api/*` endpoints as the web UI. Phased rollout: read-only browse → write/interact → push notifications → offline support & app store release. Full plan in [`docs/mobile-apps-plan.md`](mobile-apps-plan.md). 315 317 316 - ### SQLite Support 318 + ### ~~SQLite Support~~ ✅ Complete 317 319 318 - Design approved 2026-02-24 (`docs/plans/2026-02-24-sqlite-support-design.md`). Enables lightweight single-file deployments without a separate Postgres process: 319 - 320 - - URL-prefix detection in `createDb()` factory (`postgresql://` vs `file:`) for automatic dialect selection 321 - - Separate `schema.sqlite.ts` with integer IDs and unix timestamp column helpers 322 - - `role_permissions` join table to replace Postgres-specific array column (improves both dialects) 323 - - Separate Drizzle config files (`drizzle.postgres.config.ts`, `drizzle.sqlite.config.ts`) and migration directories per dialect 324 - - TypeScript types identical for both dialects via Drizzle `mode` specifiers 320 + Design in `docs/plans/complete/2026-02-24-sqlite-support-design.md`. URL-prefix detection in `createDb()` selects the backend automatically (`postgresql://` → postgres.js + Drizzle PG dialect; `file:` → @libsql/client + Drizzle LibSQL dialect). The `role_permissions` join table replaced the Postgres-specific `text[]` array column, improving both dialects. Separate schema files, Drizzle config files, and migration directories per dialect. TypeScript types are identical for both via Drizzle `mode` specifiers. Docker Compose variant (`docker-compose.sqlite.yml`) and NixOS module updated with `database.type` option. 325 321 326 322 ### Other Future Work 327 323 - **Setup wizard for first-time initialization** — Interactive web-based wizard for administrators to initialize a new forum instance (create forum record on PDS, configure categories, set admin roles). Currently requires manual PDS API calls.
docs/plans/2026-02-06-database-schema-design.md docs/plans/complete/2026-02-06-database-schema-design.md
docs/plans/2026-02-07-oauth-implementation-design.md docs/plans/complete/2026-02-07-oauth-implementation-design.md
docs/plans/2026-02-07-oauth-implementation.md docs/plans/complete/2026-02-07-oauth-implementation.md
docs/plans/2026-02-09-write-endpoints-design.md docs/plans/complete/2026-02-09-write-endpoints-design.md
docs/plans/2026-02-09-write-endpoints-implementation.md docs/plans/complete/2026-02-09-write-endpoints-implementation.md
docs/plans/2026-02-10-oxlint-lefthook-implementation.md docs/plans/complete/2026-02-10-oxlint-lefthook-implementation.md
docs/plans/2026-02-10-oxlint-lefthook-setup-design.md docs/plans/complete/2026-02-10-oxlint-lefthook-setup-design.md
docs/plans/2026-02-11-deployment-infrastructure-design.md docs/plans/complete/2026-02-11-deployment-infrastructure-design.md
docs/plans/2026-02-11-deployment-infrastructure-implementation.md docs/plans/complete/2026-02-11-deployment-infrastructure-implementation.md
docs/plans/2026-02-11-membership-auto-creation-design.md docs/plans/complete/2026-02-11-membership-auto-creation-design.md
docs/plans/2026-02-13-atb-18-forum-agent-design.md docs/plans/complete/2026-02-13-atb-18-forum-agent-design.md
docs/plans/2026-02-13-atb-18-forum-agent.md docs/plans/complete/2026-02-13-atb-18-forum-agent.md
docs/plans/2026-02-13-atb-23-boards-hierarchy-implementation.md docs/plans/complete/2026-02-13-atb-23-boards-hierarchy-implementation.md
docs/plans/2026-02-13-boards-hierarchy-design.md docs/plans/complete/2026-02-13-boards-hierarchy-design.md
docs/plans/2026-02-14-permissions-design.md docs/plans/complete/2026-02-14-permissions-design.md
docs/plans/2026-02-14-permissions-implementation.md docs/plans/complete/2026-02-14-permissions-implementation.md
docs/plans/2026-02-15-moderation-endpoints-design.md docs/plans/complete/2026-02-15-moderation-endpoints-design.md
docs/plans/2026-02-15-moderation-endpoints-implementation.md docs/plans/complete/2026-02-15-moderation-endpoints-implementation.md
docs/plans/2026-02-16-atb21-firehose-ban-enforcement-design.md docs/plans/complete/2026-02-16-atb21-firehose-ban-enforcement-design.md
docs/plans/2026-02-16-atb21-firehose-ban-enforcement.md docs/plans/complete/2026-02-16-atb21-firehose-ban-enforcement.md
docs/plans/2026-02-16-enforce-mod-actions-read-path.md docs/plans/complete/2026-02-16-enforce-mod-actions-read-path.md
docs/plans/2026-02-17-atb-26-web-ui-foundation.md docs/plans/complete/2026-02-17-atb-26-web-ui-foundation.md
docs/plans/2026-02-17-web-ui-foundation-design.md docs/plans/complete/2026-02-17-web-ui-foundation-design.md
docs/plans/2026-02-18-board-view-design.md docs/plans/complete/2026-02-18-board-view-design.md
docs/plans/2026-02-18-board-view-impl.md docs/plans/complete/2026-02-18-board-view-impl.md
docs/plans/2026-02-18-bootstrap-cli-design.md docs/plans/complete/2026-02-18-bootstrap-cli-design.md
docs/plans/2026-02-18-bootstrap-cli-implementation.md docs/plans/complete/2026-02-18-bootstrap-cli-implementation.md
docs/plans/2026-02-18-cli-categories-boards-design.md docs/plans/complete/2026-02-18-cli-categories-boards-design.md
docs/plans/2026-02-18-cli-categories-boards-implementation.md docs/plans/complete/2026-02-18-cli-categories-boards-implementation.md
docs/plans/2026-02-18-homepage-design.md docs/plans/complete/2026-02-18-homepage-design.md
docs/plans/2026-02-18-homepage-implementation.md docs/plans/complete/2026-02-18-homepage-implementation.md
docs/plans/2026-02-19-admin-moderation-ui-design.md docs/plans/complete/2026-02-19-admin-moderation-ui-design.md
docs/plans/2026-02-19-admin-moderation-ui.md docs/plans/complete/2026-02-19-admin-moderation-ui.md
docs/plans/2026-02-19-atb-31-compose-forms.md docs/plans/complete/2026-02-19-atb-31-compose-forms.md
docs/plans/2026-02-19-compose-forms-design.md docs/plans/complete/2026-02-19-compose-forms-design.md
docs/plans/2026-02-19-topic-view-design.md docs/plans/complete/2026-02-19-topic-view-design.md
docs/plans/2026-02-19-topic-view.md docs/plans/complete/2026-02-19-topic-view.md
docs/plans/2026-02-20-nixos-flake-design.md docs/plans/complete/2026-02-20-nixos-flake-design.md
docs/plans/2026-02-20-nixos-flake-implementation.md docs/plans/complete/2026-02-20-nixos-flake-implementation.md
docs/plans/2026-02-20-responsive-a11y-polish-design.md docs/plans/complete/2026-02-20-responsive-a11y-polish-design.md
docs/plans/2026-02-20-responsive-a11y-polish-plan.md docs/plans/complete/2026-02-20-responsive-a11y-polish-plan.md
docs/plans/2026-02-22-backfill-repo-sync-design.md docs/plans/complete/2026-02-22-backfill-repo-sync-design.md
docs/plans/2026-02-22-backfill-repo-sync-implementation.md docs/plans/complete/2026-02-22-backfill-repo-sync-implementation.md
docs/plans/2026-02-24-show-handles-in-posts-design.md docs/plans/complete/2026-02-24-show-handles-in-posts-design.md
docs/plans/2026-02-24-sqlite-support-design.md docs/plans/complete/2026-02-24-sqlite-support-design.md
docs/plans/2026-02-24-sqlite-support-plan.md docs/plans/complete/2026-02-24-sqlite-support-plan.md