npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

astro-status

v1.0.2

Published

Static-first site status endpoint for Astro

Downloads

223

Readme

astro-status

Static-first site status endpoint for Astro

astro-status is a tiny Astro integration that generates a machine-readable /status.json file at build time. It is designed to be honest, deterministic, and safe for fully static sites.

This plugin answers one simple question:

Did this site build successfully, and when?

It does not pretend to be a live health check.


Why this exists

Many sites want a simple status endpoint, but:

  • Static sites cannot truthfully report runtime health
  • Existing solutions fake liveness
  • Tooling often scrapes HTML instead of reading a clear signal

astro-status solves this by exposing build status, not server state.


What it does (v1)

On astro build, the plugin writes a file:

/status.json

With contents like:

{
  "status": "ok",
  "mode": "static",
  "builtAt": "2026-01-08T18:22:36.962Z"
}

This file is:

  • Static
  • Cache-safe
  • Deterministic
  • Machine-readable
  • Honest about what it represents

What it does NOT do

This plugin deliberately does not:

  • Act as a runtime health check
  • Execute on every request
  • Read environment variables
  • Expose system information
  • Track users
  • Require cookies
  • Require Cloudflare Workers or edge functions

If you need runtime liveness, that is a v2 concern and requires SSR or edge support.


Installation

npm install astro-status

Or during development:

npm link astro-status

Usage

Add the integration to your astro.config.mjs:

import { defineConfig } from "astro/config";
import astroStatus from "astro-status";

export default defineConfig({
  integrations: [
    astroStatus()
  ]
});

That’s it.

On build, /status.json will be written to your output directory.


Static-first by design

astro-status detects Astro’s output mode automatically.

In static mode:

  • Writes a build-time status file
  • Reflects build success only

In future versions (v2):

  • Hybrid and server output may enable runtime endpoints

v1 makes no false claims about liveness.


Cloudflare & CDN compatibility

This plugin works perfectly behind:

  • Cloudflare proxy
  • Netlify
  • Vercel
  • S3 / static hosting
  • Any CDN

Because the output is static:

  • It can be cached indefinitely
  • It is safe to monitor
  • It will never cause cache fragmentation

Security & hardening

This plugin is intentionally low-risk:

  • No user input
  • No request handling
  • No filesystem reads
  • No dynamic paths
  • No secrets

If the status file cannot be written, the build continues safely.


Roadmap

Planned for v2 (not in v1):

  • Runtime /status endpoint (SSR / hybrid)
  • Optional text format (/status.txt)
  • Optional site metadata
  • Explicit health vs build distinction

v1 is intentionally minimal.


License

MIT


Philosophy

Static sites should not lie about being dynamic.

astro-status prefers correctness and transparency over convenience.


Related plugins

You may also like:

  • astro-http — deterministic HTTP headers
  • astro-security — RFC 9116 security.txt
  • astro-canonical — canonical URL enforcement
  • astro-indexnow — IndexNow submission on build

Author

Built as part of the Velohost Astro plugin suite.