Skip to content
Johan Janssens edited this page Mar 10, 2021 · 31 revisions

Joomlatools Pages is opinionated software. Understanding its principles and whatnot will help fine-tune your intuition and help you understand how to take advantage of its efficiencies.

You may be used to content management systems (like Joomla) and platforms that have a long list of explicit pre-built features, or plugins that provide these features, like photo galleries, hero images, and so on.

Pages takes a different approach, that when combined with our “Bring Your Own HTML” core approach, enables you to build almost anything, like a box full of LEGO bricks.

Generate Pages not Sites

Pages is not a static site generator (SSG), it's a page generator for Joomla inspired by the ideas and concepts of flat-file CMS systems like Grav and Statamic and static site generators like Jekyll, Hugo, Gatsby, etc.

An SSG is a compromise between using a hand-coded static site and a full CMS. You generate an HTML-only website using raw data (such as Markdown files) and templates. The resulting build is transferred to your live server.

SSG have lots of drawbacks Pages implements some of the concepts found in SSG's, for example the collections concept of Jekyll or the use of YAML based frontmatter but without any of the drawbacks.

That doesn't make Pages a static site generator. The big difference between an SSG and Pages is that Pages only dynamically re-generates a page when its layout or content has changed.

  • In Joomla a page is generated each time it's requested, Joomla doesn't cache the page, which means it needs to generate it on each request.

  • In an SSG all pages for the whole site are generated each time the site is being built. Ones build all pages making up the site are uploaded to a web server.

Pages however works in a dynamic, smart and lazy way it re-generates cached pages only if the layout, or the data on the page as changed. This means pages are re-generated less frequent the using a SSG and there are no additional drawbacks or complexity in needing to re-upload it to a server. Its just works!

Your Data Comes First

At the core of Pages everything evolves around data. Pages has the ability to adapt to any datastore and currently offers support for 3 different data sources that can be used, no PHP code required:

  1. Filesystem
  2. Database (MySQL)
  3. Webservice

The build in webservice layer can talk to any webservice and supports, XML, JSON, CSV, PHP, INI, YAML, and even HTML. On top of that it offers out of the box support for JSONAPI v1 with full CRUD support making it very easy to connect to external applications, or even making a pages setup into a Headless CMS.

Additionally, Pages data layer can interface with any other Joomla component in 3 different ways:

  • By directly getting data out of the database tables from those components
  • By creating a database view that joins different database tables
  • By creating a custom collection (using PHP code) to interface with the API of a component.

Bring Your Own HTML

Pages doesn't enforce layout, specific HTML, or any styles of its own. That’s up to you (or a Joomla template or a Pages theme) to provide.

Every Pages setup — just like every fingerprint, person, and company in the world — is unique. This is not a platform for the generic web. This is a tool used to build your dreams.

Stick to the Code

Pages is not a product, it's a project for developers, integrators and hackers alike. Our goal is to help developers increase their joy and productivity and help make to create more powerful websites and web applications with Joomla.

We let the code do the talking. We favour incubating our ideas into working code while trying to avoid long winded discussions. The code will always have the last word.