Typed blocks and fields
A page is a list of blocks. Each block declares its fields — text, rich text, number, date, link, media, repeater — and validates on save.
No free-form HTML soupFeatures
Written as capabilities, not slogans. Each one exists because a site we operate needed it.
Editing
A page is a list of blocks. Each block declares its fields — text, rich text, number, date, link, media, repeater — and validates on save.
No free-form HTML soupA draft is rendered through the same publish path as the live page, so what you approve is what ships.
Same renderer, not a mockEvery save is a revision with author and timestamp. Compare any two, restore one, publish the restored state.
Nothing is lost silentlySet a date to publish or to withdraw. The queue does the work; no visitor request triggers it.
Queue drivenUploads are re-encoded to WebP and AVIF, cut to the sizes the layout uses, and written into the markup with width and height.
No layout shiftThe menu is content. Renaming a page writes the redirect automatically, so old addresses keep resolving.
Addresses stay validOperating
Editor, reviewer and administrator. The login follows the CTPF standard layout and always carries a two-factor field.
/controller/loginEach site keeps its own navigation, theme tokens, legal pages and publish target.
One backendThe index is built at publish time and shipped as a file, so on-site search costs no database at request time.
Built, not queriedOther CTPF systems read published content; an external process can file new content for review.
Token basedSitemap, feeds and the 403 / 404 / 50x pages are part of the build, not an afterthought in the vhost.
Complete treeA release is written beside the live tree and switched over in one step. The previous release stays for the way back.
Switch, do not patchCDPCMS is operated as part of the CDP platform by CertThor PlatForms Ltd.