The storage cutover: OpenPeeps now runs on PostgreSQL instead of ArangoDB. The SvelteKit app is retired. Around that, unread badges, jam recording, closed-community register, and session handling are brought in line with the new stack.
In the product
What members, moderators, and admins see
Unread and push
- The web app shows responsive unread indicators and keeps the PWA badge in sync with push.
- The native app tracks unread messages and posts more reliably.
- Toggling push no longer hangs; errors are shown instead of a frozen switch.
- Stale VAPID subscriptions are cleared before the browser resubscribes.
Jams, posts, and groups
- Jam footer controls stay visible; audience search is themed for dark mode.
- Jam recordings keep working after the Postgres move (edge ids and updates).
- Direct messages still open when an author has been deleted: the profile is shown as anonymized.
- Group cards can be selected in admin-style lists. Event locations and ICS files resolve more accurately.
Session and chrome
- Expired sessions refresh the JWT earlier and send people to login instead of a dead SPA.
- PWA navigation is more predictable. Open Graph tags include the community name.
- Privacy policy copy is updated.
In the platform
APIs, runtime, plugins, and operations
PostgreSQL
- The default database is PostgreSQL. Arango import normalizes UUID case, legacy edge ids, hashtags, and post-import counts.
- Concurrent migrators cannot drop the schema mid-import. A wiped
public schema or leftover Drizzle journal can be healed and remigrated.
- Post filters use Drizzle. Conversation leaves sort by creation date.
Auth, config, and jams
- When sign-ups are closed, register can still run for capability-scoped invites.
SERVER_MAX_PROFILES caps non-deleted profiles. Admin config PATCH merges instead of replacing the whole document. Empty-string overrides are omitted.
- LiveKit rooms get
instanceDomain. Observer service JWTs no longer bounce to login. Jam-started emails work for event posts.
- Admins can delete groups through a role-gated endpoint.
Also in this tag
- SvelteKit and leftover AllPeep port code are removed. Repository URLs point at code.openpeeps.org.
- The
opc CLI can mint a JWT secret without loading core. Integration and Mailpit tests cover closed signup and email.
- A same-day follow-up tag
2026-08-06-8233151f-RELEASE adds group-feed jitter, group visibility, and faster post context.