Skip to content

icon picker
Bolt introduction

Last edited 22 seconds ago by Max Pauwels

Introduction

We started the Bolt project based on a “Block architecture” where each element is a JSON block containing consistent parameters. This is based on the “Notion” block data model explained in this .
This type of architecture has grown in popularity, mainly by doc creating apps like Notion or Coda.io; where you where creating web pages/docs in real time rather than using an editor in an admin.
This structure forces us to handle each element as a single element (block) at its source, which results in high scalability and allows us to expand different parts of the project with minimal effort.
Bolt is currently a test project, but the idea is that it should allow a user to create a website/app in real time, without the need for an editor or admin dashboard.

Short Intro Dec 2023

Block architecture

There are 2 main files managing blocks. The data file, which contains the JSON data for all blocks on a page and the block settings file, where each block is defined as an object with information on how the block behaves.
Block data
Each block contains information about the block type, its unique id, its position, creation date etc.
Block settings data
Each block is defined as an object with information on how the block behaves.
{
"id": "2-6",
"type": "navigation_item",
"items": ["1","2"],
"created_at": "8/14/2023 10:59:23 PM",
"updated_at": "8/14/2023 10:59:23 PM",
"created_by": {
"object": "user",
"id": 1
},
"last_edited_by": {
"object": "user",
"id": 1
},
"parameters": {
//... Unique to block
},
navigation_item: {
description: `A clickable link for easy browsing and moving around.`,
group: "navigation", // Block group
friendly_name: "Navigation item", // Name of block for display
accepts: [],
sortable_context: false,
droppable: false,
draggable: true,
// Custom parameters - These are shown to in the sidebar editor for each block
parameters: {
//... Unique parameters for this block
},
},

Detailed overview of blocks


Components and data sources


Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.