Zeta is an open source registry for shadcn/ui components, designed for secure distribution of private or premium components. It integrates with Polar.sh for automated license key management and validation.
Documentation is in progress.
For now, follow this guide and refer to shadcn registry docs and Polar license key docs for details.
To protect your components, you need a valid license key from Polar.sh.
-
Start with a fresh Next.js app.
-
Run:
pnpm dlx shadcn@latest add https://zeta-registry.vercel.app/r/registry.json
This command copies the registry components into your project.
git clone https://github.com/rbadillap/zeta.git
cd zeta
pnpm install
Copy .env.example
to .env
and fill in the required values:
# Zeta registry (used for signing tokens)
# https://nextjs.org/docs/app/guides/authentication#1-generating-a-secret-key
REGISTRY_TOKEN_SECRET="your-random-secret"
# Polar.sh integration
POLAR_ORG_ID="your-polar-organization-id"
POLAR_ACCESS_TOKEN="your-polar-access-token"
POLAR_IS_SANDBOX="false" # set to "true" for Polar sandbox/testing
Variable explanations:
REGISTRY_TOKEN_SECRET
: Secret key for signing and verifying registry tokens. Generate a strong random value. DocsPOLAR_ORG_ID
: Your Polar.sh organization ID. Find it in your Polar dashboard.POLAR_ACCESS_TOKEN
: API token for accessing Polar.sh endpoints.POLAR_IS_SANDBOX
: Set to"true"
to use Polar's sandbox environment for testing.
Zeta expects a registry.json
file and at least one component to be present in your project.
- Follow the shadcn registry getting started guide to:
- Create your own
registry.json
- Add your components (e.g., in
registry/new-york/your-component/
) - Reference and protect components as needed
- Create your own
pnpm dev
Your registry will be available at http://localhost:3000.
- Create a license key in Polar.sh
- Set up your registry (clone this repo or use shadcn CLI)
- Configure environment variables for Polar integration and token signing
- Add and protect your components in the registry
- Distribute components securely—users must provide a valid license key to install