Primo makes it a blast to build pages, update content, and edit code - one block at a time.
Primocms.org • Forum • Docs • Newsletter • YouTube
Traditional monolithic CMSs like WordPress, Drupal, and Joomla enable quick setup and easy content editing, but rely on antiquated and heavy development practices (often relying on plugins and third-party services to customize the site and add new components). Headless CMSs have popped up to modernize the view layer with modern development practices and frameworks, but have a poorer content editing experience due to their decoupling from the content layer.
Primo is a modern approach to the monolithic CMS that builds on the traditional monolith's benefits of a quick setup and easy content editing alongside the benefits of modern development (i.e. Svelte). These combine into a web publishing tool that is significantly easier and more fun to use for both technical and non-technical users and enables you to build faster, more secure, and more unique websites.
- Visual, on-page content editing
- Drag-and-drop page building with blocks
- Integrated development environment for blocks and pages
- Static site generation
- Real-time page collaboration
- Internationalization
- Multisite (1 server = infinity sites)
- Deploys to Github (i.e. any web host)
Primo depends on several [freemium] third-party services for easy hosting, authentication, database and storage, etc. Running your own Primo server is as easy as forking the Primo repo and deploying it on a static host like Vercel or Netlify, which should only take a few minutes.
Third-party services (all can be signed into with Github):
-
A modern web host like Vercel or Netlify to host the Primo application & published sites.
-
A Supabase account to manage your server's authentication, database, and file storage.
-
A Github account to deploy your sites to (unless you plan on manually downloading/uploading your site files to a host).
-
Ensure you have an account with all the services listed above.
-
Create a new Supabase project, go to the SQL editor, add a new query and provision your project by copying the schema and pasting it into the editor.
-
Fork the Primo repository.
-
Go to your web host and create a new project from your new repository, inputting your Supabase details (go to the API settings) as environment variables.
-
PUBLIC_SUPABASE_URL
-
PUBLIC_SUPABASE_PUBLIC_KEY
-
PRIVATE_SUPABASE_PRIVATE_KEY
-
-
Publish the project and navigate to the Primo authentication screen.
-
The user account you create will be the server owner. You can manage all your server's data from the Supabase project dashboard.
-
Finally, go back to your Supabase project & set the Site URL to the URL of your Primo site (under Authentication > URL Configuration > Site URL).
![Screenshot 2023-07-11 at 12 44 26 PM](https://private-user-images.githubusercontent.com/39444813/252734395-aff51c73-3935-4523-bf89-71f86f3f8f09.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyODMwNjQsIm5iZiI6MTcyNDI4Mjc2NCwicGF0aCI6Ii8zOTQ0NDgxMy8yNTI3MzQzOTUtYWZmNTFjNzMtMzkzNS00NTIzLWJmODktNzFmODZmM2Y4ZjA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDIzMjYwNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVlMjVjYjkwMWI3N2Q4OGQzNGEzODFjNWQ3ZTIyYjY1NjI4MzIwMzQzZmM0MTM5ODYxNTk0OGFiZGE5MzA5OTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.pOhBWAQJPvY0jpQmE5IsqNCe3K0GsCYgZd0nYTBuO8U)
For more details see this step-by-step installation video guide
You can merge upstream updates by clicking 'Sync fork' on your forked repository. Your updates will automatically deploy to your web host.