particle-academy/fancy-cms
A Laravel CMS package from Particle Academy offering content management features for Fancy-based projects. Early-stage with minimal adoption and limited documentation, so review the source and test thoroughly before using it in production.
PageDoc/PageOp model, a pure reducer, wire-format codec, tree helpers, fractional ordering keys, and a renderer/emitter. Choosing it avoids building and maintaining that layer in-house when the frontend is fancy-cms-ui 0.8.PageOp variants, cycle detection, invalid-target rejection, and no-op refusal at the storage boundary support decisions about what edits the product can safely expose — reordering, nesting, style changes, and content insertion — without corrupting stored documents.fancy-cms-ui 0.8 (theme tokens, responsive stack/grid controls, auto-fit grids, per-side spacing, sizing, sticky, visibility, style gates, fractional keys) means roadmap items can assume consistent server and client behavior rather than divergent rendering.data-cms handle onto semantic elements (p, h1–h6, a, ul/ol, landmarks). That supports decisions to ship accessible, crawlable output by default and to set margins explicitly where browser defaults differ.PageJson preserves empty objects vs. lists, numeric map keys, and opaque values, and PageDoc::apply validates before and after edits. This supports decisions about storing raw JSON documents, replaying inverse operations, and returning structured path errors to editors.seq; invalid targets, cycle moves, and non-permutation root reorders leave it unchanged. That supports undo/redo and change-tracking design, though not full realtime multi-user collaboration.Adopt when:
fancy-cms-ui 0.8 on the frontend, and need the PHP side to validate, store, and render page documents.Look elsewhere or defer when:
fancy-cms-ui, or you are on a version earlier than 0.8 — the operation model and style parity are tied to that editor contract.seq is a per-document counter, not CRDT/OT conflict resolution.div[data-cms] and cannot absorb the v0.4.0 breaking change to [data-cms] and explicit margin resets.fancy-cms-ui wire contract.Executives: This package gives us the server-side backbone for our visual page builder — validation, safe rendering, and parity with the frontend editor — so we can ship editor features faster with less security and compliance risk. It is a focused, dependency-free component backed by 87 tests and cross-runtime parity gates, which is cheaper and lower-risk than a bespoke build.
Engineering: It provides a deterministic reducer, a validating document model with structured path errors, iterative cycle detection, fractional keys, inverse operations, and a JSON codec that preserves empty-object/list distinctions and numeric map keys. The renderer emits semantic HTML and drops invalid CSS declarations at the emitter, so we do not need a separate CSS sanitizer for styled content. The v0.4.0 breaking change is contained: update div[data-cms] selectors to [data-cms] and set margins explicitly where semantic-element defaults differ.
Product and Design: Output is semantic by default — headings, paragraphs, links, lists, landmarks — which helps accessibility and SEO. Responsive controls, theme tokens, auto-fit grids, per-side spacing, sizing, sticky, and visibility match the JS editor, so design intent renders consistently on the server. The stable data-cms handle remains available for targeting, now on the semantic element rather than always a div.
How can I help you explore Laravel packages today?