Reading the repo
Opening the box…
Reading the repo
Opening the box…
How to install on macOS
Beautiful pdf components, built on Takumi and Forme. 100% Free, Zero config, one command setup.
Saved setup from 10 h ago
Will it work on macOS?
CONTRIBUTING.mdThanks for your interest in contributing! This guide covers everything you need to get the repo running locally and land a change.
package.jsongit clone https://github.com/shadcn-labs/pdfcn.git
cd pdfcn
pnpm install
pnpm dev
This starts the Next.js dev server with the documentation site at http://localhost:3000.
pnpm build
This builds the shadcn registry first, then the Next.js app.
When changing a registry item, run pnpm registry:build (apps/web/scripts/build-registry.mts). The source manifest is apps/web/registry.json; the build publishes apps/web/public/r/*.json, rewrites source-only @/registry/ imports to the installed file targets, and checks that every item has a complete isolated dependency closure (including package dependencies). Declare imports from other items in registryDependencies; do not edit the generated JSON by hand.
pnpm typecheck # TypeScript type checking
pnpm check # lint and format check (ultracite)
pnpm fix # auto-fix lint and format issues
All of these run in CI, so running them locally before pushing saves a round trip.
A pre-commit hook via lefthook automatically runs pnpm fix on staged files.
Every pull request must be tied to an issue. Before opening a PR, search the existing issues, discussions, and pull requests so you do not duplicate active work. If there is no existing issue, open one with the relevant template and describe the problem, use case, or bug reproduction.
For non-trivial changes, wait for discussion on the issue before investing in the implementation. The goal is to agree that the problem is real and that the proposed direction fits pdfcn before review shifts to code.
To avoid PRs that are unlikely to be reviewed or merged:
main.git commit -s.pnpm check and pnpm typecheck pass.All contributions are made under the Developer Certificate of Origin. Every commit must include a Signed-off-by line matching the commit author's name and email:
Signed-off-by: Jane Doe <jane.doe@example.com>
Add it automatically with:
git commit -s -m "your commit message"
If you forget, amend the last commit:
git commit --amend -s --no-edit
To sign off a series of commits, rebase with --signoff:
git rebase --signoff main
Please use the issue templates. For security issues, do not open a public issue — follow SECURITY.md instead.
This project follows the Code of Conduct. By participating, you agree to uphold it.
pdfcn is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under that same license (inbound = outbound).
Then run bash setup.sh. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
Needs Git: xcode-select --install
git clone https://github.com/shadcn-labs/pdfcn.git cd pdfcn
Node.js >=20.9.0
# needs nvm: brew install nvm (or https://github.com/nvm-sh/nvm) nvm install --lts
corepack enable pnpm install
pnpm dev
No reports for macOS yet.
GitManual AI Agent reads the 5 key files and writes a step-by-step guide for macOS. Once written, it's saved for everyone.