Milestone Reached: The New Cardstack Hub

The hub has been improved and merged with the master branch of the Cardstack codebase

Cardstack Team
Cardstack
4 min readMar 17, 2020

--

Last week, we reached a major milestone at the open-source Cardstack Project. We have successfully merged the new version of the Cardstack Hub — our decentralized application server, which implements the new schema format called Card Schema V2 — with the main Cardstack Builder codebase.

Card Schema is a crucial technology that allows users to compose cards and nest them inside each other, thus creating higher-level constructs. For example, you could start out with a simple form (which is a card) consisting of a few fields, then embed it inside another form to create a collection. In that collection, you can sort your cards by criteria, display them in a table, or move them around as you would on a Trello board. The new schema system allows you to control which types of cards your collection contains, while you can even extend these cards and add more fields if you would like to capture additional data.

Similarly, the compositional features of the new Cardstack Hub are the back-end mechanism that supports message threads. A message thread is a chronological collection of cards that are shared between two or more parties. The new card nesting and rendering delegation pipeline is how we will support multi-step actions too. These actions can help users fill in and look up different cards step by step, so as to complete complex workflows like applying for a bank account or insurance product, where multiple pieces of information (aka cards) need to be provided in a linear process.

Our successful merge of the new Cardstack Hub added about 30,000 lines of code and removed over 60,000 lines of code, as we simplified the old card data services into a streamlined card API. We will update our current developer documentation to reflect this improved API. All future development regarding the Cardstack Builder and the Card.Space hosting services will be based on this leaner codebase.

The default data storage for Cardstack is a git realm, which means that all the data created by users is stored in a git repository. Since many git users prefer working with a hosting service like GitHub, we have improved the Cardstack Hub accordingly, ensuring that it will quickly write to a local git repo before checking several changes as a batch into GitHub.

We believe this will be the most popular pattern, as developers start out on the Cardstack platform — experimenting with our no-code tool in the browser as well as our command-line coding tool on their computer, while all their changes are reflected in the same GitHub repository. It is truly magical to watch these changes happen, as you are editing a card document (describing the card’s data) in a text editor or adjusting a CSS stylesheet (changing a card’s look through a theme).

By improving and merging the Cardstack Hub, we have united Cardstack’s no-code drag-and-drop approach (which is reflected in the Cardstack Builder application, to be released soon) with the code-driven, JavaScript-based developer SDK (which we have been using to build custom applications) into one united runtime experience.

In the coming months, we will announce new features as we add them to the Cardstack Builder and the Cardstack Hub. These will be incremental changes and improvements, building on this major milestone we have reached.

Developers can visit our GitHub repository, follow the instructions, and start playing around with the new Cardstack Hub today. Detailed documentation explaining the new concepts included in this new version of the hub, such as realms and card adoption, is forthcoming.

We are currently putting the finishing touches on the updated Cardstack Builder interface that will take advantage of these hub features. We also plan to share some prebuilt cards to serve as starting points for experimentation; they will be included in the Card Catalog we are beginning to assemble.

Not surprisingly, the Card Catalog is just another git repository. It contains card documents, which are textual representations of the cards’ data and logic, written to the repository as files. We plan to add many more building blocks to this catalog. Yet, since the catalog is simply a git repo, we will accept contributions from other developers via pull requests, as they experiment with the platform and create useful tools for themselves, which they would like to share with the broader community.

We want to celebrate this milestone and thank all members of our framework team, who have worked very hard on this major refactoring and rewrite over the past four months. Now that the new Cardstack Hub is part of the main codebase, we will focus on polishing the user experience and bringing the first cooperative no-code, open-source SaaS platform to the market.

The yellow highlights show how this important milestone fits into our 2020 roadmap for the Cardstack Project.

To get all our latest updates, star Cardstack on GitHub and join our Discord channel or our Telegram group and announcement channel.

--

--

Cardstack Team
Cardstack

Official account for the team behind the Cardstack project.