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-static-headers

v1.0.1

Published

Astro integration that captures headers and redirects during prerender and writes platform-specific config (Netlify, Cloudflare, Vercel).

Readme

astro-static-headers 📡

An Astro integration that captures headers and redirects from statically-generated routes during the build and generates the appropriate configuration files for your deployment platform.

Why Astro Static Headers?

Astro generates fully static sites by default, but it doesn’t include a built-in way to define custom HTTP headers or network-level redirects for your pages. This makes it challenging to add things like caching rules, security headers, or server-side redirects without manually editing configuration files for your hosting platform.

With Astro Static Headers, you can define headers and redirects in your pages using Astro.response.headers.set and Astro.redirect, just as as you would in server output mode. During the build, the plugin automatically captures these and generates the appropriate configuration for your adapter (currently supports @astrojs/netlify, @astrojs/cloudflare, and @astrojs/vercel).

This keeps your headers and redirects in your code, ensuring consistent builds, faster network-level redirects, and improved performance and SEO - all without the need for platform-specific configuration.

Installation

npx astro add astro-static-headers

Manual Install

Install the astro-static-headers using your package manager.

npm install astro-static-headers

Add the integration to your astro.config.mjs:

import { defineConfig } from 'astro/config';
import staticHeaders from 'astro-static-headers';

export default defineConfig({
  // ...
  integrations: [staticHeaders()],
});

Usage

astro-static-headers automatically detects headers and redirects for statically-generated routes during the build process. Simply set them the same way you would for on-demand rendered routes.

Setting Headers for Static Astro Pages

Use Astro.response.headers.set() in your pages to add custom headers:

---
Astro.response.headers.set('Cache-Control', 'public, max-age=3600');
---

<html>
  <!-- Page here... -->
</html>

Setting Headers for Static Astro Endpoints

Return a headers object in your endpoints to add custom headers:

export async function GET() {
  return new Response(`{ "message": "Hello, World!" }`, {
    headers: {
      'Content-Type': 'application/json',
    },
  });
}

Creating Redirects for Astro Static Pages

Use Astro.redirect() in your pages to create redirects:

---
return Astro.redirect('/new-location', 301);
---

Creating Redirects for Astro Static Endpoints

Use context.redirect() in your endpoints to create redirects:

export async function GET({ redirect }) {
  return redirect('/new-location', 302);
}