Introducing Publii, the Static Website CMS for Windows and MacOS

The TidyCustoms team have been working in the web-development field for many, many years now, and in that time we've seen a lot of changes; trends come and go, new systems are implemented, replaced and upgraded, technology marches forward. Over time we've seen an increase in the usage of CMSs to manage websites, and with good reason; software such as WordPress and Joomla! provide a wide range of options to create and customize a website, from looks right through to functionality.

Static Website CMS for Windows and MacOS
Static Website CMS for Windows and MacOS

There's a downside to this progress though. The constant push forward for more content, more features, more...everything, has meant that for smaller-scale websites that only wish to host a simple, occasionally-updated blog, or provide an entry point for a local company to help customers get to know them, must invest ever-larger amounts of time and resources to ensure that their website is both functional, yet also fast enough to keep bounce-rates low. Even WordPress, originally a simple blogging platform, has become expansive enough to be a good choice for large-scale websites. The increasing popularity of CMSs has also led to them becoming a target for hackers, with some major exploits putting websites that are not regularly updated at risk of losing their data, or even of their visitors being hacked in turn.

Crafting a static solution

Watching these trends develop, we decided that we would like to offer those running small-scale companies, or who wish to run their own personal blogs, a unique solution that would allow them to create their own website with minimal resources and risk. To that end, we have created Publii, a static website app for both Windows and MacOS.

Publii may be a new app, but it relies on tried and tested technology to achieve its aims; before the advent of the modern CMS, most websites were built with simple static HTML and CSS without the bloat of PHP or Javascript, allowing for stylish websites that ran fast and were rarely at risk of hacking. Though it was still possible to create static websites, they either had to be written manually, which is extremely time-consuming and unintuitive for beginners, or had to be generated using tools that could convert existing websites into static versions. These tools, however, were targeted more at experienced developers rather than the layman, making them unwieldy for most users.

Publii combines old and new for an original experience

Publii bridges the gap between CMSs and static websites; in terms of functionality, using Publii provides the same experience as using a CMS like WordPress; choose your theme, customize it to your liking; add posts, pictures, tags and menus, then publish for the world to see. However, it differs in functionality in two key areas; where the development is done, and how it is made available on your host server.

To understand these differences, we must first familiarize ourselves with how traditional CMSs such as Joomla! or WordPress work. The CMS (Content Management System) is a piece of software that is installed directly on your host server; when a user visits your website, they are actually connecting to the CMS. The CMS stores any content your create for it, such as posts or pages, in a database. Then, when a visitor opens one of your webpages, their browser requests the page, and the CMS will execute PHP code to create the page layout, retrieve any content for the page from its database and insert it on the page according to the code's instructions, then style it as per the CSS rules, finally generating a complete webpage to be sent to the browser to display.

As you might have guessed, this method of delivering the page, though allowing for complex routines and impressive features, also results in a huge number of requests and steps between the initial request and the delivery of the generated page to the browser, significantly impacting load times. These two elements; where the software is executed, and how files are made available on the server, are significantly different in Publii.

Publii is a Desktop Application

Unlike other CMSs, Publii is a desktop application; that is, you install it on your local computer the same way you would any program or app, rather than on your server. This frees the app from the usual constraints imposed upon it by being server-side; for one, you don't need to be online in order to use it, and secondly, you can build and develop your website even before you have access to a server, since the completed website can be uploaded at any time.

This switch to desktop-based app also provides a significant improvement in security; the main way that CMS-based websites are hacked beyond social engineering (that is, convincing somebody to give your their username and password through deception) is via code injection, where a fault in the original code is abused to insert the hacker's own code into the site, allowing them to do anything from gain access to the administrator area or even steal data from visitors, depending on the severity of the breach.

Since Publii's code is all on your desktop rather than the server, there's simply no way for a hacker to gain access to your website's admin without first getting access to your home computer; a far more secure situation.

Publii creates Static Websites

Earlier in this article we discussed the multiple steps a CMS must go through between the initial request from a browser for a particular webpage, and the final generation and delivery of the webpage to the browser. As Publii is a desktop application, these steps are actually taken during the creation process on your local computer, rather than on the server.

Think of it this way; using Publii on your local computer, you are able to create a website, select the theme, add posts and tags, and generally configure every aspect of your site. Once done, rather than uploading the software to your server, Publii instead generates the complete website as static files, then uploads them to your server.

What this means is that the website available on your server is static; when a visitor's browser requests a particular page, the server simply sends the files already generated by Publii. This in turn means that no code is executed on the server, no database needs to be accessed, and no page-generation needs to occur; instead, the request is received and the completed files are immediately sent to the browser.

This alternative approach has a huge impact on load times; with significantly fewer steps required for the browser to receive the webpage's files, the static version of a site will always be significantly faster than a dynamic, CMS-based site with the same layout.

A user-friendly experience for beginners and developers

There were three principles at play during Publii's initial design stage; first, we wanted Publii websites to be fast, second, they had to be secure, and third, it needed to be accessible even for the complete beginner. By allowing Publii to create static websites we successfully fulfilled the first two criteria, but the third required a different approach.

Static websites have traditionally been unwieldy to use, since they needed manual programming or complex tools to implement. Publii instead uses instantly-understandable CMS-style creation tools to make it easy for everyone of all skill levels. After creating your first website in Publii, a clean administrator panel allows you to instantly add posts, with an efficient text editor that also allows for the insertion of photos and video embeds from popular video websites such as Youtube.

Menus and tags (Publii's version of categories) can be added and assigned instantly, and each section is clearly labelled so finding your way around the backend will be a cinch.

Once your website is ready to go, there's no need to fumble around with irritating transfers or FTP programs; all that's required are some basic credentials so that Publii has access to your host's server, and you can upload and update your website at the click of the button. Publii even remembers which files are new and which have been changed, so when updating only the modified or new data will be uploaded for a smooth, hassle-free update process.

Extensive Options for the Experienced User

The interface in Publii is instantly understandable, but this doesn't mean that advanced users will find nothing of use for their more specific requirements. Publii includes extensive SEO options to better manage your metadata and search-engine ranking, as well as specific customization options that allow for color and layout changes, social media sharing options, and even the creation of AMP (Accelerated Mobile Pages) for an even faster experience on mobile phones and tablets. Naturally, the standard themes in Publii are responsive, meaning users on the full range of screen sizes can enjoy the complete website experience.

For the advanced user, there are override options that allow for your own code to be added to the head and footer of the page, and you may even create your own themes with CSS3, Semantic HTML5 and Handlebars support providing the full range of modern developer support.

Download Publii Today

Interested in what Publii can offer you? Head on over to the Official Publii Website where you can download the Publii app for Windows or MacOS

Publii is an open-source project currently in its initial development stage, so any feedback you can provide will be crucial to Publii's future dev cycle. No matter your experience level, we want to hear about your experiences. Let us know what you liked, what you didn't like, any bugs that you've encountered, or just tell us what features you'd like to see added int he future; we promise to take on board every bit of feedback that we receive and to use it to guide the growth of Publii into a modern, one-of-a-kind website creation tool.

This article was updated on November 3, 2019

Bob Mitro

Bob is a co-founder of the Publii project and a web designer and front-end web developer with over thirteen years of professional experience in the design industry.