Product support

Visit this product's website for support.


Adds Single Page Application like features to the OctoberCMS frontend using the OctoberCMS AJAX framework. More specifically, it enables (through the adding of a component to your layout) loading and updating page content through AJAX.


This plugin requires the Ajax Framework to be included in your layout/page in order to handle requests.

Current Support

Only loading new pages (Static Pages or CMS Pages, any URL that is controlled by the CMS) is currently supported. Components on dynamically loaded pages will also work, and assets will be dynamically added and removed as required.


To install from the Marketplace, click on the "Add to Project" button and then select the project you wish to add it to before updating the project to pull in the plugin.

To install from the backend, go to Settings -> Updates & Plugins -> Install Plugins and then search for LukeTowers.EasySPA.

To install from the repository, clone it into plugins/luketowers/easyspa and then run composer update from your project root in order to pull in the dependencies.

To install it with Composer, run composer require luketowers/oc-easyspa-plugin from your project root.


To use this plugin, simply attach the [easySPA] component to any layouts that you want to be able to have their pages loaded over AJAX. The loader needs to be attached to an element on the page that contains anchor tags with the URLs to the pages that are to be loaded. This is done by adding the data-control="easy-spa-loader" attribute onto the containing element. There is also an optional attribute data-refresh-partials that can be used to define additional partials that should be refreshed when the page is load in the form of partialPath1:#partialSelector1 with additional partials appended with an & symbol.

Example Layout:

description="Default layout"
    <body data-control="easy-spa-loader" data-refresh-partials="site/header:#site-header">
        <header id="site-header">
            {% partial 'site/header' %}

        {% page %}

  • Found the plugin useful on 12 Dec, 2019

    Nice plugin

  • Found the plugin useful on 22 Jul, 2019

    This plugin works great. I was initially concerned because my project is using mostly static pages using the Rainlab Pages plugin, but after reading the documentation about the ajax framework requirements to make sure everything was in place, everything is working as expected without any problems.


Fixed compatibility with Symfony\HttpFoundation >= 2.8.44

Sep 23, 2020


Added support for the History API (browser back and forward buttons)

Apr 25, 2018


Auto scroll to top on page load, minor bugfixes

Apr 25, 2018


Added Documentation & Updated License

Apr 25, 2018


Release Canditate

Apr 20, 2018


Initial version

Apr 20, 2018