Konstantin Narkhov
Pheix 0.8.109
@condemnedcell
konstantinnarkhov.pro

Pheix CMS is β-released

19, february 2021

Today I have the short Pheix content management system β-release pitch with some technical and actually non-technical details.

Hola, folks!

I have started the work on Pheix about 3 years age, in 2018. It has begun as a challenge: my plan was to make a simple port of Perl5 CMS to Perl6. Yep, in 2018 it was Perl6 yet. Well, step-by-step the route was changing and in 2019 I have started the experiments with blockchain technology, early results were presented at Swiss Perl Workshop 2019, that was a talk «Pheix: Raku-based CMS with data storing on blockchain».

In 2020 the private beta — I suppose more or less stable version for private testing — was released. Regarding this milestone I have performed the talk about «Creating secure decentralized content management systems on Ethereum blockchain with Raku» at The Perl Conference in the Cloud 2020.

Today I'm happy to announce the official public β-release! The new milestone is passed. I have already a few projects driven by Pheix in production, latest one was presented a few days ago at FOSDEM 2021 — check out the talk «Programming Digital Audio Server backend with Raku».

Ok, let's go back from historical notes to actual β-release features.


Breaking changes

Traditionally the beta version is published once all scheduled major features have been implemented and released. I suppose several beta versions will be made available during this phase. As with any program beta release, now you have early access to new features and able to test them and give your feedback. It's very valuable at the final steps of the development.

Be the first to try upcoming Pheix content management system features! By reporting any bugs you encounter using this β-release, you will actually help to catch the bugs and go through the some curious and unsuspected cases.

That means you are likely to try Pheix as less stable, but closer to final version. The major Pheix β-release improvements are related to content rendering performance, blockchain support and overall look:

  • support FastCGI;
  • improve object management — there is the single template with variables (title, content, etc), we will speed up the application if these variables will be rendered at the first launch; also we need to create all static objects at first launch also;
  • do content rendering on client — use Riot JavaScript components library for rendering content with JS on client, it's based on REST API and in future will lead Pheix to true headless CMS;
  • add sample content management module Pheix::Addons::Embedded::User, obviously you are interacting with it on Pheix site :innocent:;
  • support Goerli test network, actually all blockchain unit tests can be performed on this testnet, you can check via goerli.etherscan.io how many transactions Pheix was committed since this functional was integrated (spoiler: 25,946 txs);
  • support Raku dist and perform zef instalment at Gitlab CD/CI;
  • add night mode skin — yep, geeks prefer night web surfing;

Ok, β-release is happend, what's next?

I'm working for full roadmap and today I would like to announce Pheix CMS release candidate 1. There will the basic breaking change: migrating from LZW::Revolnet compression module to Compress::Bzip2. I have done the compression efficiency investigation and finally compared LZW::Revolnet and Compress::Bzip2: the last one provides 3x better compression rate. Great boost up for the blockchain performance.

The next important update is related to Pheix distributive. Now Pheix includes everything you needed for deployment: generic module, start up script, web resources, configuration files, etc... I'm planning to split up a distro to Pheix raku module as the generic entity and Pheix deployment stuff as the dependency or addon.

Pheix RC1 UI will be extended with naive implementation of administration layer. Actually the big deal is to add this layer as Ethereum node interface, in this case we will got such node features as authorization and access level model out of the box. On other hand, this idea is required available private Ethereum node or full implementation of transaction signing at Net::Ethereum. So, this is still the point of discussion.

Also I'm permanently working on code cleaning and refactoring and RC1 will accumulate these kind of updates as well.


Epologue

Well, I think it was quite detailed β-release pitch and traditionally at the end i would like to invite you to Pheix development process, please contribute, fork, raise pull requests and review current source code base.

If you like my work, any concepts or ideas — do not hesitate to get in touch, any feedback is welcome and I am open for discussions. Also please donate, it will speed up the releases!

Blog entries

Check out latest blog entries: most interesting stories about past events & activities.

Quick feedback

Letters and spaces only