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

cdless

v0.2.1

Published

<img width="50" height="50" alt="codeless-c" src="https://github.com/user-attachments/assets/d71305b3-8588-4624-928d-42ad88574b9d" />

Readme

cdless

Instant serverless functions — no setup, no servers, no dependencies.

cdless lets anyone create and run powerful serverless functions instantly, without writing a single line of code. Just describe what you want, or pick from the library, and it works.


Install

npm install cdless

Quick Start

import cdless from 'cdless';
const echo = cdless('util/echo');
const result = await echo({ hello: 'world' });
console.log(result); // { hello: 'world' }

All cdless functions live on the edge by default

This means that we can call the same util/echo function using a simple curl command:

curl -X POST https://cdless.com/@cdless/util/[email protected] \
  -H "Content-Type: application/json" \
  -d '{ "hello": "world" }'

This same behavior applies to all functions, whether official or user-scoped.


Open Live Web Dashboard

Jump to functions Git folder

Jump to this.ctx docs

Core Concepts

1. Edge-First Execution

All functions run on the global edge network by default.

const chat = cdless('ai/chat');     // runs on edge
const uuid = cdless('util/uuid');   // runs on edge

2. No Installs Required

Functions are versioned, cached, and executed instantly via CDN.

cdless('util/[email protected]')   // pinned version
cdless('util/uuid@latest')  // latest stable

3. Official Standard Library

Top-level scoped functions are official, curated, and maintained by cdless.

cdless('ai/chat')
cdless('util/echo')
cdless('http/fetch')

4. User & Org Functions

Your functions live under your username or org.

cdless('@Marak/triforce')
cdless('@acme/analytics')

SDK API

cdless(name: string, options?: { mode?: 'edge' | 'local' // default: 'edge' })

Examples

// Official function const chat = cdless('ai/chat'); let response = await chat({ content: "Hello, world!" });

// User scoped function const triforce = cdless('@Marak/triforce'); let svg = await triforce({ size: 100 });

// Pinned version const uuid = cdless('util/[email protected]'); let id = await uuid();

// Local execution (rare) const echo = cdless('util/echo', { mode: 'local' }); let msg = await echo({ hello: "world" });


Function URLs

All functions are accessible via CDN:

https://cdless.com/{scope}/{name}@{version}.js

Examples:


Publish Your Own

  1. Go to cdless.com
  2. Write a function
  3. Deploy instantly
  4. Use it anywhere

Codeless Function this.ctx Context

When writing functions for cdless, you have access to a special this.ctx object that provides useful utilities and information about the execution context.

this.ctx.env

Access environment variables set in the cdless dashboard or API

const apiKey = this.ctx.env.API_KEY;

this.ctx.import

Dynamically import another cdless function

const randomBytes = this.ctx.import('crypto/randomBytes');
const { encoding, data } = await randomBytes({ size });

this.ctx.request

Access the original request object

const userAgent = this.ctx.request.headers.get('User-Agent');

this.ctx.request.geo

Access geo-location information about the request

const geo = this.ctx.request.geo;

this.ctx.state

Access stateful storage (Durable Object)

await this.ctx.state.put('count', 1);
const count = await this.ctx.state.get('count');

this.ctx.params

Same as the function's input parameters, copied for convenience

const { url, width, height } = this.ctx.params;

this.ctx.image

Access image manipulation utilities

const img = await this.ctx.image({
  url: "https://files.buddypond.com/Marak/Souvlaki_in_Athens.jpg",
});
const resized = await img.resize({ width: 64, height: 64, fit: "cover" });

Response Types

Functions may return different types of response data:

  • JSON: Standard JavaScript objects
  • Text: Plain text strings
  • Binary: ArrayBuffer for images, files, etc.
  • HTTP Response: Full control over status, headers, body

When running in edge mode, the function's output type will be auto-detected and the API will return the correct Response object with content-type headers.


Roadmap

  • [X] Function forking
  • [ ] Core library
  • [ ] Private functions
  • [ ] CLI: cdless deploy

License

GPLv3 © cdless.com


Built for the edge. Built for everyone.