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

Harnessing the power of React in SilverStripe 4

Harnessing the power of React in SilverStripe 4

Presentation given at StripeCon EU 2018 - Enschede, Netherlands

Robbie Averill

September 21, 2018
Tweet

Other Decks in Programming

Transcript

  1. • Assets • Campaigns • History viewer • Archives •

    Small components e.g. TreeDropdownField Where it's used already
  2. • SilverStripe form schema • React 15 and Redux •

    GraphQL and Apollo • Reactstrap • SilverStripe's JavaScript Injector What you get
  3. • More of the CMS will be React driven •

    Slowly phasing out Entwine • A new paradigm for frontend SilverStripe CMS development Where it's heading
  4. • PHP, SilverStripe and entwine boilerplate • React components •

    GraphQL queries • Injector transformations Example: new history viewer component
  5. Make query a Higher Order Component • Use the "graphql"

    HOC (Higher-Order-Component) from the react-apollo package • cms/client/src/state/history/readOnePageQuery.js
  6. Use the React and Redux dev tools • React dev

    tools let you inspect component structures and props • Redux dev tools let you inspect the current state and how reducers change it over time
  7. • Base module provides abstract components • It's up to

    implementations to define the data queries • Use injector to hook it up • Implemented in the CMS and Elemental modules History Viewer: summary
  8. • Content blocks • Improved versioning features • React and

    GraphQL extensibility • Unified CMS search interface • Large UX focus Roadmap: progress since 4.0
  9. • SilverStripe 3 supported until Dec 2020 • SilverStripe 4

    nears its first anniversary (Nov 2018) • New features built as opt-in SilverStripe 4 modules • More clarity on release expectations Release Management
  10. • Mainstream use of APIs to decouple CMS • Focus

    on managing digital experiences • Deeper integrations with other SaaS tools Analytics, targeting, campaigns, marketing automation, search, etc • Modernise CMS UI through React+GraphQL • New features into minor 4.x releases Coming up in 2019...
  11. Q 4 ’ 1 8 Q 1 ’ 1 9

    Q 2 ’ 1 9 Q 3 ’ 1 9 Near Future ✓ ISOLATED BUILDS SilverStripe Technology Roadmap API FOUNDATIONS INTEGRATION OF DIGITAL EXPERIENCE SYSTEMS DECOUPLED CONTENT MANAGEMENT SYNDICATED CONTENT PLATFORM AUTOMATION & SCALABILITY ✓ POPULARISE DECOUPLED USE CASE ✶ SILVERSTRIPE CONTENT API ✶ AUTHENTICATED APIS ✶ IDENTITY MANAGEMENT ✶ API INFRASTRUCTURE ✶ CONTENT SHARING ✓ UPGRADE PLATFORMS TO PHP 7 ✶ SURFACE EXISTING USAGE ✶ ANALYTICS MODERNISE CMS UI TECHNOLOGIES SILVERSTRIPE 6 ✓ CONVERT SECONDARY UIs TO REACT ✶ BLOCKS ECOSYSTEM ✓ REACT GRIDFIELD ✓ BLOCKS EDITOR ✓ PATTERN LIBRARY ✶ CONVERT PRIMARY UIs TO REACT ✓ STABILISE GRAPHQL ✶ MULTI CHANNEL Logging and metrics on SSP and CWP ✶ CWP CANDIDATES ON AWS ✶ EXPERIMENTATION AND TARGETING ✶ PERSONALISATION ✶ MARKETING AUTOMATION ✶ LOGGING EVALUATION SILVERSTRIPE 5 ✶ PERFORMANCE ✶ MAXIMISE REUSE ✶ METRICS EVALUATION ✶ AUTOMATED SSL CERT. ON SSP (LET'S ENCRYPT)
  12. • 20-25 contributors/month • 500 commits/month • 63,936 total commits

    • Over 11 years (on GitHub) • 583 total contributors • 828,462 lines of code • 879 open, 4,511 closed issues • 69 open, 9,465 closed PRs Contributions * Graph: OpenHub. Stats: GitHub.
  13. • SilverStripe forums • GitHub issues • SilverStripe contributing guide

    • SilverStripe DSM • Get involved! How to contribute