Create a custom action
Create a custom filter
Create custom template filters to change the way variables are rendered in your templates. By following some simple rules, Zotonic will automatically find the…
Create a custom model
In this chapter we will look at how to implement a model around the The Open Movie Database (OMDB) API.
Create a custom controller
Zotonic comes with a large collection controllers that cover many use cases, so you’ll probably have to resort to custom controllers less often than you may be…
Custom pivots
Search can only sort and filter on resources that actually have a database column. Zotonic’s resources are stored in a serialized form. This allows you to very…
Create a custom tag
Custom tags, internally called scomps , are module-defined tags, which are used when the logic is too complex to be executed in templates.
Custom search
Implement a custom search by observing the search_query notification in your module. Imagine you want to search cookies in your database that either have…
Pivot Templates
Search uses database indices on special pivot columns and full text fields.
Writing your own module
Overriding Zotonic
This chapter describes how to override the templates, styling and logic provided by Zotonic.
Execute tasks asynchronously using the task queue
The Zotonic task queue lets applications perform tasks asynchronously.
Icons in templates
Zotonic provides a couple of ways to show icons in templates:
Logging to Logstash
Logstash is often used for log centralization and analysis. This cookbook describes how to set up Zotonic for logging to Logstash over UDP. As mentioned in the…
How to customise error pages
Specific error pages Zotonic’s controller_http_error first tries to find an error page template that is specific for the HTTP status code, named templates…
Exometer metrics
Zotonic comes with a system for collecting and exporting metrics (such as how much memory is used, how many database requests were made, etc.) called Exometer.

Just enough… Cookbooks Shell cookbook