The application creator's reading path
This page is for application creators who want to learn in order. Six stages take you from a first extension to an application in production. Each stage ends with what you should be able to do.
Stage 1: orientation
- Exponential as an application platform
- Architecture for application creators
- Setting up a development environment
- Develop with Git
You can: run a local installation and explain how a request reaches a view.
Stage 2: the first extension
- Your first extension
- Anatomy of an extension
- Settings and INI files in your application
- Autoloads and class naming
- RAD tools: building faster
You can: create, activate and change an extension with a module, a template and settings.
Stage 3: screens and templates
- Custom modules and views and module.php reference
- View results, templates and the pagelayout
- Policy functions and limitations
- Forms, CSRF protection and HTTP input
- Fetch functions, Writing your own fetch function
- Writing template operators, Template functions, includes and cache blocks
You can: build screens with forms and permissions, and give templates your data.
Stage 4: data and processes
- The content API in PHP, Creating and updating content in code
- Persistent objects and custom tables, Database access and SQL, Database schema and .dba files
- Writing a custom datatype, The datatype life cycle
- Workflows, triggers and events, Writing a workflow event type
- Cronjobs for applications, Writing a cronjob script, Console commands, CLI scripts
- Queues with expqueue, Content jobs, Background work
You can: store and change data safely, hook into publishing, and run work in the background.
Stage 5: integration
- REST API v1 and v2, OAuth and API keys
- JSON endpoints with ezjscore, Remote services with expservices
- Headless Exponential
- Notifications and mail from applications
- Exponential Intelligence for applications, Extending Exponential Intelligence
You can: connect other programs and AI assistance to your application.
Stage 6: quality, release and production
- Security for applications, Content Security Policy for your code, Input validation and output escaping, Access control in code
- Testing applications, DB-less PHPUnit tests, Continuous integration for extensions, Debugging and logs
- Packaging your application as an extension, Composer packages and Packagist, Versions and releases, Content packages
- Deploying with Velocity, A deployment pipeline, Environment settings and secrets
- Scaling applications, Caching in applications, Clustering and shared storage, Profiling and performance
- Symfony and the legacy bridge, when your project spans both stacks
You can: ship a tested, secure, versioned extension and run it in production.
Going further
The standards describe the rules and patterns of the code base; the website creators' section covers site building; contributing back to the project starts with Develop with Git and Working with the community.
Related pages
- Application creators: start here
- Application creators: frequently asked questions
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.