Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

acme-package

Fork-ready monorepo template for published TypeScript libraries. tsdown ESM builds, Vitest, oxlint/oxfmt, fallow, Changesets, Fumadocs, and a Vite demo, prewired.

Quickstart

Prerequisites: Node ≥24, pnpm 11 (pinned via packageManager), and portless running as the local HTTPS proxy (the docs dev URL depends on it).

pnpm install
pnpm dev          # docs at https://acme-package.docs.localhost · demo at http://localhost:5173
pnpm test         # vitest across packages
pnpm build        # builds all workspaces (packages + docs)

Packages

Package Role
@acme/core Example framework-agnostic library (tiny typed store)
@acme/react Example React adapter (useStore via useSyncExternalStore)
@repo/typescript-config Shared tsconfig presets (internal)
@repo/config-vitest Shared Vitest presets + coverage thresholds (internal)

Apps

App Role
apps/docs Fumadocs site (https://acme-package.docs.localhost via portless)
apps/demo-vite Vite playground consuming both packages via workspace:*

Use this template

The rename surface is small. Full walkthrough: docs → "Using this template".

  1. @acme scope → your npm scope (packages/*/package.json + imports in apps/, including the docs .mdx content)
  2. Repo identity: root name, repository.url in BOTH publishable packages (npm provenance validates it against the publishing repo, so a renamed fork's first release fails if skipped), the site identity in apps/docs/lib/site.ts, the repository link in apps/docs/content/docs/index.mdx (a test keeps it equal to site.ts), the titles in apps/demo-vite/index.html and apps/demo-vite/public/404.html, and this README plus AGENTS.md
  3. Portless names in the docs and demo dev scripts (apps/docs/package.json and apps/demo-vite/package.json → "dev")
  4. LICENSE holder

Releasing

Changesets: pnpm changeset, merge the auto-opened "Version Packages" PR, and release.yml publishes to npm with provenance. It authenticates through npm trusted publishing (GitHub OIDC), so the repository stores no npm token. The release job is skipped until you register this repository and release.yml as the trusted publisher of each package on npmjs.com and set the RELEASE_ENABLED repository variable to true.

Scripts

Command What
pnpm dev run all dev servers (turbo)
pnpm build / pnpm test / pnpm test:coverage build / test across workspaces
pnpm lint / pnpm format / pnpm format:check / pnpm typecheck oxlint / oxfmt / tsc
pnpm fallow:dead / fallow:dupes / fallow:health / fallow:audit dead code / duplicates / health score / audit vs main
pnpm changeset / version-packages / release Changesets flow

Stack

pnpm 11.13.1 (pinned) · Node ≥24 · Turborepo · tsdown (ESM-only) · Vitest 5 · oxlint + oxfmt · fallow · husky + lint-staged · Changesets · Next 16 + Fumadocs · Vite 8

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages