Enact's folder structure

Understanding what goes where


This is where your public assets are stored, such as images, data files, CSS, javascript. Anything uploaded via an asset group will live somewhere in this folder. Note that files stored in public are accessible via your site url such as http://yoursite.com/img/picture.jpg.


This is where the core code base that powers Enact lives. When performing updates this is the folder that will be updated and replaced. You will most likely never need to snoop around in here, unless you are going to be developing some plugins, in which case a little knowledge of the engine may be preferred.


All your site template files live in this folder and it's where you will spend most of your time. On install you will notice there are two files already included:

  • _layout.html - This defines the structure of your layout which each page can extend.

  • index.html - This is the placeholder for your homepage.


This is where configuration files that alter the way Enact works are stored.

  • config.php - General configuration settings, see configs.

  • db.php - Settings defining how to connect to your database.

  • aws.php - Settings defining how to connect to your Amazon Web Services (AWS) content delivery network and storage.

  • pickadate.json - Formats made available to your date and time fields.

  • video.json - Defines video providers and attributes for use with Video fields.

  • alloy/ - Contains Alloy/CKEditor files defining options for use with Rich Text fields.

  • translate.php - Does not exist by default, but created and used to perform translations for your copy.


This is where Enact stores file that are dynamically created and altered. Such as logs, template caches, sessions, database backups, and installation information.


This is where plugins that extend the functionality of Enact live. Each plugin should be contained in a single folder. Once a plugin is uploaded to the folder, it will become available to install via the plugin control panel.