Status page generator
Logdash generates a status page from the uptime monitors you already run: publish the hosted page from the dashboard, or put one in your own code with the Next.js starter or a single shadcn command.
A generator that only draws the page leaves the hard part to you. Something still has to call your API every minute and decide it is down, and until you wire that up the page says operational through every outage. Logdash starts from the other end. Every HTTP monitor records the status code and response time of each check, and a status page is just the list of monitors you choose to make public. The page cannot say green while the check says red, because they are the same data.
Three ways to generate the page
- Hosted. Switch on a public page in the dashboard and it lives at
logdash.io/d/<id>straight away. One status page on the free plan, 5 on Builder at $9 a month, 15 on Pro at $15 a month. Your own domain on the hosted page needs Pro. - Next.js starter. A small app with one page and one component, deployed to Vercel with one click. It renders on the server and revalidates every 60 seconds, so the page arrives complete in the HTML and runs on any domain you point at Vercel, on any Logdash plan.
- Component. One shadcn command copies a single file into the React or Svelte app you already have. It uses Tailwind and the shadcn CSS variables, so it takes your theme, and its only dependency is
@logdash/status.
Status page builder in your own code
# The Next.js starter: server-rendered, revalidates every 60 seconds
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
# Or add the component to an app you already have
npx shadcn add https://logdash.io/r/react/status-page.json
npx shadcn-svelte add https://logdash.io/r/svelte/status-page.jsonBoth give you the same page: an overall status banner, a row per monitor with its uptime, and 90 days of daily bars with a tooltip. The data comes from one public endpoint, GET https://api.logdash.io/v1/status_pages/:id, with no API key and a 60-second cache. Statuses are computed on the server, so every copy of the page agrees: a monitor is down when its latest check failed and degraded when any of its last 10 did. If the API cannot be reached, the page keeps showing the last data it had instead of going blank. For developers this is a headless status page: the data is ours, the markup is yours.
Wherever you generate it, host it apart from your app. People open a status page when your app is down, and a page that shares servers, deploys or DNS with the app goes down with it.
From monitor to public page
- Add the monitor Paste your health URL into a new service. It is checked every 5 minutes on the free plan, every minute on Builder and every 15 seconds on Pro, and the first check runs straight away.
- Publish the page Add the monitor to a status page and publish it. Share the hosted URL, or copy the id from the Build your own section into LOGDASH_STATUS_PAGE_ID for the starter.
- Break it on purpose Connect a Telegram channel, then make the health endpoint return 503. The next check flips the monitor to down, the page follows within a few minutes, and a Telegram alert with the status code lands on your phone.
Logdash vs Instatus
| Feature | Logdash | Instatus |
|---|---|---|
| Monitors on the free plan | 5 services, checked every 5 minutes | 15 monitors, checked every 2 minutes |
| Status page on your own domain | Hosted page on Pro at $15 a month, starter or component on any plan | Paid plans only, from Pro |
| Page in your own code | Next.js starter, shadcn component, typed client | Public JSON, you write the page |
| Incident updates and maintenance | None, the page shows the checks | Incident posts, templates, scheduled maintenance |
| Telling your customers | Nothing is sent, they open the page | 200 email subscribers free, 5,000 on Pro |
| Alerts to you | Telegram and webhook | Email on free, SMS from Pro |
When Instatus is the better pick
- You need to write incident updates in words and schedule maintenance windows. Logdash has no incident posts at all, only check results.
- Customers expect to subscribe and get an email when something breaks. Logdash alerts you, never them.
- You want more than 5 monitors without paying. Instatus gives 15 on its free plan.