Playstack documentation
Build application capabilities from small, portable packages with explicit integration boundaries.
Playstack is a collection of TypeScript packages for assembling production applications without coupling the application core to a single framework, database, queue, or vendor.
Use it to add capabilities such as authentication, billing, email, queues or file storage to an existing application. Start with one package; you do not need to adopt every package or change frameworks.
The packages are in preview. APIs can still change before the first stable release, and the documentation will call out migration notes as they settle.
Choose the smallest package
- New to Playstack? Run the storage quickstart to write and read an object without cloud credentials.
- Choosing a capability? Browse packages by what you want to build.
- Integrating an existing app? Start with Next.js, React, NestJS or Workers.
- Looking up an API? Read the reference guide, then open the package you use.
- Preparing a project for registry access? Learn about Free accounts, tokens, and upgrades.
Start with the domain package that owns the capability you need. Add a framework adapter such as a nest-*, *-next, or *-react package only at the edge that needs it. Add a persistence adapter only where state must cross a process boundary.
This keeps the dependency direction clear:
application -> framework adapter -> domain contract -> injected infrastructureWhat the preview guarantees
- Domain packages expose typed contracts and accept injected infrastructure.
- Commands that produce events can carry operation context for correlation, causation, actors, scopes, and traces.
- Event producers expose explicit bridge seams instead of requiring a particular broker.
- Stateful packages make the database, cache, queue, or storage client boundary visible.
- Standard errors can cross HTTP boundaries without losing their stable code and details.
Next step
Read Getting started for the installation model and a minimal composition example. Then use Packages to choose the capability layer that fits your application.