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 🙏

© 2025 – Pkg Stats / Ryan Hefner

issue-status

v0.2.1

Published

A flexible, modern and blazingly fast ☄️ status page

Readme

Issue Status

issue-status

A flexible, modern and blazingly fast ☄️ status page.

  • 💗 System health
  • 📝 Incident history, scheduled maintenance and postmortems
  • ⌨️ Pre-built templates
  • 🛜 Hosted on Cloudflare, GitHub Pages and more
  • ✍️ Markdown support

Special thanks to my sponsors for their contributions

Usage

# Scaffhold your status page repository
pnpm create issue-status

# Start development server
pnpm dev

# Build the static status page using the configuration provided with output `dist`
pnpm build

This status page can be deployed to any static hosting provider such as GitHub Pages, GitLab Pages, Cloudflare, Netlify, Vercel, Surge, Azure Static Web Apps, Render, Flightcontrol, Kinsta, xmit and more.

For deployment options and guides, see the Vite static deployment documentation.

Configuration

pnpm create issue-status will scaffhold a new status page repository and guide you through the configuration.

You can make further configurations to the issue-status.config.ts file with the below syntax:

import { defineConfig } from "issue-status";
import { github, static } from "issue-status/providers";

export default defineConfig({
  name: "My Status Page",
  description: "Status page for my services",

  provider: yourProvider({...})
});

Providers

The data fetching is separated into so called providers. This allows you to swap out the underlying data source that powers the frontend.

[!NOTE]
Contributions: reach out if you've created a custom provider which may have value to others :)

GitHub Provider

This provider utilises GitHub Issues with specific labels as the data source for the status page

import { github } from "issue-status/providers";

export default defineConfig({
  ...
  provider: github({
    owner: "your-github-username",
    repo: "your-repo-name",
  }),
});

Components

Labels: issue status, component and one of operational, degraded performance, partial outage or major outage

You can create subcomponents by naming issues with the following syntax:

  • CDN
  • CDN > Oceania
  • CDN > Southeast Asia

Incidents

Labels: issue status, incident and optionally maintenance which will mark the incident as "Scheduled" instead of "Active"

Limitations

  • The provider respects GitHub's unauthenticated requests API rate limit and therefore responses are cached in the browser for 10 minutes.

GitLab Provider

This provider utilises GitLab Issues with specific labels as the data source for the status page

import { gitlab } from "issue-status/providers";

export default defineConfig({
  ...
  provider: gitlab({
    projectId: "your-project-id",
    host: "https://gitlab.com", // optional, defaults to gitlab.com
  }),
});

Components

Labels: issue status, component and one of operational, degraded performance, partial outage or major outage

You can create subcomponents by naming issues with the following syntax:

  • CDN
  • CDN > Oceania
  • CDN > Southeast Asia

Incidents

Labels: issue status, incident and optionally maintenance which will mark the incident as "Scheduled" instead of "Active"

Limitations

  • The provider respects GitLab's API rate limits and therefore responses are cached in the browser for 30 seconds.

Static Provider

A provider that uses static data, primarily useful for testing and development.

import { staticProvider } from "issue-status/providers";

export default defineConfig({
  provider: staticProvider({
    components: [
      {
        id: "api",
        name: "API",
        status: "operational",
        children: [
          {
            id: "auth",
            name: "Authentication",
            status: "operational",
          },
        ],
      },
      {
        id: "database",
        name: "Database",
        status: "degradedPerformance",
      },
    ],
    incidents: [
      {
        id: "1",
        title: "API Response Times",
        description:
          "We are investigating slower than normal API response times.",
        createdAt: "2023-01-01T00:00:00Z",
        scheduled: false,
        active: true,
      },
    ],
    historicalIncidents: [
      {
        id: "2",
        title: "Database Maintenance",
        description: "Scheduled database maintenance completed successfully.",
        createdAt: "2023-01-01T00:00:00Z",
        scheduled: true,
        active: false,
      },
    ],
  }),
});

Templates

Pre-built incident templates are included to quickly provide updates on an incident. These templates are available when creating a GitHub Issue.

You may modify templates to suit your needs.

Demo

View demo now!

This demo is hosted on GitHub Pages and using the GitHub provider.