As you may have heard, we’re busy working on the next major version of Surreal CMS. I’m not open to sharing all the ideas we have right now — but there are some really, really good ones lined up.
Here are a couple high-level things we’re experimenting with.
Content Boundaries & Blocks
Surreal coined the
class="editable" paradigm nearly a decade ago. It’s become one of the easiest ways to add a CMS to an existing website.
But now it’s time to take things further. We want to help you build your next website.
In 6.0, Code Snippets will become a first class citizen and will be renamed to Blocks. To make them more powerful, we’re introducing a new feature called Content Boundaries that lets you define an element to act as a container for your blocks. You’ll be able to add/remove/reorder blocks anywhere inside a content boundary.
In addition, blocks will no longer be editable by default. You’ll be able to define editable regions inside your blocks, giving you complete control over their structure.
What’s really interesting about this is that a block can be just about anything. You can create a photo gallery block. Or a two-column block. Or a contact form block. It’s just HTML/CSS/JS.
With the right blocks, you’ll be able to build an entire website from scratch!
This feature introduces a way to share content regions across multiple pages (e.g. header, footer, sidebar, etc.) without having to use PHP, ColdFusion, or Server Side Includes. This is especially useful for websites hosted on Amazon S3.
The proposed syntax is:
<div class="cms-include" id="your-id"> <p>Your content here</p> </div>
When published, Surreal will update all pages that have a
cms-include element with a matching ID. Of course, that will mean publishing takes a bit longer since we have to write to multiple files via FTP/SFTP — which brings us to…
Because FTP and SFTP tend to be very slow, I’ve prototyped a transfer agent that Surreal can install
on most servers automatically via FTP/SFTP. Using the transfer agent’s secure API, we can significantly speed up transfer operations such as directory listings, publishing, uploading, and downloading.
In my prototype, I compared uploading 50 files to the same server:
- FTP - 62.8 seconds*
- Transfer Agent - 2.7 seconds
*This was the speed for a single FTP connection. This can be improved on some FTP servers by using multiple connections, but we’ve found many shared hosts limit (or simply don’t allow) multiple simultaneous FTP connections.
As you can see, using a transfer agent really speeds things up and will make new features such as Static Includes possible in FTP/SFTP environments.
Last but not least, with a handy dandy transfer agent to speed things up, we’ll finally be able to introduce a proper blogging tool! Imagine a full-featured blog with customizable templates that you can add to your website with a single checkbox.
Of course, we’re still hashing out some of the details for blogging in a static environment, but we’re getting close — and almost ready to start coding it!
- Simple template language for customizing
- OpenGraph, Twitter Cards, JSON-LD metadata (makes your posts more shareable)
- RSS feeds
- JSON feeds
- JSON index (for client-side searching)
- Import from WP
6.0 will also feature many UI improvements, lots of little improvements, and a number of under the hood optimizations that will make Surreal faster and even more reliable.
Alright, so what do you think of what we have in store for 6.0? What else would you like to see while we’re in the design/early dev stage?