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-mf2-app

v2.7.2

Published

Create a production-ready SaaS app with Next.js, Convex, and AI

Readme

mf²

version downloads license

The startup-in-a-command monorepo built for the agent era.

One command scaffolds a Turborepo with eight apps across web, mobile, and desktop, 22 shared packages, and agent instructions that already know the codebase. Everything boots with zero keys — a blank env value just disables that integration.

Website →

Quick Start

bunx create-mf2-app my-app
cd my-app
bun run dev

Prefer GitHub? Click Use this template on the template repository.

The CLI prompts for a project name and package manager, copies the template, creates ready-to-fill .env.local and .env.production files, installs dependencies, and makes an initial commit. Fill in API keys as you need them and start building.

Apps

apps/
  app/            Main SaaS application (Next.js, App Router)
  web/            Marketing website
  api/            Webhooks, cron jobs, external integrations
  mobile/         React Native + Expo mobile app
  desktop/        Electron desktop app (macOS, Windows, Linux)
  docs/           Documentation (Mintlify)
  email/          Email templates (React Email)
  storybook/      Component workshop

Packages

packages/
  backend/               Convex database, auth sync, AI agents, workflows
  convex/                Convex + Clerk React provider
  storage/               Convex file storage and Vercel Blob

  design-system/         50+ shadcn/ui components with dark mode
  design-system-native/  React Native UI components (NativeWind)

  auth/                  Clerk authentication and route protection
  payments/              Stripe via @convex-dev/stripe
  ai/                    Vercel AI SDK, multi-model routing

  analytics/             PostHog event tracking and sessions
  cms/                   BaseHub headless CMS
  collaboration/         Liveblocks cursors and presence
  email/                 Resend transactional email
  feature-flags/         Vercel feature flags with overrides
  internationalization/  next-intl translations
  notifications/         Knock in-app notification feeds
  seo/                   Metadata, JSON-LD, Open Graph
  webhooks/              Svix outbound webhook delivery

  observability/         Sentry error tracking, BetterStack logging
  rate-limit/            Upstash Redis rate limiting
  security/              Arcjet bot detection, Nosecone secure headers

  next-config/           Shared Next.js configuration
  typescript-config/     Shared tsconfig

Each app imports only the packages it needs. Five Convex Components (Stripe, Resend, Workflow, Action Retrier, Migrations) ship pre-installed. Stack details at mf2.dev/docs/structure.

Built for Agents

.agents/AGENTS.md is the single agent entry point: essential commands, conventions, and pointers to the vendored skills. AGENTS.md, CLAUDE.md, and .claude/CLAUDE.md are one-line anchors that resolve to it, so every agent lands on the same instructions.

| File | Purpose | |------|---------| | .agents/AGENTS.md | Canonical agent instructions | | AGENTS.md, CLAUDE.md, .claude/CLAUDE.md | Anchors that resolve to .agents/AGENTS.md | | .agents/skills/ | 40+ vendored skills: Convex, Clerk, Expo, Stripe, shadcn, Turborepo, and more | | .claude/skills/ | Mirror of .agents/skills/ for Claude Code | | .mcp.json | MCP servers: Convex, Stripe, Clerk, PostHog, Vercel, Context7, Ultracite |

Tell your agent to use the mf2 skill with your product idea: it maps the requirements onto the scaffold and plans a parallelized build.

Security

Scaffolds ship with supply-chain defenses on: a three-day cooldown on newly published package versions (bun, pnpm, and npm), install scripts blocked by default, registry-only transitive resolution, and Arcjet bot detection with rate limiting at runtime.

CLI

Pass the project name and flags to skip the interactive prompts:

bunx create-mf2-app my-app --package-manager bun
bunx create-mf2-app --name my-app --disable-git

| Flag | Effect | |------|--------| | [name] | Set project name (positional) | | --name <name> | Set project name (wins over the positional) | | --package-manager <manager> | bun (default), npm, yarn, or pnpm | | --disable-git | Skip git initialization |

For npm, yarn, or pnpm, the CLI converts workspace:* dependencies, rewrites bun-specific scripts, and adjusts configuration files.

Deploy

Each app deploys as a separate Vercel project:

  1. Import your repo at vercel.com/new
  2. Set the root directory (apps/app, apps/web, or apps/api)
  3. Add environment variables from .env.production
  4. Push to main and Vercel rebuilds only affected apps

Documentation (apps/docs) deploys via Mintlify; the backend via bunx convex deploy.

Documentation

Commands, environment setup, and the full stack reference live at mf2.dev/docs.

Contributions welcome — see the Contributing Guide.

License

MIT © Ocarina Labs