Changelog
What's new in Vartio. Every feature, fix, and improvement since launch.
Features
- **alerts:** per-channel quiet hours to silence notifications during daily time windows
- **monitors:** per-monitor uptime SLA targets with breach status badge
- **team:** product-wide audit log and admin role
Features
- **monitors:** runbook URL per monitor included in all alert messages ([#94](https://github.com/kalle-works/vartio.dev/issues/94))
Features
- **status-pages:** custom CSS injection and on-call comparison row ([#93](https://github.com/kalle-works/vartio.dev/issues/93))
Features
- **alerts:** HMAC-SHA256 signed webhook payloads ([#92](https://github.com/kalle-works/vartio.dev/issues/92))
Features
- **alerts:** incident reminder re-notifications per alert channel ([#91](https://github.com/kalle-works/vartio.dev/issues/91))
- **monitors:** CSV export and import for bulk monitor management ([#90](https://github.com/kalle-works/vartio.dev/issues/90))
Features
- **status-pages:** RSS feed and embeddable SVG status badge ([#89](https://github.com/kalle-works/vartio.dev/issues/89))
Features
- **status-pages:** email subscriptions for incident notifications ([#88](https://github.com/kalle-works/vartio.dev/issues/88))
Features
- **alerts:** add Opsgenie alert channel and expose PagerDuty/Teams in UI ([#87](https://github.com/kalle-works/vartio.dev/issues/87))
Features
- **monitors:** add domain registration expiry monitoring via RDAP ([#86](https://github.com/kalle-works/vartio.dev/issues/86))
Features
- **monitors:** add heartbeat monitoring for cron jobs and background workers ([#85](https://github.com/kalle-works/vartio.dev/issues/85))
Features
- **alerts:** add Telegram alert channel via Bot API ([#84](https://github.com/kalle-works/vartio.dev/issues/84))
Features
- **monitors:** on-demand check via POST /monitors/{id}/check ([#83](https://github.com/kalle-works/vartio.dev/issues/83))
Features
- **alerts:** add SMS alert channel via Twilio ([#82](https://github.com/kalle-works/vartio.dev/issues/82))
Features
- **monitors:** response time threshold alerting ([#81](https://github.com/kalle-works/vartio.dev/issues/81))
Features
- **digest:** weekly and monthly uptime digest reports via email ([#79](https://github.com/kalle-works/vartio.dev/issues/79))
Features
- **alerts:** add PagerDuty and Microsoft Teams alert channels ([#78](https://github.com/kalle-works/vartio.dev/issues/78))
- **status-pages:** password-protected status pages ([#77](https://github.com/kalle-works/vartio.dev/issues/77))
Features
- **auth:** two-factor authentication with TOTP ([#76](https://github.com/kalle-works/vartio.dev/issues/76))
Features
- **incidents:** incident update announcements for status pages ([#74](https://github.com/kalle-works/vartio.dev/issues/74))
- **monitors:** SLA CSV export and 12-month SLA history ([#75](https://github.com/kalle-works/vartio.dev/issues/75))
Features
- **monitors:** bulk pause, resume, and delete operations ([#73](https://github.com/kalle-works/vartio.dev/issues/73))
Features
- **alerter:** fire degraded alerts for SSL expiry warnings and slow response ([#69](https://github.com/kalle-works/vartio.dev/issues/69))
- **incidents:** manual incident create and resolve ([#71](https://github.com/kalle-works/vartio.dev/issues/71))
- **monitors:** pause and resume monitors ([#67](https://github.com/kalle-works/vartio.dev/issues/67))
- **on-call:** on-call schedules with rotation-based paging ([#68](https://github.com/kalle-works/vartio.dev/issues/68))
- **rbac:** viewer role with read-only access enforcement ([#72](https://github.com/kalle-works/vartio.dev/issues/72))
- **status-pages:** custom description and logo branding ([#70](https://github.com/kalle-works/vartio.dev/issues/70))
- **status-pages:** incident history on public status page ([#66](https://github.com/kalle-works/vartio.dev/issues/66))
Features
- **mail:** agent mailboxes for every public-facing vartio.dev address ([#53](https://github.com/kalle-works/vartio.dev/issues/53))
- **status-pages:** CNAME verification + verified-gating for custom domains ([#62](https://github.com/kalle-works/vartio.dev/issues/62))
- **status-pages:** show maintenance windows on public status page ([#65](https://github.com/kalle-works/vartio.dev/issues/65))
Features
- **compare:** add EU-first comparison pages and SEO baseline ([#60](https://github.com/kalle-works/vartio.dev/issues/60))
Features
- **monitors:** broader URL → monitor type auto-detection ([#57](https://github.com/kalle-works/vartio.dev/issues/57))
Bug Fixes
- **feedback,a11y:** escape email HTML, cap message length, share dialog a11y hook ([#56](https://github.com/kalle-works/vartio.dev/issues/56))
Performance Improvements
- **status-pages:** fan out monitor fetches in parallel
Bug Fixes
- **ci:** restore multi-arch (amd64 + arm64) image builds
Bug Fixes
- **status-pages:** render HTML for custom domains when browser asks
Features
- **status-pages:** support service_ids that auto-expand into groups
Bug Fixes
- **api-keys:** inline revoke confirmation to fit the actions cell
Bug Fixes
- **checker:** handle bare hostnames in SSL monitor URLs
Features
- **api-keys:** expose services:read and services:write in permission picker
Bug Fixes
- **labels:** drop unused errInvalidLabelFilter var
Bug Fixes
- **labels:** validate filter alphabet and remove nested form in editor
Features
- **api:** Prometheus-style labels on monitors, services, and alert routing
- **frontend:** add label editor and filtering for monitors, services, alert channels
Features
- **api:** RFC 9457 errors, discovery doc, and OpenAPI completion
Bug Fixes
- **checker:** remove unnecessary lambda wrapping SafeWebhookClient
Features
- **checker:** expose /health endpoint and wire k8s probes
Bug Fixes
- **auth:** preserve superadmin status across page reload
Features
- **admin:** add plan override UI on organization detail
Bug Fixes
- **security:** add rate limiting to vartio-api ingress
Bug Fixes
- **dns:** update cname.vartio.dev comment to reflect bare-metal IPs replacing Hetzner LB
Bug Fixes
- **ci:** add linux/amd64 platform and switch to amd64 runner for bare-metal migration
Features
- **growth:** convert service status pages to monitors
Bug Fixes
- **scripts:** load Flarelytics API key from env instead of hardcoding
- **security:** harden auth and outbound checks
Features
- **ops:** add hourly mail digest workflow and analytics scripts
- **ops:** hourly mail digest + analytics scripts ([#54](https://github.com/kalle-works/vartio.dev/issues/54))
- **plans:** enforce launch plan limits
Bug Fixes
- **emailtest:** remove defer cancel so gocritic exitAfterDefer passes ([#52](https://github.com/kalle-works/vartio.dev/issues/52))
Bug Fixes
- **feedback-dialog:** accessibility pass (ESC, focus trap, scroll lock, focus restore) + regression specs ([#50](https://github.com/kalle-works/vartio.dev/issues/50))
Features
- **feedback:** add [email protected] agent mailbox + reader script ([#49](https://github.com/kalle-works/vartio.dev/issues/49))
Features
- **billing:** annual pricing with 20% discount ([#37](https://github.com/kalle-works/vartio.dev/issues/37)) ([#48](https://github.com/kalle-works/vartio.dev/issues/48))
Features
- **billing:** expose over_limit flag on billing status ([#47](https://github.com/kalle-works/vartio.dev/issues/47)), closes [#42](https://github.com/kalle-works/vartio.dev/issues/42) [#42](https://github.com/kalle-works/vartio.dev/issues/42)
Bug Fixes
- **billing:** webhook event deduplication ([#33](https://github.com/kalle-works/vartio.dev/issues/33)) ([#43](https://github.com/kalle-works/vartio.dev/issues/43))
Features
- **billing:** admin plan override + dunning email ([#40](https://github.com/kalle-works/vartio.dev/issues/40) [#38](https://github.com/kalle-works/vartio.dev/issues/38)) ([#46](https://github.com/kalle-works/vartio.dev/issues/46))
- **billing:** harden checkout session ([#31](https://github.com/kalle-works/vartio.dev/issues/31) [#32](https://github.com/kalle-works/vartio.dev/issues/32) [#35](https://github.com/kalle-works/vartio.dev/issues/35) [#36](https://github.com/kalle-works/vartio.dev/issues/36) [#41](https://github.com/kalle-works/vartio.dev/issues/41)) ([#44](https://github.com/kalle-works/vartio.dev/issues/44))
- **billing:** unify pricing, add /pricing page, over-limit banner ([#30](https://github.com/kalle-works/vartio.dev/issues/30) [#39](https://github.com/kalle-works/vartio.dev/issues/39) [#42](https://github.com/kalle-works/vartio.dev/issues/42)) ([#45](https://github.com/kalle-works/vartio.dev/issues/45))
Features
- **billing:** Stripe checkout and portal UI ([#27](https://github.com/kalle-works/vartio.dev/issues/27))
Features
- **alerts:** redesign alert email template per DESIGN.md
Bug Fixes
- **api-keys:** widen key_prefix column so creation actually works
Bug Fixes
- **release:** inject version into Docker image via ldflags
Bug Fixes
- **frontend:** stop /system-status from breaking the Docker build
Features
- **docs:** add llms.txt + AI agent quickstart for API discovery
Bug Fixes
- **security:** close DNS rebinding SSRF, harden ingress, bump Next, raise bcrypt cost
Features
- **billing:** integrate Stripe billing with plan quota enforcement
- **billing:** Stripe backend integration (M-vartio-stripe milestone, backend part)
- **email:** wire EuroMail SDK through internal/email mailer
Bug Fixes
- **frontend:** fix test alert type error on alert detail page
Bug Fixes
- **frontend:** use Next.js Link for footer navigation to fix ESLint error
Features
- **alerts:** add test alert button for channel verification
- **frontend:** add copy-to-clipboard for API endpoint paths
- **frontend:** add monitor templates for quick setup
- **frontend:** add response time sparklines to monitor list
- **frontend:** add toast notification system with action feedback
Bug Fixes
- **k8s:** use HTTP-01 issuer for custom domain TLS certificates
Features
- **status-pages:** configure direct-to-origin custom domain routing
Features
- **k8s:** add ingress for status.euromail.dev custom domain
Features
- **api:** add custom domain routing for status pages
- **frontend:** add custom domain configuration to status page editor
Features
- **dashboard:** add API key management to settings
- **frontend:** add manual dark mode toggle with system preference support
- **frontend:** add multi-language code examples to API docs
- **frontend:** add search filter to API documentation page
- **sdk:** add typed TypeScript API client
Features
- **api:** enhance health endpoint with version, uptime, and dependency status
- **dashboard:** add keyboard shortcuts for navigation
- **frontend:** add integration guides to API documentation page
- **frontend:** wire system status page to real health endpoint data
- **repo:** add CONTRIBUTING.md for developer guidance
Features
- **dashboard:** add in-app feedback widget
- **frontend:** add Vartio platform system status page
- **frontend:** enhance landing page footer with resource links
Bug Fixes
- **frontend:** resolve CHANGELOG.md path for Docker builds
Bug Fixes
- **api:** expose rate limit headers via CORS
Features
- **api:** return field-specific validation errors
- **api:** serve OpenAPI spec and Swagger UI at /api/docs
- **frontend:** add error boundaries for graceful crash recovery
- **frontend:** add public changelog page
Bug Fixes
- **frontend:** show flash message and preserve redirect on auth guard
- **frontend:** skip auth/me request when no session cookie exists
Features
- **auth:** make organization name optional on signup
- **repo:** add GitHub issue templates for bugs and features
Bug Fixes
- **api:** return JSON for 404 and 405 error responses
Features
- **frontend:** add API documentation page
- **frontend:** add branded custom 404 page
- **repo:** add README.md for developer onboarding
Features
- **frontend:** add favicon.ico matching brand icon ([#26](https://github.com/kalle-works/vartio.dev/issues/26))
Features
- **services:** add service grouping for monitor organization ([#25](https://github.com/kalle-works/vartio.dev/issues/25))
Bug Fixes
- **frontend:** improve WCAG contrast ratios and add main landmarks ([#24](https://github.com/kalle-works/vartio.dev/issues/24)), closes [#9C9890](https://github.com/kalle-works/vartio.dev/issues/9C9890) [#706B63](https://github.com/kalle-works/vartio.dev/issues/706B63) [#706C64](https://github.com/kalle-works/vartio.dev/issues/706C64) [#918D85](https://github.com/kalle-works/vartio.dev/issues/918D85)
Bug Fixes
- **frontend:** align nav and content widths across public pages ([#23](https://github.com/kalle-works/vartio.dev/issues/23))
Features
- **frontend:** apply Nordic Craft design system ([#22](https://github.com/kalle-works/vartio.dev/issues/22)), closes [#C2450A](https://github.com/kalle-works/vartio.dev/issues/C2450A)
Bug Fixes
- **security:** remediate all findings from security audit ([#21](https://github.com/kalle-works/vartio.dev/issues/21)), closes [hi#severity](https://github.com/hi/issues/severity)
Features
- **services:** add status page URLs for 160+ public services ([#20](https://github.com/kalle-works/vartio.dev/issues/20))
Features
- **frontend:** add SVG favicon and apple-touch-icon ([#19](https://github.com/kalle-works/vartio.dev/issues/19))
Features
- **checker:** detect Cloudflare Bot Fight Mode and auto-disable blocked services ([#18](https://github.com/kalle-works/vartio.dev/issues/18))
Bug Fixes
- **services:** remove Tabnine and Mattermost from monitored services ([#17](https://github.com/kalle-works/vartio.dev/issues/17))
Bug Fixes
- **docker:** update Go builder image to 1.25 to match go.mod
Features
- **incidents:** AI triage on incident detail page ([#16](https://github.com/kalle-works/vartio.dev/issues/16))
Features
- **k8s:** add ANTHROPIC_API_KEY to api deployment
- **triage:** add AI-powered diagnostics for public Is X Down pages
Features
- **public-services:** add historical check data and response time chart
Features
- **is-down:** improve UI design and SEO for service status pages, closes [hi#volume](https://github.com/hi/issues/volume)
- **public-services:** add on-demand live check for Is X Down pages
Features
- **monitors:** add test check on monitor creation
- **team:** add team management with invites, audit logging, and responsive sidebar
Bug Fixes
- **admin:** move admin routes inside JWT auth middleware group
Features
- **admin:** add superadmin panel with full platform management
Features
- **seo:** server-render /is page, add structured data to landing page
Bug Fixes
- **is-down:** remove 149 services that block automated checks
Bug Fixes
- **is-down:** add missing scan fields to ListPublicServices queries
Bug Fixes
- **is-down:** cast numeric uptime_30d to float8 for pgx scan
Bug Fixes
- **is-down:** trigger rebuild with outage reason query columns
Features
- **is-down:** auto-fetch outage reasons from service status pages
Features
- **seo:** add FAQ schema, breadcrumbs, category pages, robots.txt
Bug Fixes
- **is-down:** add shared navigation header to Is X Down pages
Bug Fixes
- **checker:** resolve pgx parameter type error in public service status update
Bug Fixes
- **auth:** show error message on failed login instead of silent redirect
- **landing:** add mobile hamburger menu and main landmark
- **landing:** route Contact Sales to mailto instead of register page
- **status-pages:** add frontend route for public status pages
Features
- **checker:** add public service checks to existing checker process
- **seo:** add "Is X Down?" public service status pages
- **seo:** add 567 more services, total 1182 Is X Down pages
- **seo:** seed 615 popular internet services for Is X Down pages
Features
- **api:** public API v1 with API key auth, rate limiting, PagerDuty, and Teams
Features
- **performance:** add response time percentiles, Apdex scoring, and per-region breakdown
Bug Fixes
- **sla:** resolve 500 error on monthly SLA endpoint for monitors without incidents
Bug Fixes
- **checks:** address code review security and reliability findings
Features
- **checks:** add advanced monitoring — keywords, API, TCP/UDP, multi-step
Features
- **status-pages:** add public status pages on customer subdomains
Bug Fixes
- **auth:** clear stale cookies from old domain on login and logout
Features
- **sla:** add monthly SLA tracking with uptime and downtime metrics
Features
- **maintenance:** add maintenance windows with alert suppression
Features
- **incidents:** add incident management with timeline, ack, and post-mortem
Features
- **frontend:** add guided onboarding flow on dashboard
Features
- **auth:** add email verification on registration
Features
- **checker:** add verification retry on check failure
Features
- **dashboard:** redesign overview with status banner and monitor list
- **dashboard:** redesign overview with status banner and monitor list
Bug Fixes
- **auth:** set COOKIE_DOMAIN to .vartio.dev for cross-subdomain cookies
Features
- **checks:** show detailed error info in check results
- **checks:** show detailed error info in check results
- **ci:** use semver image tags instead of latest
Bug Fixes
- **k8s:** add imagePullPolicy Always for latest tag deployments
Bug Fixes
- **auth:** prevent 401 redirect to login on public pages
Bug Fixes
- **ci:** use GHCR_TOKEN PAT for container registry push
Bug Fixes
- **ci:** retrigger Docker builds after GitHub App packages permission update
Bug Fixes
- **ci:** add fail-fast false to Docker build matrix
Bug Fixes
- **ci:** capture semantic-release version output for Docker build trigger
Bug Fixes
- **ci:** disable semantic-release PR/issue comments
Bug Fixes
- **api:** align CheckResult and UpdateMonitorRequest fields with backend
- **api:** align frontend types with backend response fields and add monitor stats/uptime endpoints
- **brand:** use vartio.dev as primary domain instead of vartio.io
- **ci:** use internal ARM64 runner instead of GitHub-hosted runners
- **frontend:** pass NEXT_PUBLIC_API_URL as Docker build arg
- **frontend:** rebrand MonitorHQ to Vartio across all pages
- **frontend:** show user-friendly error when API is unreachable
- **frontend:** use static date in legal pages to prevent hydration mismatch
- **k8s:** add imagePullSecrets for GHCR private registry access
- **k8s:** add numeric runAsUser for Go binary containers
- **k8s:** correct GHCR image path to kalle-works org
- **qa:** rebrand to Vartio, fix API URL build, add legal pages
Features
- add P1 features - status pages UI, alerts UI, ping monitor, password reset, Prometheus metrics
- add Sprint 3 - tests, settings page, monitor edit, documentation
- add Sprint 4 delight features - auto-detect, badges, webhook test, SSE
- **auth:** migrate to HTTP-only cookie auth with CSRF protection
- **brand:** rebrand from MonitorHQ to Vartio
- **db:** add schema refactoring migration for production readiness
- **design:** add design system with WCAG AA compliance
- **design:** add design system with WCAG AA compliance
- **email:** replace Resend with EuroMail for EU-native email delivery
- **frontend:** add privacy, terms, and status pages with working footer links
- **frontend:** apply Vartio design system across all pages
- **frontend:** apply Vartio design system across all pages, closes [#0d9488](https://github.com/kalle-works/vartio.dev/issues/0d9488) [#0d706a](https://github.com/kalle-works/vartio.dev/issues/0d706a) [#0f1729](https://github.com/kalle-works/vartio.dev/issues/0f1729)
- **frontend:** configure ESLint with Next.js recommended rules, closes [#1](https://github.com/kalle-works/vartio.dev/issues/1)
- **frontend:** configure ESLint with Next.js recommended rules, closes [#1](https://github.com/kalle-works/vartio.dev/issues/1)
- **frontend:** extract shared components and decompose monitor detail page
- **frontend:** make API URL runtime-configurable via server-side injection, closes [#3](https://github.com/kalle-works/vartio.dev/issues/3)
- **frontend:** make API URL runtime-configurable via server-side injection, closes [#3](https://github.com/kalle-works/vartio.dev/issues/3)
- **infra:** add Kubernetes deployment manifests, CI/CD, and Dockerfiles
- initialize EU-first monitoring SaaS MVP
- **k8s:** switch to vartio.dev domain with www redirect
- **security:** add P0 hardening - rate limiting, SSRF protection, NATS alerter, N+1 fix
- **store:** add DBTX transactions, cursor pagination, soft deletes, uptime cache