This feature is considered complete at this point. The feature may still have a flag or two missing and is expected to still be tested to find out whether it still has some bugs. Other than that, it is nearly ready for a full release.

See a complete list of features sorted by Snap! Websites Development Status

When sending the user to your website, it is possible to request the website to add or remove items to the e-Commerce cart. This is done using links build as a set of commands as defined here.

The cart understands the special query string named "cart". The string is built with a set of letters and parameters. The letter 'p' stands for product and it is the activator, meaning that all the parameters prior apply to this 'p', then the parameters get reset. For this reason, you generally want the 'p' command last.

Note that the query string is interpreted ...


A standalone tool running in the background of all your computers in a Snap! cluster, automatically started by systemd as a service. This tool gathers data to report about the current and past health of each server. Contrary to a backend, this tool is expected to run on ALL servers so we can have a better idea of how they all run and especially be warned about problems such as high CPU usage or disk filling up.

The data gathered includes:

  • Report by Email (Done)
    • Requires presence of an MTA (reported in the snapmanager.cgi Watchdog tab)
  • Network ...

The following is a list of HTML meta tags and links we want to support in Core. More will be added with time and some will be removed as their corresponding reference disappear.

Many of the links are defined by RFC 5988. Some are specific to a feature (icon, hub) and others are defined in Core (top, up, next, previous...)

Note that the Dublin Core meta tags were introduced with "dc." before. They now use "dcterm." instead.


We heavily use AJAX to allow immediate editing of all the page content. Pages do not require JavaScript to be read, but any work on a page requires full JavaScript functionality. The code sends POST and at times GET messages to the server to maintain the page as expected and keep the server synchronized.

For example, you are able to log in a page using AJAX so the page doesn't need to be fully refreshed. Similarly, editing the title of a page just requires a click on that title.

We have to think about several side effects of using AJAX:

  • All AJAX code should ...

Firewall feature

Administrators to connect on a different port

Note: This feature may not work well on a multi-site1 installation.

When setting up your website you could have an Apache setting that let your administrators access the site via port 8888 instead of 80 or 443. Then setup the firewall to block all users except those administrators from connecting on port 8888.

Accepting a log in from the administrator(s) only ...

  • 1. Multi-site in the sense multiple websites on the same computer, and also multiple computers that may reply to the requests. In other words, the problem applies to both cases!


Having a pop-up instead of any other type of message box will allow use to (1) have the box be stationary (z-index of 1 or more, fixed position, etc.); and (2) have ONE message box for ALL websites, which means a lot of time saved since you won't have to recreate a different box for each theme. Also, when not an error/warning message, we want to have a countdown and auto-close feature.

All the themes need to be capable of showing messages, preferably near the top, but it could also be a popup box like the default CSS offers. (Especially for long forms, we may ...

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly