TomatoCMS is built on top of newest technologies for building website. There're Zend Framework, jQuery and 960grid
This is one of high level PHP frameworks. It ensures that TomatoCMS follows Model-View-Controller architecture, object oriented design principle.

It's probably that jQuery is most popular javascript library. As its slogan "Write less, do more", developing scripts in TomatoCMS becomes more easy than ever. In addition, you can use many available plugins provided by jQuery and other developers.

TomatoCMS uses 960grid to layout the web pages for both front-end and back-end sections. It's convenient to customize the layout. You'll feel more easy to split website into two columns, three columns and four columns.

TomatoCMS considers web page made of multiple widgets. Layout Editor allows you to manage layout of page easily.
Adding this widget to your page will allows visitor to drag and drop widgets on front-end. The update will be saved on client and on next visit, users still see the layout as recently changed.
You can create page from multiple nested containers. Full-row containers can be dragged and dropped to change their order on page. You can resize width of container. Layout Editor allows you to drag widgets and drop them in same container or between containers. Off course, you can remove any widgets from container whenever you don't want to show it on page. Removing container from page will remove all widgets belong to selected container.

You can make settings for each widget on page. After setting, you can preview widget then switch to config mode. Layout Editor provides ability of previewing entire page.

With built-in permission system based on ACL archirecture, you can set permission for role (group) or given user to separated modules.

Powered by IpLock plugin, you can prevent accessing from configurable IP addresses. This plugin, off course, can be turned on or off in back-end.

It's easy to not allow user to access the back-end section from given IP addresses.

TomatoCMS support modular architecture. Each module has separated permission sets, features and language data. The independent of modules will make developing modules more easy.
Anyway, in built-in modules, you will realize that some modules dependent on other one.
Just name a few:

TomatoCMS support plugin, hook architecture.
In back-end, you can install or uninstall plugins, hooks. Beside this, it allows you to upload a plugin or hook from your local computer to your site.
There're two level of plugin, hook:


You can see the full list of availables plugins, hooks of TomatoCMS in back-end section. Below is some of them:
TomatoCMS also support template and skin. Each site may has many templates and each template can be used with multiple skins. You can switch template/skin in back-end easily.
Default TomatoCMS package comes with two templates:

With power of Layout Editor, it's easy for you to change the layout of page from built-in templates above. In back-end, you can change the skin by updating associated CSS files.
Also, TomatoCMS allows you to change the basic interface elements as logo,
favi icon 
Based on TomatoCMS architecture, frontend developers can customize given template, skin without rewriting PHP code, just update HTML and CSS code.
TomatoCMS uses Zend_Layout to switch the layoutTomatoCMS support multilingual in both front-end and back-end sections. It provides two build-in languages which are English (default) and Tiếng Việt.
Language files in modules and widgets are separated.

In back-end of TomatoCMS, you can create new language file or update given one.
The language file is simple text file (in format of ini), hence you can update it manually if you want.
TomatoCMS built-in feature support RTL (Right-To-Left) languages as Arabic, Iranian, etc 

TomatoCMS support SEO better because its default URLs are friendly.
Developer can manually customize URLs to more friendly one than default 
You can set meta keyword, meta description tags in back-end. These tags also set automatically based on the page user view. For example, when user view details of article, the meta keyword, meta descriptions tags will be taken from title and description of current article.
RSS is already available for news module. If user view an article or an category by Firefox browser, user will see the feed icon in address bar.

TomatoCMS database schema has been optimized to make your site run quicker.
In addition, TomatoCMS support replication database connection which separate connection to master and slave servers.
TomatoCMS support file caching. In back-end, you can see the list of cached data grouped by tags.
Cache manager section allows you to remove all cached date belong to given tag or clear all cache.
If you use MemCache, TomatoCMS only allows you to empty cache due to the some limitions of MemCache system (hasn't ability of tagging cache, for example).
Layout Editor allows you to cache any widget on page on given lifetime. Also, you can set loading any widget by Ajax which may improve loading speed.

Using Layout Editor, you can put advertising zone at any position you like. Each zone can consist of multiple banners. Also, you can display same banner on multiple pages.
TomatoCMS support banner in format of images, flash based (*.swf, *.flv) and HTML content. Therefore, you can use Google Adsense code in your banner HTML content.
TomatoCMS support hierarchical category with unlimited level. The database was also optimized so the high level category system does not effect on performance of your site.

All comments will be shown to user if it is already activated.
TomatoCMS support nested comments with unlimited level. You can see the list of comments in thread in both front-end and back-end sections.
The comment system will show avatar of commenters by default. The avatar is taken from Gravatar.

Powered by hook architecture, you can apply various hooks to format the content of comments. Some of built-in hooks are:
You can upload images and video clips. Use helpers from upload module, you can upload multiple images at the same time. Thumbnails were generated automatically.
You can organize photos, clips by set. Each set can consist of many photos, and a photo may belong to various sets. You can update the title and description for photo, clip or set.

In front-end, you can view all photos in same set or view a slide that contain latest photos.

TomatoCMS uses TinyMCE. It's WYSIWYG (What You See Is What You Get) editor and very easy to use.

While adding or updating article, you can upload multiple images at the same time without reloading page. You can insert thumbnails to article's content and select uploaded image as presentation image of article. Also, you can insert clip to article's content.
Like other modules, an article has to be activated before publishing. You can save article as draft and publish it later.
You can select multiple categories for article. It also allows you to set the article as sticky one of selected category.
TomatoCMS automatically adds RSS link to head section of your site when user view article details or category page.
You can create a poll which allows user to select only one or many options.
User can vote and see the result on page without reloading webpage or opening new popup window.


TomatoCMS allows you to tag various item including article, photo, clip, etc.
While adding tag for given item, you don't have to remeber exactly tag. The system will suggest list of tags like your input

There's widget named TagCloud that list tags in random orders. Clicking on each tag will redirect to the page showing all items tagged by the selected tag.

In back-end, you can search, add or remove tag.
TomatoCMS uses Zend_Tag_Cloud to show the tag cloud.This module allows you to upload images from other module as ad, news, multimedia.
It supports most popular image formats including png, jpg, jpeg and png.
You can upload multiple images at the same time without reloading page. The number of images you can upload at the same time depend on the maximum upload size of your server.

The uploading generated thumbnails in various sizes automatically. You can configure the thumbnail sizes in back-end. TomatoCMS supports both general GD and advanced ImageMagick (*) libraries for processing images.
* If you want to use ImageMagick, your server have to install ImageMagick library and imagick extension.