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

@lowlighter/vercel-deno

v2.7.12

Published

Vercel-deno runtime

Readme

The Deno runtime running on Vercel.

Live demo.

✨ Features

  • Supports deno 2.x+
    • Supports local development with vercel dev
  • Seamless integration using deno standards:
  • Advanced configuration, including:
    • Deno version selection
    • Permission management
    • Environment variables
    • Assets pre-caching

❓ Frequently Asked Questions

What's the difference with vercel-community/deno?

This is a full rewrite of the unmaintained vercel-community/deno (see #159).

This implementation has been designed from the ground up to be more aligned with Deno standards. For instance, you can directly reuse code written for deno serve and handlers for Deno.serve, and it also natively supports deno shebangs, which minimizes the friction required to deploy existing Deno code to Vercel.

It also provides better support for advanced use-cases, such as specifying environment variables, pre-caching assets, or selecting the Deno version to use through pragmas, and the permissions management system is fully supported.

Why use Vercel instead of Deno Deploy?

While Deno Deploy is a great platform, Vercel free tier offers more generous limits for serverless applications.

If you are deploying a fully-fledged Deno application (which requires to be constantly running, requires storage or database, writable filesystem, etc.), Deno Deploy is likely a better fit.

If you are deploying a simple Deno application with simple functions and callbacks, then Vercel with this runtime is a great choice. Note that the free tier of Vercel limits the number of serverless function to 12.

📓 Usage

Add the following to your vercel.json file:

// vercel.json
{
  "functions": {
    "api/**/*.ts": { "runtime": "@lowlighter/[email protected]" }
  }
}

A serverless function may be defined using an export default of one of the following types:

See /api for examples.

🪛 Advanced Usage

Shebangs

Runtime options and permissions may be specified using deno shebangs.

#!/usr/bin/env -S deno run --allow-sys
export default async function serve() {
  return new Response(Deno.osRelease())
}

[!IMPORTANT] The parser only supports shebangs that use deno run or deno serve.

[!NOTE] The --allow-read permission for the function's source file is always implicitly granted as it is required to load and run the handler. Under the hood, the handler is run within a WebWorker with the provided permissions.

Pragma

Specific instructions may be provided to the runtime using the //@vercel: pragma (which must be placed at the top of the file or immediately after the shebang).

| Option | Alias | Description | Multiple | Dev | Default | Example | | ----------- | ----- | ---------------------------------------- | -------- | --- | -------- | ------------ | | --version | -v | Specify the Deno version to use. | | N¹ | latest | -v 2.7.12 | | --env | -e | Specify environment variables to set. | Y | Y | | -e FOO=bar | | --include | -i | Specify additional modules to pre-cache. | Y | N² | | -i /assets |

  • ¹: Dev server always uses the currently installed Deno version.
  • ²: Dev server always has access to the filesystem and not a subset of it.
//@vercel: -e FOO=bar
export default async function serve() {
  return new Response(Deno.env.get("FOO"))
}

Deno in build steps

The Deno runtime is only made available by Vercel at runtime during serverless function execution.

If you wish to use it in build steps, you can use the following commands in your vercel.json:

// vercel.json
{
  "installCommand": "curl -fsSL https://deno.land/install.sh | sh",
  "buildCommand": "([ -d /vercel ] && /vercel/.deno/bin/deno task build) || true"
}

📜 License

MIT License © 2025 Lowlighter.