Resources › Official Packages

First-party Packages

Official @tsx-pkg/* packages are maintained by the tsx project and published to the public registry. They follow the FPF format and can be installed with one command.

Each package declares a provides[] list of capability tokens. Other packages can declare integrates_with dependencies on these tokens, enabling automatic slot injection.

Package index

@tsx-pkg/with-authofficialtypescript · bun

Better-auth email/password auth, Drizzle session table, login/register forms, protected route middleware.

authsessionprotected-routes
tsx registry install @tsx-pkg/with-auth
@tsx-pkg/tanstack-startofficialtypescript · bun

Full TanStack Start scaffold — router, query client with SSR, server functions, and zod env schema.

routerquery-clientserver-functionsenv-validation
tsx registry install @tsx-pkg/tanstack-start
@tsx-pkg/drizzle-postgresofficialtypescript · node

Drizzle ORM + node-postgres connection, migration scripts, and a starter schema with helpers.

databasemigrationsschema
tsx registry install @tsx-pkg/drizzle-postgres
@tsx-pkg/with-shadcnofficialtypescript · bun

shadcn/ui component library bootstrap: tailwind.config, globals.css, and 10 base components.

ui-componentstailwinddesign-system
tsx registry install @tsx-pkg/with-shadcn
@tsx-pkg/basic-crudofficialtypescript · bun

Full CRUD pattern — Drizzle table, TanStack Query hooks, server functions, optimistic mutations.

crudserver-functionsoptimistic-ui
tsx registry install @tsx-pkg/basic-crud
@tsx-pkg/full-saasofficialtypescript · bun

SaaS starter: auth, billing stubs, org/team model, role-based access control, admin shell.

authbillingteamsrbacdashboard
tsx registry install @tsx-pkg/full-saas

Publishing your own

Anyone can publish packages to the registry. See the Publishing guide to get started. Community packages appear alongside first-party packages in search results.

Providing capability tokens

The provides[] field in manifest.json lists abstract capability tokens your package fulfills. For example, a package that sets up authentication should list "auth". Other packages can then declare integrates_with to inject code into your package's slots.

Standardised token names ensure interoperability — use the tokens from existing official packages where possible, or introduce new ones with clear documentation.