V2 Beta 12 - drag n drop improvements

July 31, 2023

With this release, you can drag and drop Symbols in the sidebar to rearrange them. It also improves the reliability of dragging and dropping Symbols from the sidebar onto the page & improves the overall UX of dragging and dropping.

Database update

This update necessitates a small change in the database to enable rearranging. You can do it manually by creating a new column in your 'symbols' table called "index", making it a non-null integer, or preferably by running the query below.

  1. From your Supabase dashboard, click 'SQL Editor' in the dashboard

  2. Click 'New query'

  3. Paste in the following query:

alter table symbols
add column index integer;

V2 Beta 1 - on-page editing, side panel, stability

This is Primo's most significant release to-date. The largest hurdle in V1 (which was still in Beta) was the struggle between Primo Desktop and Primo Server - informationally (too many options) but especially when it came to codebase complexity. I've always wanted to offer Primo as a desktop application because downloading is more approachable than self-hosting, but the complexity of multiple repositories, packages, and environments make it untenable to do at this stage.

Focusing on Server itself and releasing a major version made it possible to undo years of debt in the codebase and introduce functionality we've dreamed of implementing since we started: full on-page editing, real-time collaboration, autosaving, and more. But even better, the codebase is the leanest it's ever been, so more than anything this version brings Primo closer to a general release.


Set up the new server from scratch, then upload your V1 sites manually. They'll be converted v2 sites in the database.


With the removal of Primo Desktop, the project is now only self-hostable (and goes back to being just called Primo). It's still uses Vercel (or others) as a frontend and Supabase as a backend, but compared to v1 which stored your site as a single JSON file, v2 leverages Supabase's Postgres database to store sites, pages, and blocks as database records - making it possible to have an** unlimited number of pages **on a site (theoretically at least).

V1 had the tedious separation between Component section and Content section - one standard components edited from fields and the other a simple content blocked edited on the page. But with full on-page editing in V2, content sections are done away with and sections are just called blocks (instead of "components", which is a more general term).


Beta v3

Breaking Changes




Beta v2

Breaking changes


Bug fixes

Beta v1

Breaking changes


Bug fixes

Hear about future updates, including:

  • Using it headless alongside SvelteKit, NextJS, etc.

  • Design fields to give content editors predefined style options.

  • Cloud functions for writing backend code from Primo.