Upgrade to Pro — share decks privately, control downloads, hide ads and more …

StripeCon 2020 - When is a CMS not a CMS?

Sam Minnée
September 23, 2020

StripeCon 2020 - When is a CMS not a CMS?

Silverstripe CMS is a great tool for much more than just content management. This talk provides a case-study in using Silverstripe CMS' "ModelAdmin" feature to build business applications (in this case a risk management application) and shares some lessons in what it means for CMS' value proposition and future.

Sam Minnée

September 23, 2020
Tweet

More Decks by Sam Minnée

Other Decks in Technology

Transcript

  1. When it’s Silverstripe CMS! When is a CMS not a

    CMS? Sam Minnée – StripeCon 2020
  2. My Talk Today • ModelAdmin case study: Risk Management app

    • Why is ModelAdmin a good choice • What is teaches us about Silverstripe CMS’ value • A little bit about what’s next for Silverstripe CMS
  3. • Flexibility • Moderately-sized organisations struggle with off-the-shelf tools, and

    heavy customisation / implementation is typical • Hypothesis: ModelAdmin gives you a custom app for an investment similar to purchasing and implementing one an ‘enterprise SaaS’ option Why build our own tools?
  4. • Cheap • Easy • Not very flexible • Relationships

    between data, especially many-many, are weak Spreadsheet
  5. Enterprise SaaS Salesforce, FreshService, etc • Flexible • Very expensive

    (US $100+ / user / month not unheard of) • Flexibility reduced because you can’t give everyone accounts • Implementation much more like a software project
  6. • Really interesting tool • Like a spreadsheet but without

    the drawbacks • Much better at relationships than a spreadsheet • Still more likely to hit limits than a ModelAdmin AirTable et al
  7. • Another really interesting tool for different reasons • Flexible

    because it doesn’t try to solve all problems • More part of a solution the whole thing – you need to build your own backend • Worth a look-in React Admin
  8. • Provides both the data model and the admin •

    Flexible data modelling – all common relationship types and the ability to customise them with a little PHP • A variety of UI approaches, thanks to GridField plugins • Snapshotted versioning a great companion for apps requiring audit trails • Open source How does ModelAdmin stack up?
  9. • It’s not primarily about being free • Building and

    hosting an app costs money! • But it stops you from tripping over licensing restrictions • You don’t inadvertently have your license costs explode Why is open-source of benefit here?
  10. • So many tools to mix and match • Not

    just GridField – TagField, Display Logic part of this benefit • You can experiment with changes to the UX while relying on an out-of-the-box UI. Good things: GridField and other fields
  11. Denormalisation: a bad idea that worked • In practise, de-normalisation

    was the easiest way to make things work • E.g. GridField sorting / filtering on de-normalised data • Some denormalized data was updated via onBefore/AfterWrite triggers • Some was updated as an hourly cron job
  12. • Internal comments • Assignment of objects / tasks •

    Notifications of comments, assignments, etc • “Workflow” covers this, but existing modules are difficult to drop in Collaboration
  13. • Easy way to provide comments in a CMS •

    Very MVP right now. Needs • Better comment UX • Notifications (email, slack) • Tie-together of record change-tracking (especially Status) and comments sminnee/silverstripe-modelcomments
  14. • Users and Groups work well • Drop-in MFA was

    great • But CMS’ permission system is limited and not up to the task Access control
  15. • Even more MVP than before • But demonstrates that

    Permission codes can be used for a better experience • Key techniques • Embed object IDs into the permission code • Let individual objects be marked as “standard permissions” or “custom permissions” sminnee/silverstripe-microacl
  16. • Editable statuses that an object can move between •

    Rights to make each change • Comments expected with any change • Preconfigured notifications at any change • Specific validation rules per status • Dev-managed automated status changes Workflow for business apps? New Assessed Treated Closed Needs review
  17. • silverstripe/reports allows predefined reports • But no customised reports

    • Saved searches on ModelAdmin views would also be very helpful • This area needs work • (No MVP module this time) Gaps: reporting
  18. • E.g. let administrators add more custom fields • Kind

    of breaks Silverstripe’s model • Comes up frequently in government RFPs • Could it be introduced in a limited way? Gaps: administrator customisation
  19. • I misunderstood the scope of the app when I

    started • As I added more data to the system, the scope of the app and the best way to manage the data changed • As a single person acting as product owner / developer / user, this worked quite well • But this is a special case Surprises
  20. • It's not what you demo out of the box

    with CMS • It's what you show off after just a few hours development • ModelAdmins let you solve more complicated business challenges • "Can't I just have Wordpress?" less likely to be the answer What’s exciting about Silverstripe CMS?
  21. Our future • Content Management Systems these days is a

    product-category where website owners feel they should make the product selection • Silverstripe CMS has always been at core a rapid-development tool • In 2005 content management was an innovating, exciting idea • In 2020 it's a commodity, there are better niches to pursue
  22. One of the great things about StripeCon is the variety

    of ways in which people are using Silverstripe CMS. • Trying to make it "one thing" • The future of Silverstripe CMS is about letting 100s of ideas flourish Our future
  23. The problems of big-bang releases • Upgrading from 3 to

    4 is a lot of work • I’m not keen to force that on people again • CMS 4 will be support for a while yet • At least 3 more years • But we have no specific EOL date in mind yet
  24. Innovation on a monolith • You can’t improve everything to

    the extent you would like • Not everyone benefits from changes you make • The scope of upgrade is huge • Any API changes you make need to be set in concrete before you can release them.
  25. Totally new ways of building admin interfaces Totally new ways

    of delivering websites ORM All the CMS4 stuff that works for you nicely Form Schemas CMS4
  26. What’s likely to come next • Keep CMS 4 usable

    for the coming years • Allow use of PHP 8, Symfony 4+, PHPUnit 8, etc • Try and split up framework up further without breaking APIs • Allow experiments modules / refactorings to be used one at a time on projects that are primarily CMS 4 installations. • Use GraphQL as an enabler for this where it makes sense. • Don’t worry about a feature-complete CMS 5 contender for now.