Changelog
What's new in Vartio. Every feature, fix, and improvement since launch.
Bug Fixes
- **landing:** status preview component text color must follow its own status
Features
- **landing:** redesign hero with live product visuals
Bug Fixes
- **browser-monitoring:** close click-triggered SSRF bypass, fix step-result FK, cap resource use, closes [#165](https://github.com/kalle-works/vartio.dev/issues/165)
- **browser-monitoring:** close SSRF hole in the navigate step
- **browser-monitoring:** fix settle-window logic, widen redaction, fix omitempty
- **ci:** switch backend-vuln to binary-mode scanning
Features
- **api:** accept browser_steps on monitor create/update
- **browser-runner:** add synthetic monitoring browser execution service
- **checker:** wire MonitorTypeBrowser dispatch to browser-runner
- **deploy:** add browser-runner Dockerfile stage and k8s manifest
- **monitors:** add browser_steps schema and model for synthetic monitoring
Features
- **monitors:** add download link for uptime certificate
- **monitors:** downloadable uptime certificate (SVG)
Bug Fixes
- **opamp:** push real collector-config YAML per monitor type; add deploy templates (Increment 2c)
- **opamp:** reconcile monitor type on changes, not just resolution changes
Bug Fixes
- **opamp:** address security review findings on the OpAMP server
Features
- **config:** add METRICS_DEFAULT_RESOLUTION
- **monitors:** wire OpAMP server into router and update handler
- **opamp:** add OpAMP server for scoped metric-resolution push
Bug Fixes
- **test:** randomize the metrics-resolution integration test's org slug
Features
- **cli:** add --metrics-resolution to monitors create
- **monitors:** add metrics_resolution_seconds data model
- **monitors:** validate and expose metrics_resolution_seconds via API
- **provider:** add metrics_resolution attribute to vartio_monitor
Bug Fixes
- **cli:** avoid log.Fatal after a pending defer in metricsbackfill
- **clickhouse:** scale the tiered cold-move threshold to the configured retention
Features
- **clickhouse:** per-monitor metric rollup tiers with configurable retention
- **clickhouse:** tier-aware metric reads and rollup backfill
Features
- **cli:** monitors commands, version, and table/json renderers
- **cli:** scaffold vartio CLI module with cobra root and config
- **cli:** typed monitors API client with problem+json error parsing
Bug Fixes
- **terraform:** persist state on partial create/update failure and allow clearing labels
Features
- **terraform:** add vartio API client for monitors
- **terraform:** initial provider with vartio_monitor resource and data source
Bug Fixes
- **mobilecrash:** enqueue crash alerts in the record transaction (outbox follow-up)
Bug Fixes
- **alerter:** address outbox review — resolve-side + fan-out + evaluator atomicity
- **alerter:** fire-once delivery + no-monitor dedup (outbox review round 2)
- **alerter:** preserve anomaly record + bound outbox re-delivery (outbox review round 3)
Features
- **alerter:** durable alert outbox, atomic enqueue-in-transaction (P0/ARCH-04), closes [#138](https://github.com/kalle-works/vartio.dev/issues/138)
Bug Fixes
- **alerter:** dedupe webhook SSRF blocklist onto netguard (SEC-08)
Bug Fixes
- **alerter:** self-heal incident creation instead of latching (BE-01/latch)
- **checker:** bound subscriber-webhook client + guard public-sweep overlap
- **checker:** SSRF guard on TCP/UDP monitor targets (SEC-04)
- **docs:** correct monitor-type list on in-app AI-agents page (DOC-17)
- **middleware:** only skip CSRF for genuine Bearer auth (SEC-10)
- **monitors:** derive 30-day uptime from the daily rollup, not the lifetime cache
- **status-pages:** bind unlock token to the password version (SEC-07)
Features
- **checker:** per-monitor scheduling via next_run_at claim (ARCH-01/02)
- **checker:** runtime check_results partition maintenance + retention
Features
- **mobile:** retention for crash-signature baselines
Bug Fixes
- **mobile:** address Phase 4 review — fingerprint, iOS SLI, batched writes
Features
- **mobile:** crash-free-sessions SLO
- **mobile:** new-crash-in-release alert sweep
- **mobile:** org-scoped Ask-Vartio tools for crashes, releases, performance
Bug Fixes
- **mobile:** scope symbolication caches per monitor + cap dSYM decompression
Features
- **mobile:** /mobile release-health dashboard page
- **mobile:** crash list with read-time R8 symbolication
- **mobile:** crash-free release health reader + API for mobile monitors
- **mobile:** iOS dSYM address symbolication at read time
- **mobile:** mapping upload endpoint POST /otlp/{id}/mappings
- **mobile:** R8 retracer + build-mapping store for symbolication
- **monitors:** add mobile monitor type for native RUM ingest
Bug Fixes
- **aichat:** resolve pre-existing golangci-lint findings
- **api:** close authorization gaps on on-call, billing and monitor store
- **ci:** pass VERSION env to manifest-bump commit step
- **db:** extend check_results partitions through 2027
- **notifications:** HTML-escape user values in payment-failed email
- **status-pages:** reject angle brackets in custom_css branding
- **status-pages:** reject non-string custom_css instead of passing it through
Bug Fixes
- **ai:** use claude-sonnet-5, the deprecated sonnet-4 snapshot is retired
Bug Fixes
- **frontend:** allow unsafe-eval in the dev CSP so HMR works
Features
- **ai:** incident root-cause analysis + auto-postmortem
Features
- **slo:** burn-rate alerting — notify when an SLO burns error budget fast
Features
- **apm:** /rum dashboard + vartio-rum browser SDK
- **apm:** RUM ingest + Core Web Vitals / JS error reads
Features
- **apm:** /profiling flamegraph UI
- **apm:** continuous profiling — pprof ingest + flamegraph
Bug Fixes
- **apm:** harden Ask Vartio per adversarial review
Features
- **apm:** Ask Vartio — org-scoped read-only LLM tool-use loop
- **apm:** Ask Vartio UI — natural-language telemetry query
Features
- **apm:** /slos dashboard — error budgets + burn-rate status
- **apm:** SLO definitions + SLI/error-budget/burn-rate engine
Features
- **apm:** error/exception tracking with fingerprinted groups + triage
Features
- **apm:** LLM/GenAI observability flagship (per-model cost, tokens, latency)
- **apm:** service dependency map from peer.service edges
Features
- **apm:** /traces distributed-tracing explorer UI
- **apm:** distributed tracing read layer (TraceByID, SearchTraces)
Features
- **apm:** capture full OTLP span richness (events, exceptions, gen_ai, semconv)
Bug Fixes
- **k8s:** harden ClickHouse with a dedicated password-protected user
Bug Fixes
- **k8s:** bump self-monitoring collector to 0.128.0
- **k8s:** force fresh pull of the collector image (stale wrong-arch cache)
Bug Fixes
- **k8s:** pin self-monitoring collector to amd64 nodes
Bug Fixes
- **k8s:** allow ClickHouse default user from the cluster network
Bug Fixes
- **k8s:** raise ClickHouse to 3Gi now that tenant limits allow it
Bug Fixes
- **k8s:** revert ClickHouse to 1Gi — platform tenant limits cap it
Bug Fixes
- **k8s:** raise ClickHouse memory to 3Gi so it stops OOM-crashing
Bug Fixes
- **k8s:** size ClickHouse to fit the vartio namespace limits
Bug Fixes
- **release:** restore GHCR PAT auth with a valid write:packages token
Bug Fixes
- **release:** authenticate GHCR with GITHUB_TOKEN instead of a PAT
Bug Fixes
- **telemetry:** harden ClickHouse cutover from pre-merge review
Features
- **telemetry:** ClickHouse read path via TelemetryReader interface
- **telemetry:** ClickHouse store + OTLP wide-event schema (dark), closes [hi#volume](https://github.com/hi/issues/volume)
- **telemetry:** ClickHouse write path behind TELEMETRY_BACKEND flag
- **telemetry:** cut production over to ClickHouse telemetry store
Bug Fixes
- **intel:** bound RED query + covering index so Intelligence scales ([#117](https://github.com/kalle-works/vartio.dev/issues/117))
Features
- **otel:** OpenTelemetry Demo demo-account integration + gzip/413 OTLP ingest fixes
Features
- **checker:** consensus status, region verify-on-fail, region health
Bug Fixes
- **deps:** bump pgx to v5.9.2 to resolve GO-2026-5004 ([#114](https://github.com/kalle-works/vartio.dev/issues/114))
Features
- **api:** serve curl|sh installer for external region checkers ([#113](https://github.com/kalle-works/vartio.dev/issues/113))
Features
- **checker:** external API-based checker regions ([#112](https://github.com/kalle-works/vartio.dev/issues/112))
Bug Fixes
- **ci:** make CI green — bump Go to 1.25.11, clear lint findings
Bug Fixes
- **intelligence:** address pre-merge review findings
Features
- **dogfooding:** instrument API + checker with OpenTelemetry tracing
- **dogfooding:** self-monitoring OTel collector for Vartio's own cluster
- **intelligence:** application intelligence dashboard
- **intelligence:** per-service RED metrics + AI health narratives from OTLP
- **intelligence:** proactive anomaly detection + alerting on service RED metrics
- **monitoring:** OTLP agent telemetry storage foundation
- **monitoring:** OTLP collector configs, k8s manifests, Helm + docs
- **monitoring:** OTLP ingest for metrics, traces, and logs
- **monitoring:** server/kubernetes monitor CRUD + telemetry read APIs
- **monitoring:** server/kubernetes monitor UI — create flow, dashboards, thresholds
Performance Improvements
- **monitoring:** async batched OTLP ingest + per-monitor rate limiting, closes [hi#volume](https://github.com/hi/issues/volume)
Bug Fixes
- **status-pages:** don't rewrite health probes / internal hosts in middleware
Bug Fixes
- **deploy:** roll api and frontend in place within the namespace memory quota
Bug Fixes
- **alerts:** repair corrupted JSX that broke the frontend build
- **status-pages:** address pre-landing review findings
Features
- **status-pages:** render custom domains with the full React status page
Bug Fixes
- **alerts:** repair corrupted JSX that broke the frontend build
Features
- **status-pages:** serve public page uptime from daily rollup + short cache
Bug Fixes
- **migrations:** renumber status_page_subscriber_channels migration from 000047 to 000048
Features
- **status-pages:** Slack webhook subscriptions for status page alerts
Bug Fixes
- **migrations:** renumber user_notification_prefs migration from 000046 to 000047
Features
- **incidents:** CSV export endpoint and Export CSV button
- **incidents:** MTTR and MTTA analytics endpoint and dashboard widget
- **monitors:** downloadable uptime report (HTML, SLA compliance, incidents table)
- **notifications:** per-user email alert preferences with quiet hours
Bug Fixes
- **migrations:** renumber consensus threshold migration from 000042 to 000046
Features
- **monitors:** multi-region consensus threshold
Features
- **alerts:** custom message templates for alert channels
Features
- **alerts:** escalation policies for alert channels
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