Back to Updates

Boards, Unleashed (Sep 16, 2024)

I was very tempted to title this post "Boards on the loose", but that didn't sound quite as dramatic (or as positive, for that matter).

A couple of weeks ago, our project made a significant leap forward. The Board server -- mentioned in these updates a few times before -- has finally grown up, starting to show its full potential.

Let's first talk a bit about the board servers. What the heck are they?

A simplified sketch of the relationship between Breadboard Visual Editor and Board Servers will remind you of typical two-layered platform stack. The Visual Editor serves as the frontend layer, enabling you to rapidly experiment with various AI patterns, build interesting things, iterating at the speed of thought. Just draw what you want with components and wires.

Two-layered stack

The Board Server is the backend layer, where the results of this experimentation are stored. Loosely, there are two kinds of board servers: local and cloud.

When you first load the Visual Editor, a tiny personal local Board Server is spun up just for you. It runs entirely in your browser, and allows you to store and run boards.

This is great for individual experimentation. But it's also a bit lonely. You can make neat boards, but sharing them and letting others play with them is somewhat tedious: you will need to share the Board Graph Language (BGL) file, and hope that others have all the secrets (like API keys) that you used to build it.

This is where cloud Board Servers step up. Designed for group collaboration, they are the easy-to-spin-up, self-contained servers (currently supporting Firestore and SQLite backends -- see published Docker containers here).

Board Servers act as the shared collaboration space. To sign into the Board server, a new member is issued a Board Server API key -- which acts as a password of sorts. Once signed in, the Board server appears in your Visual Editor left side panel.

App View Screenshot

When you and I are on the same Board Server, we can easily swap board ideas, remix and reuse each other's work. I can take a board you built and add it as a tool in my LLM call, or invoke it as part of my board. You can take my board and tweak it to your purposes. Cloud Board Servers are like a jam session space for AI enthusiasts.

You can be a member of multiple cloud Board Servers and still keep your local, personal one.

The administrators of the cloud Board Servers can optionally set common secrets (such as various model API keys). When you are on such a server, your boards can use these common secrets -- though of course, these keys are not revealed to you. The resulting effect is that the boards just run in your Visual Editor without you ever having to worry about getting an API key.

Every board stored in the cloud Board Server has a stable URL. The URL is typically of the form:

// Serves the BGL of the board
https://board.server.name/boards/@your-handle/board-name.bgl.json

You can share this URL with others and let them use it outside of the board server. Your friend who is not a member of the board server can still use the board's URL to invoke it from their local board server.

Now, let's turn it up a notch. Are you ready? ✨ This stable URL also serves as an instant App View. All we need to do is change the extension part of the URL to .app from .json:

// Shows an instant App View of your board
https://board.server.name/boards/@your-handle/board-name.bgl.app

When we go to this URL in a browser, instead of a JSON file, we'll see a nice and tidy Web app powered by your board. The distance between a working concept and a working app is literally one click.

App View Screenshot

What's more is that you can share this app with the world. In this instant App View, you can create -- and importantly, revoke! -- invite links. An "invite link" makes your linkable demo public, securely using the Board Server's common secrets to run your demo. You can share the invite link with your friends and colleages, and let the world take your ideas for a spin.

Silly Chat Screenshot

Ok, this is pretty cool. But why not turn it all the way to 11? ❤️‍🔥 If you want something other than the generic skin of the App View, the Board URL is also an API endpoint:

// Provides an API endpoint for your board
https://board.server.name/boards/@your-handle/board-name.bgl.api

With the API endpoint, the path from a linkable demo you shared on social media to a full-blown app is a straight line. Just add frontend. To give you a sense of what it takes, here's a very simple example of a frontend built in Val Town:

Silly Chat Screenshot

You can play with it at https://dglazkov-sillychat.web.val.run/ and see the source code of the Val that powers this frontend.

We are starting to see the glimpes of the full potential of Board Servers and Breadboard. Jam creatively with your colleagues and friends. Build something cool, together. Get inspired, remix. Share your ideas with the world. See the sparks. Turn ideas into real production apps.

With all the advances still happening with large language models, we are still far from being done with understanding the true capabilities and value of generative AI. We hope that Breadboard becomes your tool to explore this massive problem space. The adventure awaits.