I’ve been working through a large batch of changes that’s less about flashy features and more about making the project feel like a real product. Most of this work was “invisible”: consolidating foundations, finishing half-implemented flows, and keeping the backend + schema consistent so future changes won’t hurt.
What I worked on:
Database foundation
Merged several separate migrations into the base schema (status page/incident titles, enum updates, invites, account fields). New environments are easier to bootstrap and the migration history is cleaner.
Backend alignment
No major route changes, but handlers/repos were updated for the new transaction signature and module structure. Not exciting on paper, but it reduces friction everywhere.
Monitors
Monitor lists now include status and a 30-day uptime metric, making monitoring views more practical.
Notifications
Notifications are now usable: added Slack, implemented email via SMTP, and improved config validation to fail early. Also standardized naming after the project rename.
Auth & sessions
Added a full email verification flow (register → verify email → block unverified logins → resend → verify via link + redirect). Also improved logout, cookie domain handling, and OAuth linking rules.
Users & teams
Added key account/team features: profile update, password change, session listing + revocation, member management (remove/leave), and a full team invite workflow (create/list/accept/reject/cancel + token links). If SMTP is enabled, invites send emails.
Rename & infra
Renamed the module from knocker to kymarium, updated imports, refreshed env + Docker setup, and regenerated Swagger/tooling.