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

nue-edgeserver

v0.1.0

Published

Edge first server development

Readme

Nueserver: Edge first development

Nueserver is an HTTP server built for edge deployment. Write code locally, deploy globally when ready.

Disclaimer Nueserver currently works for local development only. It's the foundation for Nue's upcoming backend vision. See the roadmap for details

What is edge first

Most web frameworks treat edge deployment as an afterthought. You develop with Node locally, then discover your code doesn't work at the edge. You build with traditional databases, then learn edge can't maintain connections.

Every Next.js developer knows this journey:

NPM everywhere - Your npm run dev spins up a Node.js server. Full runtime, any npm package, unlimited memory. You install packages freely: bcrypt, sharp, mongoose.

Database connections - You connect to Postgres or MySQL. Connection pooling handles load. Prisma makes queries elegant. Your .env.local has DATABASE_URL pointing to localhost.

Production reality - You deploy and things break. Replace bcrypt with Web Crypto? Swap sharp for browser-compatible alternatives? Abandon your ORM for raw SQL? Set up Postgres edge proxies?

The problem: you develop one way and deploy another. Your simple app turns complex. Nueserver flips this. Your development environment uses edge-compatible patterns from day one.

How it works

Nueserver provides a simple HTTP server with global route handlers. No classes, no imports, no server setup:

get('/api/users', async (c) => {
  const users = await c.env.users.getAll()
  return c.json(users)
})

post('/api/users', async (c) => {
  const data = await c.req.json()
  const user = await c.env.users.create(data)
  return c.json(user, 201)
})

use('/admin/*', async (c, next) => {
  const auth = c.req.header('authorization')
  if (!auth) return c.json({ error: 'Unauthorized' }, 401)
  await next()
})

CloudFlare headers are mocked locally for edge-compatible development:

post('/api/contact', async (c) => {
  const country = c.req.header('cf-ipcountry')
  const ip = c.req.header('cf-connecting-ip')

  const data = await c.req.json()
  return c.json({ ...data, country, ip })
})

When deployment arrives, these headers provide real geolocation and network data at the edge.

Design principles

Nueserver draws inspiration from Hono's clean API while with the follwing differences:

Global methods — No Hono imports or server exports. Use get(), post(), or use() directly on the code.

No HTML responses - Use c.json() and c.text() only. HTML generation belongs in the frontend.

No file serving - Static assets are handled by the build system, not the server layer. Each concern stays in its domain.

No complex routing - Simple patterns that map to CloudFlare's routing capabilities. No regex routes, no complex parameter validation.

No middleware chaining complexity - Linear middleware execution with explicit next() calls. Predictable flow, easy debugging.

This focused API makes the server layer predictable and portable. Your HTTP logic stays clean while other layers handle their specific concerns.

Installation

For real projects, use Nuekit for the full development experience:

bun install --global nuekit

Or install Nueserver directly as a library:

bun install nue-edgeserver

See the Server API reference for complete routing and context documentation.