All updates

Domains, webhooks & audience
Domain verification, webhook delivery, audience groups, and the first wave of backend microservices.
DomainsWebhooksAudienceAPIDNSMicroservices
Planning
- Microservices architecture Domain, webhook, and audience services with reverse-proxy routing via Caddy and shared auth middleware. Custom ID prefixes (aud_, dom_, wh_) for cross-service entity identification.
- Marketing resources roadmap Planned changelog, self-hosting, system status, and SDK documentation pages on the web app.
- Domain lifecycle design Designed full domain lifecycle: add → DNS generate → verify → active, with DMARC/DKIM/SPF record management and Redis caching strategy.
Design
- Domain dashboard Domain table with status badges (verified, pending, failed), DNS record table with copy-to-clipboard actions, skeleton loading states, and popover for domain actions.
- Webhook UI Webhook table, create modal with event icons and selection, delete confirmation by URL, keyboard shortcut indication on delete modal.
- Audience management Audience group layout with sidebar/topbar, edit modal with accessibility features, bulk import with react-dropzone file upload area, and import status display.
- Dashboard shell redesign Organization dropdown in sidebar and topbar, adaptive sidebar/topbar layout toggle with motion library animations, theme toggle functionality with layout-specific icons.
Frontend
- Domain management Sidebar/topbar layout, add-domain flow with valibot validation, DMARC/DKIM/SPF record sections with copy functionality, delete modal with popover, search and status filters, error handling with SomethingWentWrong component.
- Domain detail page DNS records section, domain header with relative time, status banner with last updated time, loading skeletons, domain table with badges, and action buttons.
- Webhooks List sidebar with webhook table, create modal with event selection and router navigation, delivery logs view, event subscriptions, delete modal with confirmation by URL.
- Audience management (contacts precursor) Audience groups with CRUD, bulk CSV import with react-dropzone and validation, edit/delete group modals with confirmation input, copy audience ID, CSV download export.
- Dashboard shell Organization dropdown in sidebar/topbar with async handling, adaptive sidebar/topbar layout toggle, theme toggle with layout-specific icons.
- Web marketing pages SDK, API reference, campaigns, templates, validation, transactional email, changelog, self-hosting guide, and system status pages with comprehensive layouts and metadata.
Backend
- Domain service Full CRUD, DNS generate/verify/delete, DKIM key generation, Redis caching with invalidation, OpenAPI via @elysiajs/openapi, organization-scoped operations, domain parameter validation.
- DNS service DNS record generation and insertion, verification with status tracking, DKIM key management, organization membership enforcement, dedicated routes and controllers.
- Domain schema evolution New attributes for DNS and verification status, database migration, status column added to domain_dns_record table, domain regex validation pattern.
- Webhook service Full CRUD, event subscriptions, webhook event seeding (db:seed), actual secret in responses, health checks with Postgres and Redis status.
- Audience service CRUD operations, bulk import, advanced search, port 3014, PostgreSQL + Redis integration, authentication middleware, audience group management with CRUD.
- Schemas & database Audience and webhook tables with custom ID prefixes (aud_, dom_, wh_), relations and enums, and centralized Drizzle schema updates.
- Service standardization Standardized error responses with structured message objects, consistent logger usage across services, auth middleware using API session fetching, CORS support in auth service.
DevOps
- Observability stack ClickHouse, OpenTelemetry Collector, Grafana, and Loki added to docker-compose for distributed tracing and log aggregation.
- Logger package (@reloop/logger) Pino-based structured logging with pretty-printing in development. Adopted across domain and auth services with standardized error/info message patterns.
- SDK scaffolding Initial .NET, Go, Java, Node, PHP, Python, and Rust hello-world SDK folders with project configuration files.
- Reverse proxy configuration Audience and webhook API endpoints added to Caddyfile for service routing. Domain route versioning updates.
- Dependency updates Next.js upgraded to 16.0.0-beta.0 then canary.14, React 19.2.0, bun 1.3.0, form validation migrated from zod to valibot, babel-plugin-react-compiler added.