Version 3 🎉
The first stable version of Primo, 7 years in the making 🎉
What's New in V3
Self-Hosted Architecture
- PocketBase Backend - Run Primo on your own infrastructure with a single Go binary
- Monolithic Deployment - Ship as a single Docker image
- Your Data, Your Control - No vendor lock-in or external dependencies
Content System
- Custom Page Types - Create flexible content structures for blogs, products, team pages, and more
- Dynamic Content Fields - Site fields, page fields, and relational content that updates across pages
- Conditional Fields - Show/hide fields based on other field values
- Block & Starter Library - Reusable components and starter templates
Editor Experience
- Real-time Collaboration - Multiple users editing simultaneously
- Enhanced On-page Editing - More intuitive visual editing
- Improved Drag & Drop - Better block placement with mobile support
- Better Content Organization - Drag to reorder pages and content items
- Refined Block Editor - Cleaner separation between code and content
- Design System Editor - Built-in tools for managing your site's design tokens
Technical Changes
Architecture
- Backend rearchitected from Supabase/Serverless to PocketBase Monolith (Go)
- Database moved from SQL schema to PocketBase migrations
Frontend Stack
- Svelte 4 → Svelte 5 (runes syntax)
- SvelteKit 1.x → SvelteKit 2.x
- Tailwind CSS 3 → Tailwind CSS 4
- Custom components → bits-ui
- CodeMirror 6 with Svelte language support
- TipTap 3.x for rich text editing
- Pragmatic drag-and-drop
Build & Compilation
- Browser-based Rollup (@rollup/browser)
- Server-side compilation options
- Pages compile to static HTML
Roadmap
- Internationalization
- Framework integration (Next.js, SvelteKit, Astro)
- AI block generation
- Local development tools & CLI
- Marketplace for community blocks and starters
- Plugin API
Major credit to @joas8211 for suggesting and implementing the monolithic approach, as well as major architectural work & helping create the first stable version.
Note: project was renamed to "Pala" for a bit but decided to go back to the original name for the credibility/non-slop commitment signal of 7 years of development