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

create-backbone-template

v0.1.7

Published

Create a Backbone spec-driven React and Rust web project.

Readme

create-backbone-template

Create a Backbone starter project: a rigid, spec-driven harness for building with AI coding agents.

Backbone is for vibe coders who want the speed of AI-assisted development without letting the project dissolve into loose conventions. It provides an opinionated full-stack environment where as much of the app as possible is defined before implementation: protobuf contracts, route structure, generated bindings, design-system boundaries, and behavior-focused end-to-end tests.

The goal is not to make the smallest starter kit. The goal is to make a sturdy engineering frame that keeps both humans and agents oriented. Backbone favors declarative surfaces, strict compilation, narrow architectural choices, and repeatable planning rituals so that features are shaped before effective implementation begins.

Getting Started

npm create backbone-template@latest my-app

Equivalent commands:

pnpm create backbone-template my-app
npx create-backbone-template my-app

The generated project contains a React client, Rust ConnectRPC server, shared protobuf definitions, SQLite persistence, generated TypeScript bindings, design-system packages, custom linting boundaries, and Playwright/Cucumber e2e coverage from the first commit.

Why Backbone Exists

AI coding agents are surprisingly good at working inside rigid systems. They are much less reliable when the project leaves every architectural choice open. Backbone leans into that: it gives the agent a tight framework, then exposes the important parts of the application as declarative, reviewable artifacts.

Those artifacts become the shared planning surface. A route, a proto service, a Gherkin scenario, or a lint rule is not just implementation detail; it is a piece of the product definition that can be discussed before the code underneath it exists.

Core Choices

  • Definition-first: proto files, routing declarations, and e2e scenarios form a declarative surface that can define a significant part of the app before implementation begins.
  • Composition skills: the template includes a minimal set of agent skills for a planning methodology where declarative logic is modeled in the plan and reviewed in discussion.
  • Strict by default: TypeScript, Rust with strict lints, protobuf contracts, and generated bindings create a clear cross-language compilation platform.
  • Custom linters: project-specific lint rules let the repository enforce higher-level code organization standards, not only syntax and formatting.
  • Behavior-readable tests: Cucumber/Gherkin keeps planning readable and turns behavior into executable checks.
  • Fast enough to stay in flow: Rust, protobuf, ConnectRPC, and generated code are modern, high-performance choices. They may be less familiar than TypeScript-only, Python, or REST-heavy stacks, but that rigidity gives AI a stronger shape to work inside.

Where This Is Going

  • Treat custom linters as a constant quality-improvement loop, with AI helping propose and implement rules while humans keep the rule set intentional.
  • Let Backbone evolve from a template toward a framework where useful pieces, such as custom linters, can be published as separate libraries. That would make upgrades easier and increase consistency, while trading off some of the organic local control users have today by editing the template directly.
  • Move more declarative elements directly into the planning phase: code as spec, reviewed before implementation.
  • Build UI around planning, reading, and discussion so the project is not only a generated codebase, but a better working surface for collaborating with agents.

Package Creator

This package is the project creator. It copies the template into a new directory, personalizes the project name, restores dotfiles, and leaves the generated project with its own README containing the first setup commands.

Development

Run the creator locally:

node bin/create-backbone-template.js /tmp/my-app

Verify the package:

npm test
npm pack --dry-run

Publishing

The package is published by the Publish GitHub Actions workflow.

For normal publishing, run the Publish workflow from GitHub Actions and enter the package version without the leading v. The workflow updates the root package.json, validates the package and template, commits the version bump, creates the vX.Y.Z GitHub release, and runs npm publish --provenance --access public.

For release-based publishing, create and publish a GitHub release tagged vX.Y.Z. The release workflow verifies the tag matches package.json and runs npm publish --provenance --access public.

The npm package should be configured for trusted publishing with:

  • Package: create-backbone-template
  • Publisher: GitHub Actions
  • Workflow: .github/workflows/publish.yml