Free status page with custom domain
The hosted Logdash status page gets your own domain only on the $15 Pro plan, but the status page API is free on every plan, so a page you deploy yourself from the Next.js starter can run on status.yourdomain.com for nothing.
Straight answer first. On Logdash, a custom domain for the hosted page is a Pro feature at $15 a month. The free Hobby plan publishes the page at logdash.io/d/<id>. If a hosted page on your own domain at zero cost is the hard requirement, look at Better Stack: it says its free status page can run on your subdomain.
There is a second way that costs nothing. Every published Logdash status page is also public JSON, on every plan, with no key and requests allowed from any origin. A page you build on that API runs on whatever domain you point at it. The data still comes from your Logdash monitors; only the rendering moves to you.
Free status page custom domain with the Next.js starter
The starter in templates/status-page-next is a complete status page: one Next.js route, one component, Tailwind. It renders on the server, revalidates every 60 seconds and keeps serving the last good page when the API cannot be reached. It is MIT licensed, so change anything you like.
npx create-next-app@latest status-page \
--example https://github.com/logdash-io/logdash.io \
--example-path templates/status-page-next
cd status-page
cp .env.example .env.local
# set LOGDASH_STATUS_PAGE_ID in .env.local, then
npm run dev Then deploy it and add the domain on your host. The starter README has a Deploy with Vercel button that asks for LOGDASH_STATUS_PAGE_ID, and the host shows you the CNAME record to add for status.yourdomain.com. The only thing you pay for is the domain, which you already own.
The catch with free hosting
Free hosting has terms of its own. Vercel Hobby includes custom domains but is limited to non-commercial, personal use, and a status page for a paying product counts as commercial. The Netlify free plan allows commercial use and custom domains within 300 credits a month, which a page that rarely redeploys should stay inside. Either way, host it apart from your app. A status page on the same servers goes down with the thing it reports on.
Status page custom domain free options compared
- Instatus: free page on an Instatus subdomain only. Your own domain starts at Pro, $20 a month or $15 billed yearly.
- Atlassian Statuspage: no custom domain on the free plan. Hobby, the first plan with one, is $29 a month.
- Uptime Kuma: free on any domain, on a server you run and keep online yourself.
Your own domain: Logdash vs Better Stack
| Feature | Logdash | Better Stack |
|---|---|---|
| Hosted page on your domain | Pro, $15 a month | Free plan, on a subdomain |
| Own build on your domain | Free: public API, MIT client, component and starter | Public JSON, no official client or component |
| Design control | All of it, the code is yours | Their layout, custom CSS is $15 a month per page |
| Work to set up | Deploy a Next.js app, add a CNAME | Type the domain, add a CNAME |
| Free monitors | 5, every 5 minutes | 10, every 3 minutes |
When Better Stack is the better pick
- You want a hosted page on your own domain for free and do not want to deploy anything.
- You need more than 5 monitors or checks faster than every 5 minutes without paying.
From monitor to your domain
- Publish the page in Logdash Add your monitors to a status page, publish it and copy its id from the Build your own section.
- Deploy the starter on your domain Deploy with LOGDASH_STATUS_PAGE_ID set, then point status.yourdomain.com at the host with the CNAME record it gives you.
- Take a monitor down Return a 503 from one health endpoint. The monitor flips to down on its next check, your page on your own domain shows the outage a few minutes later, and the Telegram alert reaches you before any visitor does.