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

@mrk-us/create-app

v0.1.5

Published

Create a composable mrk.us application

Downloads

414

Readme

@mrk-us/create-app

Interactive Bun CLI for composing projects from mrk-us/starter-boilerplate.

Requires Bun 1.3.14 or newer, Node.js 22.11 or newer, and Git. The CLI checks the node executable on PATH before starting the prompts.

Run the published CLI with:

bunx @mrk-us/create-app

The published CLI downloads and verifies the exact starter commit pinned to that CLI version. It does not generate from a moving branch.

On the current development machine, activate the installed Node.js 22 runtime with:

export PATH="$HOME/Library/Application Support/Herd/config/nvm/versions/node/v22.16.0/bin:$PATH"
node --version

Local development

Install dependencies:

bun install

Run against a local template checkout:

CREATE_APP_TEMPLATE_PATH=/Users/markus/Dev/starter-boilerplate bun run dev

The CLI creates the project in the current directory. Setting CREATE_APP_TEMPLATE_PATH or passing --template-path replaces the pinned download with a local Git checkout for template development.

Use --skip-install while iterating on prompts and file composition. It also skips the generated project's checks, skill installation, provider setup, and initial commit:

CREATE_APP_TEMPLATE_PATH=/Users/markus/Dev/starter-boilerplate \
  bun run dev --skip-install

Use --skip-provision to install and validate a generated project without creating cloud resources:

CREATE_APP_TEMPLATE_PATH=/Users/markus/Dev/starter-boilerplate \
  bun run dev --skip-provision

Project skills and initial commit

Every normal generation installs the official Turborepo skill plus these core skills from mrk-us/skills under .agents/skills: add-component-reference, choose-library, laws-of-ux, microcopy, organize-files, and park-that.

The selected architecture adds its own guidance:

  • Next.js installs the skills published by vercel/next.js when either the marketing site or product app uses Next.js.
  • Convex runs bunx convex ai-files install.
  • WorkOS installs workos/skills.
  • Clerk installs clerk/skills when the generated dependencies use Clerk.
  • Stripe installs the skills published by https://docs.stripe.com.
  • Resend installs resend/resend-skills.

After project and provider setup completes, the CLI stages every generated file and creates the repository's first commit with the message init. If provider setup is interrupted, --resume creates that commit after setup finishes.

Development provider setup

Selections that include Convex now continue into provider setup after the source passes static checks. Before creating anything, the CLI lists the resources and asks for confirmation.

The complete WorkOS, Resend, and Stripe selection does the following:

  1. Creates a Convex project and cloud development deployment.
  2. Uses Convex's AuthKit development integration to create and configure the WorkOS environment.
  3. Creates the WorkOS webhook for the generated Convex HTTP endpoint.
  4. Stores the entered full-access Resend API key for the generated app and uses it to create the Resend webhook. Enter it through the masked prompt or supply it as CREATE_APP_RESEND_API_KEY.
  5. Asks whether to use a sandbox from the Stripe Dashboard or create a temporary claimable sandbox. The Dashboard path is the default. It directs you to the sandbox manager and asks for a sandbox test API key. The temporary path prints its claim link before setup continues and can switch to a Dashboard sandbox if claiming is unavailable.
  6. Adds the Pro product, the pro_monthly USD 8 price, the pro_yearly USD 80 price, a customer portal configuration, and the required webhook to the selected Stripe sandbox.
  7. Writes ignored local environment files at .env.local, apps/app/.env.local, and packages/backend/.env.local. Server secrets are also stored on the Convex development deployment.
  8. Pushes the configured Convex functions once more so bun run dev can start with the complete environment.

The default [email protected] sender only delivers to the email address associated with the Resend account. Use a sender on a verified domain for other recipients.

Stripe automatic tax is not enabled. Configure registrations and tax behavior before using the billing flow in production.

Stripe does not require live account activation to use a Dashboard sandbox. Create one from the account picker under Switch to sandbox > Manage sandboxes, then copy a restricted test key from Developers > API keys. A standard sk_test_ sandbox key also works, but a restricted key is preferable.

Setup progress lives in the ignored .starter/setup-state.json. The file contains resource IDs and stage status, not API keys or webhook secrets. Resume an interrupted local run with:

bun run /Users/markus/Dev/create-app/src/index.ts --resume ./acme-books

The published command is:

bunx @mrk-us/create-app --resume ./acme-books

Local bunx test

Register the package once:

bun link

Then link it into a scratch project and invoke the package by its published name:

mkdir -p /tmp/create-app-consumer
cd /tmp/create-app-consumer
bun init -y
bun link @mrk-us/create-app --no-save
CREATE_APP_TEMPLATE_PATH=/Users/markus/Dev/starter-boilerplate \
  bunx --bun --no-install @mrk-us/create-app

Run bun unlink in this repository when the link is no longer needed.

Checks

bun run validate

Package rehearsal

bun pm pack

Install the resulting tarball in a clean scratch project to test the published create-app executable without publishing it.

Provider prompts enforce the V1 dependency rules. The setup only creates development resources. It does not create production deployments, live Stripe resources, domains, or deployment-platform configuration.