What is PalaCMS?
At its core, Pala is an all-in-one web development platform that unifies content management, component development, and deployment into a single cohesive tool. Built with SvelteKit and PocketBase, it provides individuals and teams with a complete toolkit for building and managing modern websites with a fraction of the effort compared to similar tools.
What’s new in V3?
Monolithic architecture - serve your static sites directly from Pala.
Custom Page Types (i.e. Content Types)
Dynamic content fields (i.e. 'Site Field', 'Page Field', 'Page' to update entity page content referenced on other pages)
Personal Library for Blocks
Marketplace for Starters and Blocks
Site groups
Conditional fields (to show/hide fields based on preceding field values)
CSS-library compatibility (bootstrap, tailwind, bulma, etc. all work reliably using a standard cdn link).
UI/UX improvements
Drag pages to reorder them in the page list
Drag repeater items to reorder them
Drag-and-drop functionality improved for adding blocks to page & now works on mobile.
Block editor organized into code & content (i.e. fields & entries), UI improved.
On-page editing significantly improved.
Publishing your first site
- Install PalaCMS
- Add a Starter to your library from the Marketplace or create one from scratch
- Create a new website using your new Starter
- Click ‘Publish’, optionally connecting a domain name
Frequently Asked Questions
How do I add custom components to my Pala sites?
Components are first-class citizens in Pala called Blocks. You can create new custom components from the dashboard to add them to your personal Block library and add them to your sites from there, or create them directly inside any site. You can also easily modify Blocks downloaded from the Marketplace.
How do I migrate from another CMS to Pala?
Unfortunately, there’s currently no automated importing tool for migrating from another CMS to Pala, so you’ll have to do it manually or write a custom script to convert your code/content into a Pala site file.
Can I export my content if I want to migrate from Pala?
Yes; it’s actually easier to migrate out of Pala than it is to migrate into it because you can download your entire site as a simple JSON file that you can extract your content and code from with a simple script.
How do I integrate third-party services (analytics, forms, etc.)?
Pala makes it easy to integrate directly with third-party services. For most services, you can integrate them into your sites by adding a script to your page/sites
tag. If you need to integrate an API with a Block, you can do so from the embedded code editor. Pala doesn’t enable serverside functionality [yet], so you’ll have to set that up separately to interact with your site’s frontend.How does versioning work for content and components? Can I use Git?
Pala integrates your site code and components in the database to simplify development and deployment, but one downside of that approach is not being able to utilize Git for versioning like you might be able to in a traditional dev workflow or git-backed CMS. Git is obviously necessary for web application development, but we’ve found it to be mostly unnecessary (if not tedious and unapproachable) for content sites, so future development will likely focus instead on a different approach for versioning and backups.
What's the process for creating and managing multiple sites?
Pala architecture makes it trivial to create and manage multiple websites. Whereas most (all) traditional CMSs also host your website, Pala decouples itself from the actual site hosting so you can create and host an unlimited number of sites from the same server. Since you can create groups (i.e. folders) to organize your different sites, it’s unlikely you’ll need to manage more than one server, even with hundreds of sites.
How does Pala handle image optimization and media management?
Admittedly, the current version isn’t great at media management and does little to optimize images. You can easily set up fields to allow content editors to upload a mobile/desktop version of an image, but for everything else you’ll want to use something like Imigx.