# Theme Structure
The default Sage structure is intended to provide a sane starting point for both small and large WordPress sites alike.
Where a file or class is located is ultimately decided by you. As long as Composer can autoload the class or you have modified the necessary paths in your configuration, things should work as expected.
# The Root Directory
# The App Directory
app directory contains the core code and functionality of your theme. Almost everything other than your views and assets will take place in this directory.
# The Public Directory
public directory contains the compiled assets for your theme. This directory will never be manually modified.
# The Node Modules Directory
node_modules directory contains your Node (opens new window) dependencies used to build your assets during development or for production. This folder is automatically generated and should not be modified.
Do Not Upload
Not under any circumstance should there ever be a need to upload this folder or any of its contents to a live production server. It's a security risk, and a waste of time.
# The Resources Directory
# The Vendor Directory
vendor directory contains your Composer (opens new window) dependencies and autoloader. This directory is automatically generated and should not be modified.
# The App Directory
The majority of your theme functionality lives in the
app directory. By default, this directory is namespaced under
App and is automaticaally loaded by Composer using the PSR-4 autoloading standard (opens new window).
app directory contains multiple additional directories such as
Providers as well as configuration (
setup.php) and filters (
# The View Directory
View folder contains functionality pertaining to your Blade templates including Composers and Components.
# The Providers Directory
Providers directory contain all of the service providers (opens new window) for your theme. If you are familiar with Laravel, this allows you to bind services to the Acorn container to take advantage of the Laravel ecosystem within your theme.
This functionality can also be extracted into packages.