Skip to content
Johan Janssens edited this page Oct 6, 2021 · 138 revisions

What is Joomlatools Pages?

Joomlatools Pages is an easy to use just-in-time page generator written in PHP and inspired by the ideas and concepts of flat-file CMS systems like Grav and Statamic, static site generators like Jekyll, Hugo, Gatsby and Headless CMS system like Strapi and Prismic etc.

Make no mistake, Pages is not a static site generator (SSG), Pages works in a dynamic, lazy and smart way. A page is just in time dynamically generated, cached and only re-generated when its content or layout has changed.

Pages is more than a page generator, it's an engine for creating websites, combining the power of a dynamic web application, with the performance of a static site generator.

Pages takes your custom HTML/CSS/JS and churns through layouts to create a page. Throughout that process, you can tweak how you want the page to look, what data gets displayed in the layout, all that is required is a little bit of PHP logic to bring it all together.

Pages is datasource agnostic, your data can come from anywhere, for example you could use, a Joomla component, a database table, a headless CMS or even a webservice like Airtable or Google Sheets.

Pages can both be installed in Joomla and be used standalone, it's 100% compatible with every Joomla template, and also offers it's own very powerful theme'ing system.

We built it to be your perfect buddy, and bring joy to web development, it doesn't get in your way and it's always there if you need it.

Why Joomlatools Pages?

For the rebuild of Joomlatools.com we needed a solution that would allow us to easily include, and update, content on our site. Using Joomla would make the site very hard to manage. Pages solves this in an elegant and simple way, not to mention it's super fast and easy to work with too!

What can Joomlatools Pages do?

A lot! Joomlatools Pages is more than just a page generator, Pages:

  • ... includes a new PHP based template system, supporting hierarchical layouts and partials, making it very easy to re-use templates and build more complex website designs.

  • ... offers a very simple and powerful way to use structured data files, with support for YAML, JSON, INI, PHP, XML and even MD (markdown).

  • ... can retrieve content from local (filesystem, database) and remote sources. Very easily get data out of any (Joomla) database table and or even from a headless CMS, or webservice.

  • ... can create modules on the fly and insert them into any module position defined by your template, Pages also makes it possible to define new module positions on the fly.

  • ... will automatically create Opengraph and Twitter meta data tags and add them to your page, and has out of the box support for canonical url's helping to improve SEO.

  • ... cures module-itis with a new mechanism for template overrides that lets you decorate the output in any component, on one or more Joomla pages, allowing to add modules or other content around the component's output.

  • ... has advanced support for HTTP caching, with out-of-the-box support for CDN' and build in support for static caching through Apache or Nginx and incremental cache revalidation and regeneration through the Mason cache revalidator

  • ... reduces pages transition time in the Browser by prefetching pages in the background either right before the user clicks on a link, or when a link becomes visible in the viewport.

  • ... has a completely re-built routing system to create internal links and handle both internal and external redirects.

  • ... comes with multisite and multilingual making it super easy to create different micro-sites, landing pages squeeze pages in multiple languages with a single Joomla installation!

  • ... allows you to use any Joomla template and/or gives you full control over you site design through custom themes. Choose per page what template to use, or roll your own! Easy as that.

And best of all ... Pages doesn't need a database to work, everything happens through the filesystem.

Who is Joomlatools Pages for?

Joomlatools Pages is for (lonely and extremely lazy) website developers and designers who create bespoke Joomla sites and have experience with HTML, JSON, Markdown and are in need of a like-minded buddy. If you know how to use notepad you can work with Pages, knowledge of PHP is not required to get started.

Contributing

Joomlatools Pages is an open source, community-driven project. Contributions are welcomed from everyone. We have contributing guidelines to help you get started.

Contributors

See the list of contributors. Get your own name in the list and earn eternal fame!

License

The software free as in freedom open-source software licensed under the GPLv3 license. The documentation is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.