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-crm-starter

v0.1.30

Published

Interactive scaffolder for Next.js home-services CRMs (HVAC, Plumbing, Electrical, general).

Readme

create-crm-starter

Interactive scaffolder for Next.js 15 home-services CRMs — HVAC, plumbing, electrical, and general field-service businesses. Answer a few questions and it assembles a runnable, branded CRM with realistic demo data.

npx create-crm-starter my-crm

Think create-t3-app, but for home-services CRMs: a base Next.js app plus opt-in feature modules and industry presets that pick sensible defaults.

Stack: Next.js 15 + Better-Auth + Postgres (Neon) + Drizzle — own your data, no vendor lock-in, one isolated database per client.

What you get

  • Customers, Jobs, Calendar/Dispatch — real CRUD, drag-drop scheduling, a job status pipeline.
  • Estimates, Invoices, Payments — Stripe Checkout + webhook reconciliation, a public pay page.
  • Price Book, Service Plans, Checklists — catalog-driven line items and field checklists.
  • Comms — Twilio SMS (two-way inbox) + business-number calling + Resend email. Each client connects their own Twilio account in-app via Admin → Settings (no env editing).
  • Reviews, Reporting, Landing page with an online booking widget.
  • Industry presets — HVAC, plumbing, electrical, cleaning, landscaping, roofing, general — each sets brand colors, service types, and the right extra modules.
  • Optional field-tech iPhone app (Expo) — a branded app for technicians: today's schedule, job detail with Navigate/Call, status updates, photo + signature capture, push notifications, clock in/out, checklists, in-field invoicing + take payment, an estimate builder, and a two-way SMS inbox. Ships with a JSON API + token auth wired into the generated CRM.
  • Realistic seed data so pnpm dev shows a populated dashboard on first run.

The flow

npx create-crm-starter my-crm asks for: project name, industry, branding (name, colors, logo), which modules you want, user roles (admin / tech / office), the first admin, whether to seed demo data, and your deploy target — then writes a tailored project you can pnpm dev immediately.

One-command deploy (Neon + Vercel + admin)

At the end of the wizard it asks "Deploy to Vercel now?" — say yes and it creates a Neon Postgres database, deploys to Vercel (production), applies the schema, creates the owner's admin login, and prints the live URL. Needs NEON_API_KEY + VERCEL_TOKEN (it reads them from your environment, or prompts).

Deploy (or re-deploy) an already-scaffolded project anytime:

NEON_API_KEY=… VERCEL_TOKEN=… npx create-crm-starter deploy [dir] --name my-crm
# --url https://clientdomain.com  once their custom domain points at Vercel

Scaffold health check

Every scaffold ends with an automatic per-module health check — it verifies each module produced its key files and wiring, prints a ✓/✗ table, and writes SCAFFOLD-REPORT.md + .crm-scaffold.json into the project. A broken module is caught at scaffold time, not minutes later in next build.

Re-run it anytime against a project (after edits, before deploy):

npx create-crm-starter doctor [dir]   # defaults to the current directory
# --strict exits non-zero on any failure (for CI / automated runs)

Scaffolding flags: --no-verify skips the check; --strict aborts the scaffold if any module fails.

Upgrading a delivered project

When you fix a bug in the scaffold and want it in an already-delivered client CRM, run upgrade inside that project:

npx create-crm-starter upgrade [dir]
npx create-crm-starter upgrade --dry-run   # preview the changes first

It regenerates the latest template from the project's saved scaffold config and only updates files you never customized. Any file you edited that the scaffold also changed is written as <file>.new for you to merge — it never overwrites your work. package.json deps and .env.example keys are merged additively; your .env.local and database are never touched. Re-run doctor afterward, and pnpm db:push if it flags a schema change.

Per-client delivery

This tool is built to spin up a separate CRM per client (one scaffold → one Vercel deploy → one Postgres database, fully isolated). The generated project ships its own README hand-off checklist, and the repo's DEPLOYMENT.md is the agency zero-to-live runbook (Neon + Vercel, env vars, Stripe/Twilio webhooks, and the per-client iPhone-app build).

Requirements

  • Node ≥ 18.18
  • A package manager (pnpm recommended). For the Drizzle stack: a Postgres database (Neon, Supabase, RDS, or the included docker-compose).

License

MIT © Doug Allen