Download

Development Blog

Saber Launches!

Published September 20th, 2021

By Mark Entingh

After the home I was living in burnt down on February 19th, 2018, I was able to salvage a laptop from my bedroom hiding inside a backpack. The next day, while living in a hotel room, I began writing code for Saber. Two days before the house burnt down, I also began writing code for Saber on a different laptop and I implemented a code editor (using Ace Editor) that could save & load HTML, CSS, & JS files. The fire destroyed that laptop and I didn't set up a GitHub repo for Saber yet, so I was forced to start from scratch in that hotel room.

It's been quite the journey since then. I built Saber using ASP.NET Core along with this website which contains an immense amount of documentation about building plugins for Saber, and I produced an introduction video as well (found on the homepage) and set up a GitHub Sponsors page. I've built & tested Saber for Windows (IIS), Linux (Kestrel), and Docker. At this point, I'm ready to share Saber with the world.

For those of you who don't know, Saber is a website builder. I've built four or five website builders throughout the 22 years of my career as a software engineer. I've even received funding for one of them in 2011, and that project failed.

I built Saber, not because this is an obsession, but because I believe the web to be the best platform for sharing & consuming content. HTML, CSS, & JavaScript are powerful tools that can be used to change the world.

The website builders I made in the past all focused on letting the user build web pages by dragging & dropping content (such as text, images, and video players) directly onto web pages in real-time. I decided to take a completely different approach with Saber.

I enjoy writing HTML, CSS, & JavaScript, and so Saber was designed with a focus on writing HTML, CSS & Javascript. Saber uses Monaco Editor which is the editor that powers VSCode and will make it easy for you to prototype your website.

Saber encourages you to write multi-lingual content outside of your HTML files. This is done by using mustache variables {{hello-world}} in place of content when writing HTML code in Saber's Editor. There's a tab in Saber called the Page Content tab which will display a list of form fields generated from the mustache variables that you created in HTML. You can choose which language to use when filling out the form fields, then instantly view a live preview of the content changes within your web page.

The above example shows HTML code for the home page at top-left, the Page Content tab with form fields that match mustache variables at bottom-left, and a preview of the web page on the right-hand side.

You may find that building websites in Saber is fun and engaging because you are able to focus on your creative process, writing HTML & CSS, then viewing an instant preview of your web page by pressing the ESC key.

Partial Views

Another powerful feature within Saber is the use of partial views, which are basically just HTML files that can be injected into your web pages to generate dynamic content. For example, you can add a List Component to your web page that will generate a list of content using your partial view for each item in the list and a data set you provide in the Page Content tab.

{{list partial:"partials/team-member.html"}}

The above example shows the List Component form on the right, and a modal used for creating new list items within the Page Content tab to the left.

Plugins

Saber has a robust plugin system that allows software developers to create powerful applications and features to enhance your website. I built a plugin called Data Sets that gives you the ability to create database tables with rows of data from within Saber's Editor, and afterwards, use that data to display filtered lists of content on a web page using the List Component. There's another plugin that allows you to configure and enable CORS response headers, and another plugin that lets you export/backup all your web pages, website settings, and multi-lingual content to a zip file. There is a list of all available plugins for Saber on this website as well.

User Security

Saber comes with a User Management & Security Groups System. Administrators can assign security groups to specific users and you can protect web pages by assigning security groups to them as well. Security Groups contain a list of keys that unlock features within Saber. Such features include Website Settings, Page Settings, User Management, Security Management, and Page Editor functionality. Plugins can take advantage of the Security Group System by creating their own keys that enable plugin features when the keys are assigned to a security group.

Future Development

I'm going to focus a lot of my time on building a community and giving web designers the tools to upload & share template websites that can then be downloaded and installed from within Saber. I also want to add more advanced features to Saber like accessibility & SEO tools, detailed analytics, and a social networking plugin.

Sponsorships!

If you are interested in using Saber, even if you'd just like to experiment, please sponsor our company Datasilk at GitHub Sponsors. Once you sponsor Datasilk with a minimum of $5, you will be sent an email with a compiled version of Saber & all available plugins for Saber (also compiled) for Windows, Linux, and Docker, and every time I compile a new version of Saber, you will be sent another email. Once Datasilk sponsorships reach a total of $2,000, the source code will be made public on GitHub and anyone will be able to collaborate with me on Saber.

Datasilk is a company I started on GitHub in 2015 to consolidate all of my open-source projects. Since starting Datasilk, I've created over 30 repositories for projects I am actively working on, including Saber.

Final Thoughts

There is a lot of potential with Saber, and I would dare to say that Saber is a next-generation CMS. If this project excites you, please let me know what you think about Saber and if it could potentially be used in any of your upcoming projects.

If you've read this far, thank you for having an interest in one of my passions. I really appreciate your time.

Sincerely,
Mark Entingh


Comments