Joomlatools Pages, the page generator for Joomla

Some of you will remember that earlier last year we promised you a new Joomla developer tool. We’ve been working on it for months, most of 2018 and 2019 in-fact, and after lots of thinkering and fine-tuning we are finally ready to share it.

Without further ado, we'd like to introduce you to Joomlatools Pages, the page generator for Joomla. We're super excited to finally announce it in the wild. We hope and believe it will be a game changer for Joomla integrators and developers alike.

What is Pages?

Joomlatools Pages is an easy to use 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.

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

How does Pages work?

Pages takes your Markdown files, custom HTML or PHP code churns through layouts to create a page, then injects that back into your Joomla site. Throughout that process, you can tweak how you want the page to look, what data gets displayed in the layout, and more.

Pages has a flat-file bias, and doesn't require a database to work. The content you’ll render on your site is generally written using Markdown, but you can use any kind of data source, for example you could use, a Joomla component, a database table, a headless CMS like Strapi, or even a webservice like Airtable or Google Sheets.

Pages works just like any regular frontend Joomla component, it's 100% compatible with every Joomla template. We built it so that it doesn't get in your way, it's there if you need it.

Why Pages?

Pages was born out of a need to scratch our own itch. The previous version of Joomlatools.com was built using Jekyl, primarily because it allowed us to create a very fast and easy to maintain site with all content stored in Git using markdown files.

Being a Joomla company it felt a bit like shame-on-us that our own site didn't use Joomla, we couldn't let it slide, we really had to fix this! However, we didn't want to sacrifice on the performance and flexibility that Jekyll offers. Challenge accepted, nothing is impossible, after all it's only code, so in early May 2018 Joomlatools Pages 0.1.0 was born!

A year later we re-launched Joomlatools.com on Pages v0.7.0. Today our site is running the latest v0.17.0 release and you'll have noticed that it's blisteringly fast, this is in large part down to the power of Joomlatools Pages.

Who is Pages for?

Joomlatools Pages is for every website developer and designer that creates bespoke Joomla sites and has experience with HTML, JSON, Markdown, etc. In a nutshell, if you know how to use notepad you can build a site with Pages, knowledge of PHP is not required at all to get started!

Getting Started

Pages can already do a lot and it'll do even more! Too much to cover right now so let's just get you started. Have you got 15min to spare? Installation is a breeze. Here we go!

Installation

We recommend that you download and install Joomlatools Pages using the Joomla Installer, if you want to play with it on your own site. For the developers among you, installation using composer or Joomlatools Console is also possible.

Don't be alarmed, once installed don't expect to find an administrator menu item. It's not there and that's perfectly fine. After all, you are now playing with the big boys, that means no UI's! Capisce?!

Creating your first page

In the root folder of your Joomla installation, create the following folder structure:

-/joomlatools-pages
    -/pages

To create a new page, simply go to your /joomlatools-pages/pages directory and add a new file. In this example, we'll use the file hello.html but you can name it anything you like. Open the file in a text editor and copy/paste the following code snippet:

<h3>Hello World!</h3>
<p>Welcome to my new page.</p>

Now save this, (make sure you have SEF enabled in Joomla), then in your browser go to http://example.com/index.php/hello.

If you also have url rewriting enabled (recommended) in Joomla you can drop the /index.php and use http://example.com/hello instead.

That's it! You're done! That was easy right?

Want to do a bit more? Here are some simple examples on how to create a Markdown page, set the page title and description and how to use PHP in a page.

Learning more

One for the diary: Johan's going to be joining the Joomlashack weekly online Joomla meetup on 7th May 2020, to talk about Joomlatools Pages, why not register for the webinar and join him?

We're very hard at work creating documentation for Pages in the Github wiki, any features that are not yet in the wiki are documented in the pull requests, just check the releases in Github.

Although we have done our best to cover as much as possible to get you started, it is inevitable that there will be questions we have not (yet) answered. We want to be as accessible as possible, so you can hop on to the discussions on Github to ask questions about Pages.

Want to be kept informed? Become a watcher on Github or follow our developer news on facebook or twitter.

We welcome any feedback to help us make Joomlatools Pages even better, contributions are most welcome too! For more info check our contributor guidelines.

Happy coding!