Woost is a an Open Source content management solution created by Whads, with more than 10 years of development behind it. On many occasions, customers ask us why we believe that Woost is a better choice for their projects than other, more popular alternatives, such as Drupal, Wordpress or Joomla. This document outlines the reasons that led us to develop this solution, as well as what we believe are its main advantages and drawbacks.
Before going into more detail, we want to state that we have extensive experience developing websites using many of the more well known CMS packages. Sometimes because we think that one of those options is best suited to the specific requirements of a project, sometimes because it’s a requirement of the client or because we have to inherit a project developed by someone else.
A necessary project
Whads is an online agency that provides design, marketing and development services. Like most sensible businesses, we always try look for existing solutions before making any custom development. Why then did we decide to develop Woost? Before starting the project, we evaluated tens of open source CMS packages. We found they all suffered from two major shortcomings: the lack of native support for multilingual content and the rigidity of their data models, that is, the difficulty to suit the specific needs that each solution requires. Realizing that these two critical features were nowhere to be found on existing software, we set out to develop our own solution.
Today Woost is a mature project that drives many websites for trusted brands like MANGO, Roca, Ajuntament de Barcelona o Palau de la Música.
On the following sections we will go over the particular aspects that set Woost apart from competing offerings.
Easily manage multiple languages
Many popular content management solutions can manage multilingual content. However, most of them don't offer this functionality as part of their base design, relying on addons or extensions developed by third parties to achieve this.
Woost was designed from the ground up to handle multilingual content. All parts of its user interface and its underlying software stack are built with this need in mind.
One example of this is our interface for editing documents and other content pieces: editors can see multiple languages simultaneously, side by side, copying and comparing text from different translations as needed. This simple feature can be a boost to the productivity of editors. Other CMS solutions require a tedious workflow for this: edit a translation, save changes, close, open the next translation...
Data models, total adaptation
Woost structures the contents of a web site using models . Each model describes a specific content type, be that a page, a news piece, a book or a product. The system allows you to define new models (or modify those already included) to meet the requirements of each website precisely. For example, a website for an NGO might need to deal with campaigns, partners and donations, while a portal to make restaurant reviews would need models for the restaurants and the reviews.
With Woost, modifying and extending the data model of the CMS to reflect your business needs is extremely easy. Developers declare as many models as required, including their fields, relationships with other models and validation rules. The system will automatically generate a user interface based on these definitions, including views for listing, searching, editing and deleting elements. This capability provides highly significant benefits:
Developers save a lot of effort and time, so they can concentrate on the specific needs of the solution. This leads to a drastic reduction of the development times for many projects and, while guaranteeing more robust results.
The administration interface is highly consistent: it doesn't matter if you are editing pages, news, books or any other kind of content. All models are listed, edited and searched in a very similar way. There’s no new learning curve for the editors.
Woost gives you for free many advanced features that otherwise would require custom development and a lot of effort: per model full text search, file attachments, image processing, hierarchical content views or exporting listings to Excel are just examples. All of these any many more useful capabilities will automatically extend to your models.
The ability to customize the application's data model allows you to adapt the CMS to your project. In contrast, when working with popular CMS solutions, meeting the specifics needs of the project is often problematic. It is usually resolved by tacking on an assortment of third-party extensions, plus a variable amount of custom code. Often, this can compromise other functionalities and security and add development, testing and maintenance costs.
Increasingly, some other solutions are adopting modeling systems similar to Woost's (in particular, Drupal has a system to define custom content types, specially on version 8). However, the implementations for these systems suffer from significant limitations and are not fully integrated with their core product (again, most of these are added as an after thought, instead of being a central aspect of their design).
Page building with blocks, freedom without errors
This unique feature of Woost makes it possible to build very complex pages without having knowledge of HTML by adding content or functional components via drag & drop. This makes it really easy to add text, images, media galleries, video players, social media feeds, news listings and many more pieces of content to your site.
By comparison, most other CMS solutions will only give you a Word-like editor, or have you resort to entering HTML by hand. This can soon lead to errors in code, arbitrary design variations and general frustration for your editors.
Blocks lead to more consistent designs, with pages that are more well structured, and thus, easier to maintain and with better SEO results.
Developers will also appreciate this system: it is very easy to modify the look and feel of existing blocks, or to add your own custom block types. By dividing the presentation aspects of your website into discrete, reusable parts, they will save effort and reduce development times.
Finally, this approach is very useful for building One Page websites, and its granularity ties in very well with responsive design.
Woost is free and open source
Free software is a model of development and distribution of software that allows users to evaluate, modify and redistribute the source code of the software. Many projects based in this principle foster the growth of communities that work to improve the project and to provide support and services. Many companies choose open source projects for the advantages, costs and flexibility they provide.
Woost is free software. You can download it for free, and use or modify it freely. Beyond the core code all modules and third-party components that we have developed are also free. This means that even in the case Whads stopped supporting it, customers would still have full access to all the code for their solution.
Support and response time
The advantages of using projects with lots of installations and users are obvious. In this regard, Woost is at a disadvantage compared to other more popular solutions. Although it is a project with several years of development that has seen use in many high profile projects, the adoption level that solutions like Wordpress, Drupal or Joomla can boast of is orders of magnitude bigger.
However, the positive side of this is the level of support we can offer. Being the authors of the solution allows us to offer a level of support, customization and response time that companies that are based on generic solutions simply cannot match. In the same way, we can also guide the evolution of the project based strictly on the specific needs from real projects of our customers.
One of the biggest concerns with dealing with web applications is security. The complexity of online solutions (hosting, operating system, database, system updates, libraries, CMS, components, etc) builds up to a situation where managing and maintaining secure solutions demands a lot of effort and awareness. Websites are under constant siege by distributed attacks, constantly trying to steal data or take over the server for malicious purposes - such as driving more attacks, sending spam, and others.
The architecture of Woost, its situation in the market and strict development practices add up to make it less vulnerable to attacks than many other solutions.
SQL injection immunity
Woost does not use SQL databases to store data. This makes it immune to attacks based on injection of SQL statements, which are very frequent elsewhere.
In many popular web development environments (PHP, ASP, JSP) addresses (URLs) map directly to files that contain the code to execute. Under this model, any directory published on the web server becomes a possible attack vector, if there is a way to create or modify files there (for example, a form that allows file uploads and does not have the appropriate validation rules). Woost avoids this problem by using a more sophisticated URL processing system, and having its source code reside in folders that are not directly exposed to the web.
The price of popularity
From a security standpoint, Woost benefits from being a less popular platform. Security problems of projects like Wordpress or Drupal are published widely. Projects based on these solutions often suffer from massive attacks that scan the network looking for installations not updated or vulnerable to known problems. Despite being circumstantial, this is a very important point.
Poor code of third parties
Popular CMS like Wordpress, Drupal o Joomla have thousands of third party components that extend them with new features. This can quickly lead to a security nightmare: it’s very difficult to check and guarantee the quality of the code of theses extensions. Very often these addons are not updated or their security problemsare not properly advertised and patched.