Prioritizing composability above all else, Cardstack Framework let developers concentrate on creating, reusing, and extending domain models, while delegating UI orchestration, state synchronization, and persistence and indexing to the underlying full-stack runtime.
Simply define your types and enjoy the automatic generation of a matching user interface derived from a comprehensive design system
The same TypeScript code you write will run both on the client side in browser and server side in NodeJS, delivering an isomorphic runtime experience.
Package your types, components, and extensions to share with the community, or reuse an existing ES6 module to get things done faster.
Every layer of Cardstack is open source, allowing you to understand how all the layers function together. You don’t need to know the internals of Cardstack to build on top of it and get an application up and running. However, if you wish to delve deeper, you will find well-designed extension points that you can hook into, enabling Cardstack to integrate with existing systems and expand its capabilities beyond the out-of-the-box offerings.
Your data is encoded as simple JSON files that you can upload, store, back up, and share. Stored data on hosted realm servers are automatically indexed, enabling you to query it like a database. External data sources, whether stored in the cloud or a blockchain, can also be incorporated through realm gateways and combined with user data to create a seamless querying surface.
Communication with third-party AI/LLM inference providers like OpenAI is multiplexed and persisted through a messaging service based on the Matrix Protocol. You control which subset of your data is shared in the chat room and serves as context for the AI generation. Actual system prompts and domain-specific instructions are encoded as JavaScript annotations or JSON data, so you can iterate on AI functionalities quickly without writing Python or deploying backend services.
Since all core modules of Cardstack are distributed as npm packages, the community is empowered to contribute additional functionalities, adhering to the standard procedures of open-source contribution within the JavaScript ecosystem. Catalogs are published as git repositories, allowing you to submit your contributions via pull requests. The platform also supports premium packages, ensuring contributors receive financial compensation when their packages are purchased or utilized by end-users.
Unlike most frameworks, Cardstack ships with a complete user experience, from Finder-like card choosers to an inbox for notifications and multiparty workflows. When you extend the applications with new types, it comes with default UI components that work out of the box, or you can also customize the look and feel with full control over the templates using HTML/CSS, Handlebars, and any JavaScript libraries you want to import.
Note: Our Developer Release is intended for people with basic familiarity with web concepts like HTML, JSON, and URLs. Javascript and TypeScript skills are a plus!