What is Aoife?
Aoife is a static site generator written in Xojo. It can be used to build all sorts of websites ranging from blogs to portfolios to documentation sites. Unlike popular website frameworks like WordPress, Ghost and Movable Type (which dynamically build each page each time a visitor requests one) Aoife builds your site when you create content. Since websites are viewed much more often than they are edited means your site will be rendered fast. As a bonus, the writing experience Aoife delivers is clean and simple.
Sites built with Aoife are fast and secure. You don’t need to worry about the latest vulnerability found in your blogging engine because your site is just simple HTML. You can deploy sites built with Aoife on virtually any host and because the server doesn’t have to render each page upon every visit, you don’t need a powerful server for hosting, saving you money.
What does Aoife do?
Put simply, Aoife takes a folder of plain text files and a theme (a collection of HTML files) and uses those to create a completely self-contained website.
Aoife currently has the following features:
- Totally cross platform. Runs on macOS, Windows, Linux and the Raspberry Pi
- Easy to install
- Comprehensive theme support. Make your website your own
- Host your site absolutely anywhere
- Conceptually simple content organisation
- Supports website sections
- Customisable page and post titles
- Navigation menu generation
- Pretty URLs
- Content is written in fabulous Markdown
- Supports JSON frontmatter for custom post data
- Fully customisable homepage
- Theme support for multiple sections, single posts and lists
- Easy theme creation with logic-less Disco templating language
- Automatic post summaries
- “Minutes to read” functionality
- Automatic word count functionality
- Automatic RSS feed generation (optional)
- Automatic archive creation (optional)
- Integrated Google Analytics support
- Additional support for coding in Markdown with support for code fencing
You can see what’s coming up next in the roadmap.
Why use Aoife and not WordPress?
WordPress is a great open source endeavour that powers lots of popular sites on the web. However, what started as a blogging engine has developed into a huge general purpose website generator written in an interpreted programming language that has to construct each page every time it’s visited.
Creating a page dynamically means that the server (the computer hosting the site) has to have sufficient RAM and CPU power to basically run the generator 24/7. If the server is underpowered then the visitor to the page will have to wait until resources become available before the page can be served, leading to a slow browsing experience. Some people argue that this is an advantage over static site generators like Aoife as content is always up-to-date. However, since the world is inpatient, dynamic site generators (like WordPress) cache HTML files once they’re built. Cached files are temporarily stored on the server but if you make a change to a part of the system, the page served to the user may not be the most up-to-date one. If your framework is going to cache files anyway, you may as well use a static site generator and view the files locally on your own computer before uploading them. This renders the a common anti-static site generator argument a moot point.
Not running a dynamic site generator on your server has a number of benefits, the biggest probably being performance. Servers are very good at, guess what, serving HTML files. So good in fact that you can pretty much serve the same number of pages using a static site generator with a fraction of the RAM and CPU needed for a dynamic site.
How fast is Aoife?
Whenever you change the content of a site, you need to rebuild it. That sounds like it might take a long time right? Wrong. My blog takes about 150 ms to build from scratch. I actually decided to push Aoife and see how long it would take to build a blog with 2000 posts, an archive and the RSS feed. Bare in mind that 2000 posts would take a casual blogger (posting every single day) 5.5 years to generate that much content. It takes Aoife just 11 seconds to build. Not too shabby in my humble opinion.
Is Aoife for me?
If you prefer writing content in a text editor rather than a browser then yes.
If you prefer to retain complete control over the organisation and portability of your code and content then yes.
If you want a lean and fast site then yes.
Why did you make yet another static site generator?
I’ve been blogging on and off for a number of years and have built countless websites both by hand and with WordPress. Increasingly I was finding WordPress more of a hindrance to work with than a help, mostly around how tedious it is to create a new theme using PHP. I also really wanted to write my content in Markdown which WordPress “supports” but in a bolted-on, less than ideal, way.
I next tried Ghost as it’s designed around writing content in Markdown. Whilst I liked the browser-based Markdown editor I disliked two things:
- It’s node based and I’m just not a fan
- It doesn’t support a static home page
After that I turned to the static site generators. After a lot of experimenting I decided that none of them were a good fit for me for a variety of reasons and so I decided to build my own. I particularly wanted to make it easy to create new themes. I also really wanted to write something in Xojo that was cross platform and this seemed like the perfect project.
Garry Pettet (@garrypettet)