DCPengine — Digital Content Publishing Engine

Perspective

ttCMS → DCPengine

CMSThe original DCP-Portal project was the inspiration for my first venture into content management systems. The result was ttCMS. I ended up owning both ttCMS and DCP-Portal. I still own the original DCP-Portal domains names. 

Both projects were leaders in the CMS space. They both shared first prize in the Byte magazine annual reviews.

Years of feature bloat caused me to re-evaluate the projects. Both projects were well beyond their purpose -- there were two problems with that. The obvious one is functional. The second, less obvious, is my participation in this process. That's not what I was about. I helped a fragmented industry shift from its core. I cancelled both projects.

I still had a need for software as the backbone to websites. The need was the same. Pages and articles supported by ads, weather and survey tools. The need was there, but not that great to stimulate a huge project. It went unfulfilled -- that is until I retired and had more time on my hands.

There were several promising projects I created. All were really specific though, too specific. I wanted something more transportable site to site, project to project. I wanted the abiity to support pages and posts (or articles). At the back of my mind was the need to support widgets in a simple way. 

It came together when I started to research articles for a municipal election. I ended up creating a website that checked off all of my requirements. Not just checked them off, but exceeded the requirements handily. 

With a few modifications, DCPengine was born. 100% of its code entirely new. Written for PHP 8.2 and up (and tested). I had thought about flat file support, but didn't want the complexity that creates -- actually the potential complexity. Flat file suggests a user can download, edit, and re-upload a fix. I didn't want that, I wanted more automation, more hands-off, and less "techie". I went with SQLite and an entirely new database extraction layer that capitalized on PDO. I want to make it clear, the structure is like like the older EzSQL abstraction that I used in ttCMS and DCP-portal. Just as simple, single file, object oriented.

I made a critical decision to stop using JQuery. I had been an avid JQuery supporter for many many years. It was consistent and had nearly no upgrade compatibility issues. But it was bloated and a bit slower than desirable. I finally went back to plain vanilla Javascript.

I also stopped resisting CSS frameworks. After a messed up attempt to use a competitive product, I went with Bootstrap. I mean, why argue with a 72% marketshare for a dwindling 0.4% marketshare product? I married it to my QuickSkin project. That means I am using a whole bunch of my projects in DCPengine: QuickSkin, PHPezDB, PHPmailEngine, and on a lesser basis, inputmask. 

OK, I need to explain inputmask .. it's not renamed yet, but it is my effort to replace a JQuery input mask library with a plain vanilla Javascript version. I didn't find one I liked, so I wrote one. I haven't settled on a name for it yet, but I am leaning to JSinputMask.  It's just a simple way to control user input on inputs. No callbacks, nothing overly fancy.

I've been working with DCPengine for some time now, I even have it live. I am more thrilled with this project than I was with ttCMS or DCP-Portal. It works, it's simple, and it solves a basic issue.


Latest Posts

Perspective

The original DCP-Portal project was the inspiration for my first venture into content management systems. The result was ttCMS. I ended up owning bot…

Read more : Perspective