Forum for discussing general topics related to Couch.
4 posts Page 1 of 1
Hi guys :),

I praise CouchCMS for its simplicity :mrgreen: on the surface yet how deep it expands under the hood giving amazing options for programmers. So I decided to give a shot at some new features that might be interesting to play with. The only problem is of course resources, but that I have plenty; so what really interests me is actually when the people that love Couch would want to have said features, or if any of those are actually needed. It's a waste to kick a dead horse, so your feedback should definitely clarify this moment for me. Take a look at screenshots and let me know anything. I got a name for the feature pack — Antrazit.

:arrow: Create fields the easy way i.e. via a constuctor in Admin panel.

Selector for type.png
Selector for type.png (9.91 KiB) Viewed 9076 times

So basically, we have a masterpage where cloned pages are "fields". Click-clack, edit a few properties and a field is ready to.. what? Now it's a 2-way outcome: either a 'constructed field' generates a raw code to become copy-pasted to a php file.. or it can be just "attached" to any masterpage. I am playing with the second option. Not just some masterpage, but any masterpage can receive our field. How cool is that?

Opt values building.png
Opt values building.png (14.99 KiB) Viewed 9076 times

:arrow: Fields appear by your rules where you want

Page-Master descr.png
Page-Master descr.png (7.38 KiB) Viewed 9076 times

An input is like a gum, we can slap it onto something by our rules (here I must bow to how well Couch is coded internally). I am thinking establishing the rule in a Page-Master tool to let fields appear only, say, on pages of a certain folder. Like editing a Monitor does not show you fields of Laptops. Similar to how stubs work, but in this case it's dynamic. A cherry on top is that you are not limited by a 'masterpage-folder' setup, but can slap an input on pages with a certain value of a fixed field (a fixed field in my jargon is any hard-coded field in masterpage).

:oops: Before we go deeper, I must say that there is very little PHP required to make all processing of this. Just a few lines in a small addon that reads values from cloned pages and sets proper variables. Processing is done with our well known Couch code. So, please don't be scared right away — as Antrazit is not yet another 'unmanageable' monster, quite the opposite — everything is easily edited and reconfigured. Raw PHP only does a small limited set of operations in this system and will never need no attention. :) Processing via Couch code at the very least makes things easily readable and therefore much easier to tweak if it comes to it.

Yeah, blah blah etc.. What are the actual reasons that can justify your attention?

1. People can be hired at lower cost to create fields in Admin panel. Tweaking a masterpage setup will not require a night call to a superadmin.

Lately, Couch became a system for super-qualified superadmins that know all parameters from raw PHP source code. It's so expensive to get the knowledge that many good features are simply never used. Instead, if everything is visible and can be clicked-through it seriously lowers the costs. Documentation will be needed rarely.

2. More ways to earn a living e.g. by letting people play with their admin panels. A superadmin (webdev firm) will be focused more on higher-paying tasks e.g. create more data-storing and data-processing plugs for all kinds of forms that clients will design themselves. Just an example of a data-processing plug that I already designed for Antrazit:

:arrow: Searchable data expansion — save text or numeric or save both text and numeric. A single field takes a value "RTX4090" and saves "4090" as numeric data and "RTX4090" as text data, boosting search and filter results. This is possible due to the fact that all fields have not one but 2 storages at the same time. How cool is this?

Also variadic fields — checkboxes, radio, dropdown — have not one but 2 values: one mandatory value, and one optional value. If a site owner decides to use both, then search and filter will be more efficient for that particular field where she preemptively created such option variants.

Processing plugs could do a lot with data sent to admin panel upon page form save. Having dynamic fields reconfigured in admin panel creates a demand for processing code. Here you charge for writing scripts in Couch code.

3. Finally become business-friendly. That means a few things:

:arrow: Unlimited-depth history of values. Metadata of who and when edited data.

Antrazit fields do not overwrite or delete their data. System resembles a blockchain — adds more values, unpublishes old values, adds metadata with description of events, like name of Administrator who changed the value.

:arrow: Unrestrained number of supported locales with built-in i18n.

It's not a pain anymore to add 10 variants for Color labels for Visitors of webstore and also have a few languages in Admin-panel so your new employee Administrator does not need to be a multi-lang speaker to manage product stock. Fields have labels, descriptions, explanatory instructions added in many languages easily, without coding. I may exagerate here a bit, but building a multi-lang webstore was always painful before.

:arrow: Grouping of fields. Basically it means that making Admin panels can become a business on a conveyer, not an artisan experience.

Groups feature lets you take a number of predefined sets of fields to quickly build a template (or a few) of any type and complexity. Instead of adding fields one by one, add one or more groups and job's done. Things like display order is easily solved by drag and drop reposition.

:arrow: Code is open source but *not as defenselessly vulnerable* as everyone used to. Antrazit allows you to pack plugs and scripts into a precompiled state internally used by CouchCMS itself for funcs, so that gives a little bit more control of how you distribute work. There can not be any kind of encryption though, but the way code is processed by Couch parser and serialized, you can be sure it is not easy to re-engineer and modify without permission your scripts and plugs. Your data-processing code (not basic fields, of course) can be distributed in a human-unreadable (still text) form and thus hopefully cover developing and other business costs. Antrazit itself is a huge monolithic object written in simple Couch code, which I intend to give without pre-compilation to serious developers, giving everyone else use it for free. How really cool is this?

I am only starting to scratch the surface about Antrazit. Everything I wrote so far is already tested and can work as designed. More importantly every bit of complication with design of the code is already a clear picture in my head as months passed with figuring the best practice in the long term for search, filter, i18n, data saving etc. Making this system btw goes into a 5-figure expense, even by Russia's average cost of living, not even counting lost opportunities, hehe. But Couch is soooo fun to play with, so be it. It's not too late to hit the brakes though, if noone needs this. I promise not to cry for too long, although this could've made me sad for a few days. I've been on this for 2023 and look into mid-2024 to have that completed without anyones help, but I appreciate and ready to look at other options. It's perhaps time to get some rest for a few weeks and gather your opinions.

I hope with dynamic fields the very obvious application would be making an absolute webtool to create all stock and custom editable fields, tags and templates for Couch with webforms. Rarely one will ever need to read documentation past the first couple of chapters having that, agree? Of course, the main goal is for webstores, carts, and multi-lang solutions.

If you guys have any idea how fast you want something like this to appear as an alpha-beta on your horizon and how you would use it in your work, let me know, that will definitely make a change while it is not too late.

Take a look at a few teaser screenshots here.


I must say I am really stoked by what you are doing, Anton :)
Waiting to see the results.
Reserved for QA
Wow! Waiting.
4 posts Page 1 of 1