How packages fit together
Understand the Tulip package map: foundation, UI, data surfaces, actions, files, content, and AI.
Tulip is organized as focused packages that compose into a full business application system.
Each package solves one layer. You can adopt them one by one, but they are designed to feel consistent when used together.
Package map
| Area | Packages | Purpose |
|---|---|---|
| Foundation | @tulip-systems/core, @tulip-systems/app, @tulip-systems/auth | App configuration, shell components, layouts, auth-aware flows, and shared infrastructure. |
| UI | @tulip-systems/ui | Shared components and styling primitives used across Tulip apps and packages. |
| Data surfaces | @tulip-systems/query, @tulip-systems/data-tables, @tulip-systems/inline | Filtering, sorting, pagination, tables, loading strategies, and inline editing. |
| Actions | @tulip-systems/commands | Typed, reusable, permission-aware actions rendered through menus and command primitives. |
| Files | @tulip-systems/storage, @tulip-systems/drive, @tulip-systems/drive-local, @tulip-systems/drive-google | Uploads, asset serving, file manager UI, provider contracts, local storage, and Google Drive-backed trees. |
| Content | @tulip-systems/editor, @tulip-systems/editor-storage | Rich-text editing and storage helpers. |
| AI | @tulip-systems/ai | Agents, tools, streaming chat, MCP helpers, and AI UI primitives. |
| Scaffolding | create-tulip-app | Start a new Tulip application from maintained templates. |
The common flow
A typical Tulip screen combines several packages:
CoreandAppprovide the app foundation and layout.UIprovides the shared component language.Querydefines filters, sorting, pagination, and URL-backed state.Data Tablesrenders records using the resolved query controllers.Commandsattaches typed actions to rows, toolbars, context menus, or bulk selections.Inlinelets users update values in place when a full form would slow them down.StorageorDrivehandles files when records need attachments, folders, media, or documents.AIcan expose the same domain actions as tools for assistants and agents.
Boundaries to remember
- Use
Queryfor query input state, notData Tables. - Use
Data Tablesfor table rendering and loading strategies, not filter definitions. - Use
Commandsfor actions that need reuse, permissions, disabled state, or menu rendering. - Use
Storagefor flat uploaded assets tied to domain records. - Use
Drivefor file manager workflows, folders, selection, provider-backed trees, and document surfaces. - Use
AIwhen assistants need application-aware tools, not just chat UI.
Start with the package that matches your surface
If you are building a record list, start with Query and Data Tables.
If you are building row actions, start with Commands.
If you are adding file uploads to a form, start with Storage.
If you are building a file manager, start with Drive.
If you are building a workspace assistant, start with AI.
Next step
Who is it for?
Tulip is for teams building serious business applications where consistency, typed workflows, integrations, and extensibility matter.
Starter path vs advanced path
Choose the right route through the docs depending on whether you are building your first Tulip screen or composing deeper package behavior.