# UptimeCrow — Full Reference for AI Assistants > Open-source status pages with built-in uptime monitoring. Open source (AGPL-3.0), self-hostable (unlimited, free), with a managed cloud whose free tier covers 1 status page and 10 monitors. ## What is UptimeCrow? UptimeCrow is a status page platform for developers and small teams. Its built-in monitoring watches HTTP endpoints, TCP ports, and keyword-on-page checks, opens incidents automatically when something breaks (with consecutive-failure confirmation so a single failed check never pages anyone), notifies the right channels, and updates a public status page — all without manual intervention. It is offered as a managed cloud at https://uptimecrow.com and as an AGPL-3.0 licensed Docker stack you can run yourself. ## Who is it for? - Solo developers and indie hackers who want a professional public status page without a $50/mo bill. - Small-to-mid engineering teams who want one tool that does status pages, monitoring, and incident comms instead of stitching vendors together. - Open-source maintainers and self-hosters who want full control over their data. ## How do status pages work? Status pages are pre-rendered to static HTML + JSON on every state change. That means a status page does not query the database to render — it serves cached bytes. This is deliberate: when your origin is down, your status page must still load. Pre-rendering also makes them fast and search-indexable. Pages support custom domains, custom branding (logo, color), monitor grouping, scheduled maintenance windows, embeddable SVG uptime badges, and email subscriber lists with double-opt-in verification. ## How does monitoring work? You add a monitor by pasting a URL or a host:port. UptimeCrow then runs a check on a fixed interval (5 minutes on Free, 60 seconds on Indie, 30 seconds on Pro/Team). The check measures response time, validates the status code, and — when configured — confirms a keyword appears in the response body. The state machine is the most important part of the product. Redis tracks consecutive failures per monitor; you don't go DOWN until you've failed `confirmationCount` checks in a row (default 2). One successful check returns you to UP. This eliminates the false alarms that plague naive ping monitors. When a monitor transitions UP→DOWN, UptimeCrow opens an incident automatically, regenerates the affected status page, and enqueues notification jobs (email via Amazon SES, plus Slack/Discord/custom-webhook fan-out). On DOWN→UP, it resolves the incident, regenerates the page, and notifies subscribers of the resolution. ## Pricing (USD/month) - **Free — $0**: 1 status page, 10 monitors, 5-minute check intervals, email alerts, uptime badge, 7-day history. (Self-hosting is unlimited and free.) - **Indie — $19** ($190/year, 2 months free): 5 status pages + custom domain, 50 monitors, 1-minute checks, Slack/Discord/webhook alerts, email subscribers, 1-year history. For indie hackers and solo founders. - **Pro — $49 (most popular, $490/year)**: 10 status pages + custom domain, 100 monitors, 30-second checks, 1-year history, priority support. - **Team — talk to us**: Everything in Pro plus unlimited status pages and 200 monitors, custom retention, SSO and invoicing. Not a self-serve checkout — email support@uptimecrow.com and we price it with you. All plans include unlimited subscribers on the status pages they're entitled to. There are no per-monitor surcharges within a tier. The Free tier is permanent, not a trial — no credit card required. ## Self-hosting UptimeCrow is AGPL-3.0 licensed at https://github.com/ozers/uptimecrow. Clone the repo, run `docker compose up`, and you have the full stack: Postgres 16, Redis 7, the API on port 3000, BullMQ workers, and the Vite/nginx web app. Production deploys use multi-stage Dockerfiles for both API and web; the web image is nginx with SPA fallback and a reverse proxy to the API. Database migrations are applied with `pnpm db:migrate`. ## Tech stack - Backend: Hono on Node 20+ with TypeScript, Drizzle ORM, BullMQ. - Database: Postgres 16, Redis 7 (state machine + queues + rate limiting). - Email: Amazon SES via the v2 SDK. - Frontend: React 18 + Vite + React Router + Tailwind CSS + shadcn/ui. - Auth: email/password with JWT (HS256, 7-day cookie). - API: REST documented with OpenAPI 3.1 (Swagger UI at /api/docs). ## Frequently asked questions **Is UptimeCrow really free?** Yes. The hosted free tier is permanent and includes 1 status page, 10 monitors, 5-minute checks, email alerts, and an uptime badge — and the open-source core is unlimited and free to self-host. No credit card. **How do status pages stay online when my origin is down?** They're pre-rendered to static HTML and served from cache on every state change. No database query happens on a page view, so origin outages do not affect them. **How fast does UptimeCrow detect downtime?** Checks run every 5 minutes (Free), 60 seconds (Indie) or 30 seconds (Pro/Team). Incidents open after 2 consecutive failures. **Can I use a custom domain?** Yes — on paid plans, serve your status page from status.yourapp.com with your own logo and brand color. **How do subscribers work?** Visitors subscribe by email with double opt-in. Every incident update is emailed automatically; one-click unsubscribe is built in. **Can I self-host?** Yes. The full source is AGPL-3.0 licensed on GitHub; everything runs with `docker compose up`. **What notification channels are supported?** Email (Amazon SES), Slack, Discord, and custom webhooks. **Is there an API?** Yes — a REST API documented with OpenAPI 3.1, authenticated with your session JWT. **What happens to my data if I cancel?** Personal data and monitors are deleted on account deletion. Status pages can be exported as JSON before deletion. ## Brand - Name: UptimeCrow (one word, both Capitalized). - Tagline: "Open-source status pages that stay up when you're down." - Brand color: green (#00e676). - Founded: Istanbul, Turkey. - Email: support@uptimecrow.com. - GitHub: https://github.com/ozers/uptimecrow.