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

toolkit-next-ts-starter

v0.0.2

Published

Enterprise-ready Next.js + strict TypeScript starter with projen, Biome, release automation, and config-driven multi-client architecture.

Downloads

498

Readme

Toolkit Next TS Starter

Enterprise-ready Next.js starter with strict TypeScript, projen metadata, Biome, git hooks, CI, and release automation.

Included Defaults

  • Projen project metadata and synthesis entrypoint (.projenrc.js)
  • Next.js App Router with strict TypeScript and typed routes
  • Route-grouped App Router with providers.tsx, error.tsx, and not-found.tsx
  • Layered src/ layout: views, services, hooks, store, utils, constants
  • Atomic design UI under components/atoms, molecules, organisms, templates
  • Design tokens and theme under styles/design-system/
  • Dedicated API/service layer under services/ (including feature APIs such as services/auth/)
  • Zustand stores, shared hooks, and utils/ for errors and logging
  • Biome for linting + formatting
  • Lefthook + lint-staged + commitlint for commit quality
  • Conventional commits and semantic-release automation
  • CI workflow and NPM publish workflow
  • Starter logging utility and documentation for operational consistency
  • Starter templates for Cursor and Claude skill workflows
  • Documented naming conventions (docs/NAMING_CONVENTIONS.md)
  • Rendering strategy examples with docs (/rendering, docs/RENDERING_STRATEGIES.md)
  • Jest + React Testing Library (unit/component) and Playwright (E2E) — docs/TESTING.md

Project Structure

src/
  app/                 # Next.js App Router (thin route re-exports)
    (auth)/
    (shop)/
    (dashboard)/
    api/
    providers.tsx
  views/               # Page views wired by app routes (not `pages/` — reserved by Next.js)
  components/
    atoms/
    molecules/
    organisms/
    templates/
  services/
    auth/
    http/
    api-clients/
  hooks/
  store/               # Zustand
  utils/
    logger/
    errors/
  constants/           # app routes + env config
  styles/
    design-system/
  assets/
  types/
docs/
  NAMING_CONVENTIONS.md
  RENDERING_STRATEGIES.md
  PERFORMANCE_MONITORING.md
  BUNDLE_SIZE.md
  TESTING.md
  BRANCHING_STRATEGY.md
  LOGGING.md
  CURSOR_SKILLS.md
  CLAUDE_SKILLS.md
.cursor/skills/release-readiness/SKILL.md
.claude/skills.md

Quick Start

npm install
npm run dev

Open http://localhost:3000.

Rendering strategy examples

Visit http://localhost:3000/rendering for live demos of static (SSG), dynamic (SSR), ISR, streaming, and client rendering. See docs/RENDERING_STRATEGIES.md for when each approach is used in this starter and how to verify with next build.

Performance monitoring

Core Web Vitals, long tasks, and memory growth heuristics run in the browser with in-app improvement tips when thresholds are exceeded. See docs/PERFORMANCE_MONITORING.md. Optional desktop alerts: NEXT_PUBLIC_PERFORMANCE_NOTIFY=true.

Bundle size on commit

After each git commit, Lefthook runs a production build and prints client bundle size with a diff vs the previous commit. Logs are stored under logs/bundle-size/. See docs/BUNDLE_SIZE.md. Skip with SKIP_BUNDLE_SIZE=1.

Bootstrap via npm (shared enterprise starter)

npx toolkit-next-ts-starter@latest my-app
cd my-app
npm install
npm run dev

Multi-client demo

http://localhost:3000?client=acme
http://localhost:3000?client=globex

Quality Gates

npm run lint
npm run typecheck
npm run test
npm run test:e2e
npm run build
npm run validate

Git and Commit Workflow

  • Branch naming strategy: see docs/BRANCHING_STRATEGY.md
  • Conventional commits are validated with commitlint
  • Hooks:
    • pre-commit: lint-staged
    • commit-msg: commitlint
    • pre-push: npm run typecheck

Release + NPM Publishing

  • Semantic release configuration: .releaserc.json
  • GitHub workflow: .github/workflows/release.yml
  • Detailed publishing runbook: docs/NPM_PUBLISHING.md
  • Enterprise rollout checklist: docs/ENTERPRISE_ADOPTION.md
  • Required secrets:
    • NPM_TOKEN
    • GITHUB_TOKEN (provided by GitHub Actions runtime)

Commits on main trigger automated versioning, changelog updates, GitHub release, and NPM publish.

Troubleshooting

  • If route type errors appear after moving pages, run npm run build once to refresh generated Next route types.
  • npm run typecheck already runs next typegen before TypeScript checking.

Projen

This repo includes a projen entrypoint (.projenrc.js) for project metadata ownership.

npm run projen

Run this after changing .projenrc.js to synthesize managed artifacts.