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

@rockdev/cli

v0.2.1

Published

CLI to generate a scaffold for Rockfeller projects

Downloads

786

Readme

Rockfeller CLI

CLI para gerar bases de projeto padronizadas da Rock com scaffolds prontos para web, api e monolith.

Ele automatiza a criacao de projetos com estrutura inicial, configuracoes de qualidade, AGENTS.md, CLAUDE.md, suporte a NestJS + Fastify para backend, bases web opcionais e setup de banco e cache conforme o tipo de projeto.

O que ele gera

  • web: projeto frontend com Next.js
  • api: backend NestJS com Fastify
  • monolith: monorepo com apps e packages compartilhados
  • AGENTS.md generico em todo projeto criado
  • CLAUDE.md apontando para o AGENTS.md
  • configuracoes de qualidade como Biome, Lefthook, commitlint e tsconfig melhorado
  • suporte a Prisma ou Drizzle em api e monolith
  • docker-compose.yml com PostgreSQL e Dragonfly para api e monolith
  • modulo de cache com ioredis em api e monolith
  • Better Auth opcional em api e monolith, com adapter de Prisma/Drizzle e providers configuraveis
  • opcionalmente bases de Landing Page, Login e Dashboard para projetos com frontend

Instalacao

Instalacao global com npm:

npm install -g @rockdev/cli

Instalacao global com bun:

bun add -g @rockdev/cli

Execucao sem instalar globalmente:

npx @rockdev/cli new

Uso

Comando principal:

rock new [template] [name]
rock status
rock env example
rock env check
rock update

Exemplos:

rock new
rock new web
rock new api minha-api
rock new monolith plataforma-interna
rock new web meu-app --name outro-nome

Comandos

rock new [template] [name]

Cria uma nova base de projeto a partir de um template.

Templates disponiveis:

  • web
  • api
  • monolith

Opcoes:

  • -n, --name <name>: define o nome do projeto

rock status

Faz uma verificacao geral no projeto atual e mostra:

  • package manager declarado e lockfile correspondente
  • presenca de README, .gitignore e workflows de CI
  • scripts basicos de qualidade (lint, typecheck, test, build)
  • alinhamento entre .env e .env.example
  • presenca e estrutura basica de Dockerfile
  • sinais de deploy ou publish configurados
  • metadata do pacote e inicializacao do Git

rock env example

Gera ou atualiza .env.example a partir do .env, mantendo comentarios e removendo todos os valores.

rock env check

Verifica se o .env possui todas as chaves declaradas em .env.example. O comando termina com erro quando encontrar chaves ausentes.

rock update (alias: rock upgrade)

Consulta a ultima release estavel do repositorio no GitHub e atualiza a CLI globalmente. Quando a API do GitHub nao estiver acessivel, usa a versao publicada no npm como fallback.

Ao executar qualquer comando da CLI, quando houver uma release mais nova, a CLI tambem apresenta um seletor com as opcoes Instalar nova versao e Pular. Cada consulta tem tempo limite curto para que falhas temporarias nao interrompam nem atrasem o comando solicitado.

Fluxo interativo

Ao rodar rock new, a CLI pode perguntar:

  • qual template deseja gerar
  • nome da pasta/projeto
  • qual package manager usar: pnpm ou bun
  • se deseja instalar dependencias imediatamente
  • quais extras de scaffold deseja incluir: Biome, Lefthook, Commitlint, Dockerfile, Docker Compose, EditorConfig e Better Auth
  • se selecionar Better Auth, quais providers deseja habilitar: Email e senha, Google, GitHub, Discord ou nenhum
  • se deseja substituir um AGENTS.md ja existente
  • em api e monolith, qual ORM usar: Prisma ou Drizzle
  • em web e monolith, se deseja usar alguma base: Landing Page, Login e/ou Dashboard (ou nenhuma)
  • quais skills recomendadas deseja selecionar (ou nenhuma)

Estrutura e padroes aplicados

Os projetos gerados seguem estas diretrizes:

  • backend em NestJS usando Fastify como padrao
  • validacao de ambiente com envalid via src/env.ts
  • uso de imports com alias quando o template suporta isso
  • arquivos de banco e configuracao inicial para Prisma ou Drizzle
  • cache local com Dragonfly e integracao via ioredis em api e monolith
  • README.md, .gitignore, tsconfig.json e package.json mais completos no scaffold

Desenvolvimento local

Instalar dependencias:

bun install

Rodar em modo desenvolvimento:

bun run dev

Build:

bun run build

Checks principais:

bun run lint
bun run typecheck
bun run test
bun run check

Publicacao

O pacote publicado no npm e @rockdev/cli.

O workflow de release exige:

  • package.json.name exatamente igual a @rockdev/cli
  • tag do release no formato v<versao>
  • nome do release exatamente igual a v<versao>
  • versao do release igual a versao do package.json

Exemplo para a versao 0.1.0:

Tag: v0.1.0
Release name: v0.1.0