CMS Comparison - Laravel Nova & SilverStripe
Silverstripe & Laravel Nova
To start off I want to make it clear that Nova is not designed to be a complete CMS out of the box. It’s designed to be an administrator panel more for tasks like looking over registered members and see analytics. While SilverStripe is a full CMS directly out of the box but it lacks the same flexibility that Nova has together with the Laravel framework.
I wont go in to much of the similarities of the systems, but in short they are both open-source (PHP), they both have MVC-architecture and both allow for using modern underlying technology as Composer and PHP7+.
Laravel Nova
Laravel Nova is a package you can easily install and use together with your Laravel application. It creates an administrator panel that can use the existing models from your Laravel application to view data and give the ability to edit data to your clients. This approach is a bit different from SilverStripe which is primarily a CMS before a framework.
Things I like as a developer:
- Adding Nova into an existing Laravel project is really easy and all you have to do to create, read and update your content is adding your model to a Nova class and defining what kind of edit fields you want to use for that model.
- Having Laravel as the backbone of your CMS. There is a big community around Laravel and its liked by many developers even those who normally would say they don’t like PHP. This gives Nova a big advantage of being a part in this eco system and community.
- Laravel has a really good structure based on MVC this makes your project easier to manage and easier for others to pickup if they know Laravel.
Things I like as a user:
- The development time for a Nova panel is fast (if you go for standard looks and no custom features). It’s also quite fast to develop because of having Laravel as the framework where you can add lots of community made packages and content really easy.
- The Nova CMS is really easy to use, even if the user-experience sometimes can be bad the navigation and user interface makes it easy to understand and master.
- Nova gives you good and customizable dashboard views that can display analytics and data for an easier overview of the application.
Things that could be better:
- While SilverStripe is built around being a CMS Nova is not. Nova is built around being an administrator panel for Laravel applications where the focus is more around good design and dashboards instead of content management. This means you have to code more custom functions that might be a standard in most other CMS frameworks.
- Because Nova isn’t focused around being a CMS it also comes with a bad user experience when editing and looking at content. It sometimes feels more like a database management application than a CMS. This could lead to more customization in the code to make a better user experience for your customers, which might take more time.
- Nova doesn’t have a draft preview or published preview, the standard edit fields for text and HTML fields don’t feel finished and they focus more on markdown editors
- The Nova panel doesn’t have that good user experience it has loading of data every time you click something and things like custom actions and adding relations to your content isn’t as easy as it should be.
SilverStripe CMS
SilverStripe is an open source CMS with a framework built around the CMS. This makes it a really good workflow for CMS heavy sites like newspapers or general article websites. Coding with SilverStripe is also very CMS oriented but you still have all basic functionality of other frameworks to create standalone applications and headless CMS.
Things I like as a developer:
- The best thing about SilverStripe is the easy integration between adding CMS pages and piping the data to a template. You setup a model and a controller the model handels your CMS content and the controller handels requests from the user and directs them to the right template with the correct data.
- Laravel has database migrations and you could say that the SilverStripe framework has this too, you define your database structure in the model together with relationships to create a hardcoded model. This will create or update your database by executing a script from either the command line or the browser.
- Even if the standard framework and CMS comes with many features you can still add to it with community made packages and the SilverStripe team also makes new features into packages that you can add to your project.
- You can remove the "CMS" part of SilverStripe and use it as a framework when needed. It makes for a very flexible system.
- Good support for GraphQL which makes headless CMS solutions a lot more efficient to develop.
Things I like as a user:
- SilverStripe is built around being a CMS and editing content is the primary use case of the framework this makes it a good choice for websites with allot of content. All pages include tabs with custom fields for settings or content blocks. It’s a great CMS for article websites with built in preview and draft functions.
- There is a package for SilverStripe that allows content blocks which is a template or a part of your website you can edit and re use in different parts of a website.
- The SilverStripe CMS and framework together with all packages are all open source and free of use. This means no one time license payment or subscription. It also allows for the community to contribute to the frameworks code base to fix bugs or add new features.
Things that could be better:
- While the SilverStripe CMS is excellent - their framework isn’t quite as good as Laravel when it comes to the file structure and basic structure of a project. It isn’t as separated and structured as Laravel.
- The SilverStripe ORM is not a separate packages made by someone else it’s their own ORM that is built in together with the framework this means the database is really just made for SilverStripe projects and is not of much use outside of the framework.
- Because of SilverStripes wide approach of being a full fledged content management system it requires a bit more by the end-user than other simpler publishing solutions like Nova or Wordpress. There are lots of options and configurations in SilverStripe that are a bit confusing at first. However they make sense when regarding the system for what it is.
Conclusion
For a simple conclusion on this topic I would say that SilverStripe is clearly the best system if the needs of your client are above the usual basic publishing. It has in general fewer downsides on the client-side than Nova too. But for a more simple site or app where the client doesn’t need to edit or create allot of content on their site but wants to use analytics for their data - Nova would be the best choice.