I am developing an uptime monitoring system similar to Kuma, and I hope it can be open source and used by many people!
I am developing an uptime monitoring system similar to Kuma, and I hope it can be open source and used by many people!
I focused on making the “new monitor” experience feel complete and pleasant to use. I added support for two kinds of monitors (one that checks a web address, and one that checks a host), built out the settings so they cover the real things I’d want to control, and connected the page to the backend so creating a monitor actually works end-to-end. Along the way I introduced a few missing UI pieces, tightened up the layout and navigation, and fixed small interaction details so the app feels more responsive. I also took time to remove outdated files and simplify how region/location names are handled, including cleaning up old data fields, so the codebase stays lean and easier to maintain.
Log in to leave a comment
Svelte still feels a bit too new for me. DX isn’t great on my side and it’s slowing down shipping.
So I’m switching to Next.js + shadcn to move faster. I’ve already rebuilt the login/signup forms and set up the official shadcn dashboard.
Log in to leave a comment
Over the last two days, I focused on getting the project into a cleaner “deploy-ready” state.
I updated the Docker setup and adjusted some backend code to better support deployment. On the frontend side, I switched the SvelteKit adapter to the Node.js adapter, fixed the API base URL to include /api, and refactored build/runtime configuration so it works more predictably in production (added HOST/PORT, changed the output directory, and updated the start command).
I also finished the project rename from knocker to kymarium, then did a small UI/UX polish pass: better login/signup error handling, loading spinners on forms/buttons, cleaner spacing, and removing placeholder homepage content. Finally, I updated .env.example with web-related variables (including a default COOKIE_DOMAIN) and added a todo.md to track what’s next.
Log in to leave a comment
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.
Log in to leave a comment
Today I shipped a big Status Page update focused on flexibility and editing experience: instead of treating “groups” and “monitors” as separate things, the page content is now described as one unified list of elements, which makes the layout easier to build, reorder, and extend in the future. Editing is much more intuitive now thanks to a drag-and-drop style editor, so rearranging sections and items feels like organizing a page rather than filling out a rigid form. I also improved input handling so different clients and workflows can submit updates more smoothly, and tightened up rules around ordering and basic text constraints to prevent messy or inconsistent public pages, overall the goal was a cleaner, more consistent model that’s simpler for users to manage and nicer to maintain.
Log in to leave a comment
Shipped a modular status page editor: Felte handling forms, Zod guarding inputs, and a reusable delete dialog for dramatic exits.
Also removed the uptime timeframe label and polished some UI weirdness. Tomorrow’s mission: attempt DnD + Svelte integration for groups/monitors.
Log in to leave a comment
Log in to leave a comment
Because my first devlog didn’t mention the current status, I’m writing another one to share the latest progress:
Backend design: most of the backend MVP proof-of-concept is done, but there are still many small issues to fix.
Frontend foundation: it’s extremely ugly right now, and I’ll need to spend a lot of time designing it.
The basics are done, but it’s very rough and hasn’t been designed yet—still needs a lot of time for design work.
Since the backend still needs changes, the frontend will also need further redesign to stay aligned with the backend.
Log in to leave a comment
I am developing an uptime monitoring system similar to Kuma, and I hope it can be open source and used by many people! And right now i am build the public status page
Log in to leave a comment