Skip to content

v0.1.0: Content Management, Faster UI, Gems

Towards faster distribution: extracting gems

Until today, your entire Prologue was distributed as one template: every relevant file copied over on the first install, then copied, matched or diffed for every subsequent Prologue version. While this model gives you ultimate flexibility, it makes distribution more complicated and error-prone.

That’s why, in this version, I decided to start extracting stable parts of the framework into gems, which means those collections of files are managed remotely, and your update just needs to switch a version number. The first candidate is prologue-ui, which covers the Component Kit, base CSS styles, some view helpers, and the icon collection.

Of course, everything is extracting with flexibility in mind: you’ll still be able to customize and override these components, override icons and styles.

Owning the view layer

While extracting the UI, I decided to take an optimization pass at view rendering. The library Prologue uses for views and components, Phlex, had a lot of speed up potential, and hasn’t been actively updated in a while, which I decided to interpret as a signal to proactively act.

The fork cuts down any parts of the library that Prologue doesn’t use, some compatibility layers that it doesn’t need, and includes some goodies that were previously handled by yet other third-party libraries. On top of that, a series of small optimizations, with others to come in a future release.

Prologue is committed to offering the fastest and most powerful view rendering tech available for Rails applications.

Improving content management

Building on top of the existing Page API that already handles static (backed by views in the codebase) and dynamic pages (edited in-app), v0.1.0 brings better Collection management. You’ll be able to attach any page to one or multiple collections.

These changes integrate seamlessly with Sitemaps, and other parts of the framework that rely on Pages.

Misc. changes

  • Ruby bumped to 4.0.7 and Rails to 8.1.4.
  • Improved and simplified CI/Deploy GitHub pipeline.