This year's StripeCon EU took place in Grote Kerk—a big old church in the middle of Enschede, Netherlands. It saw over 90 SilverStripe enthusiasts from around Europe (and Canada!) gather for two days to talk about a full stack of SilverStripe technologies, ideas, and implementations.
As the representative from SilverStripe HQ in New Zealand, it was a great opportunity for me to meet some of the members of the community that I deal with regularly via GitHub and the Community Slack channel.
This year's hosts Lemon8 and Twisted Bytes, both based in Enschede, did a magnificent job of organising the biggest StripeCon EU conference to date. The weekend flowed from one talk to the next, into social events and back into talks again—it all felt very comfortable, welcoming, and fluid.
There really was a full stack of talks this year—everything from automating AWS network infrastructure to controlling robots with Bluetooth, and browser APIs.
I was lucky enough to kick off the first of the talks this year with a summary of how SilverStripe has adopted ReactJS into the core CMS and surrounding modules. I gave a look into some of the new React driven features we've been working hard on in New Zealand, and then talked a little about the future of the product roadmap and where we're going to be taking it.
Who needs a CMS anyway?
Andy Adiwidjaja from German-based Teamworks (check out his website, it's like a work of art!) followed, giving an insightful presentation about how to use the SilverStripe framework on its own (without the CMS) to build a demo web application.
Andy's presentation discussed his favourite features of the SilverStripe framework, and gave a comically presented comparison of SilverStripe with Django and Laravel using superhero avatars.
The demo itself showed a reasonable coverage of what every SilverStripe project would do, including data model scaffolding, using ModelAdmins to manage data, image upload fields, routing configuration, security, and how to use the templating system. He also made a shout out to the great error message screens! Check out the demo project from his talk here.
Keeping your code maintainable
This is a topic that every developer can relate to. Everyone has had to deal with a messy legacy codebase at some point, and taking steps to increase code quality and maintainability over time can make a huge difference to your project's stability as well as the morale of the team working on it!
Kay van Baarle, from Enschede/Utrecht based OGD ict-diensten, gave us a great talk about how you can achieve this, and some things to practice now so that when the code scales (in number of lines as well as usage), it can still be easier to maintain.
Bringing us in at the scary end—files with thousands of lines of code, no consistent code styles, tabs versus spaces—he brought us through to some of the core principles of good software development: KISS, SOLID, DRY (or not to), unit testing, and writing good documentation.
This was a very useful talk, and I'm sure we all got some valuable information out of it. Some of the concepts he discussed reminded me of some of the egoless programming ideology principles (see "The Psychology of Computer Programming" by Gerald M. Weinberg).
Incoming DevOps guy to blow us all away!
After lunch, owner of Twisted Bytes and co-host of the conference Derk Gortemaker took the stage to show us an impressive live demo of deploying an entire AWS network with SilverStripe 4 running on EC2 instances. His demo used Terraform to showcase the power of configuration based orchestration tools, and how to make small adjustments to your cattle without actually touching the servers.
Derk ran us through some of the high level pros and cons of deploying an application on AWS, including the cost, easy scalability, and support for multiple hosting regions. His demo included using Buddy (a Silver Sponsor of the conference) to deploy new code revisions. I couldn't help but think that our internal infrastructure team would've appreciated much of what he said regarding maintaining the SilverStripe Platform on AWS.
Fast Northern European cloud hosting
Samu Saarniluoto from Upcloud, a Finnish cloud hosting provider, gave us an introduction to the company's offerings, and some impressive sounding comparisons between their services and their competitors. They proudly boast having the world's fastest cloud servers—an impressive claim! The report is available through CloudSpectator.com, if you want to check it out.
The point in his talk that stuck in my mind was "the human attention span is decreasing from 12 to 8 seconds" and how that can impact on users of your website. Performance is key!
Log and monitor all the things!
Phillip Krenn, in a previous life, wrote a book about SilverStripe! An impressive start! These days, he's a Developer Advocate for Elastic, and gave us an awesome live demo with a basic SilverStripe 4 installation being monitors and logged heavily using Elasticsearch and Kibana (a dashboard for Elasticsearch).
We were all invited to start spamming his website's URL from our phones, which everyone happily started doing. While the website didn't fall over, the objective wasn't to make it do so, rather to fill up his graphs.
Everyone loves graphs, and I don't think I'd be alone in saying that I thoroughly enjoyed staring at all the lines and dots. Phillip also showed us a bit of what you could do with APM (application monitoring), although his demo was mostly focussed around infrastructure level profiling.
Probably one of the most engaging talks of this year's StripeCon was Rowdy Rabouw from Dutch company double-R web development talking about how to use various web browser APIs to do cool stuff.
Among some of his examples were accessing peripheral devices such as cameras and microphones, battery status levels, vibrations, internet connectivity statuses as well speech synthesis and recognition. I think the part that everyone will remember was when he plonked a little Segway robot onto the stage, connected it with Bluetooth to something, and then let us all control its movement via Twitter!
I think a lot of us probably said something along the lines of "oh, that [browser API] sounds nice, but I'll never be able to use it because I have to support IE8" at some point, but this talk was a nice gentle reminder that IE8 is pretty old now and web technology has moved on a lot!
Gutenberg, WordPress, and SilverStripe
Jake Grimley, founder of UK based Made Media (a SilverStripe Partner), took up the potentially risky challenge of giving a talk about WordPress at a SilverStripe conference. He showed us WordPress' latest integration with Gutenberg, which is a slick new content block editor.
I related to Made Media's hatred of traditional WYSIWYG editors—markdown all the way, in my opinion. Due to limitations of markdown, Jake and his team had ported Gutenberg from WordPress into a SilverStripe module, and gave us a bit of a demo of it working on an upcoming client project. This project looks like it involves some pretty complex trickery with Webpack configuration and React injection to interject parts of the Gutenberg editor into the SilverStripe CMS—I found this part particularly interesting (when reading the module's code) because it's an area that the core team are working on improving at the moment.
Jake's presentation also included a bit of a comparison of SilverStripe against some of the main content management systems around, and it was awesome to hear that soon he is travelling over to the USA to pitch SilverStripe to a potential client!
The paradigm of content blocks and modular content editing is a huge focus in SilverStripe 4, and it was great to see that some of the heaviest users of SilverStripe are also heading in the same direction.
VueJS in the front, SilverStripe at the back
Coming from a product team at SilverStripe HQ, we use React a lot. We don't often get to use VueJS (some of the other teams at SilverStripe do), so I loved this talk and demo of what Vue is, how it compares, and how to use it in a SilverStripe project.
Julian Scheuchenzuber, founder of German company Level51, showed us a demo of a client project they'd recently worked on—a semi-internal SPA (single page application) for content authors to upload content, images etc. via a VueJS driven frontend which would be stored in a SilverStripe backend.
They faced some challenges on SilverStripe 3.6 with things like asset abstraction, headless CMS, and API options and some other things which are now first-class citizens in SilverStripe 4. I couldn't help but think that GraphQL in SilverStripe 4 would've been a huge help for this app, but they'd worked around it nicely with a combination of direct data injections with SilverStripe templates and JSON encoding, and lazily loaded data via XHR requests.
All in all, it was great to see real world examples of people using SilverStripe as a headless CMS, and also to get a bit of a look into how VueJS works—it's clean and pretty!
Using Webpack in SilverStripe projects
A conference wouldn't be the same without some lightning talks, especially for a community-centric conference such as StripeCon EU! Across the two days, we saw a range of talks filling in gaps here and there and, at scheduled points, at the end of each day.
Active SilverStripe contributor Werner Krauss gave a great demo of using PHP Inspections EA Extended in PHPStorm to sniff out and tidy up some smelly bits of your code. Werner, I installed it during your demo and it's already come in handy! Thanks!
Steven Lantinga gave us a demo of silverstripe-elemental-grid—an extension of elemental which gives you some control over the layout. It was interesting to talk to Steven about this and the crossover with the upcoming work on layout blocks that we have planned internally.
Peter Nillson showed us a really cool example of using SilverStripe as a headless backend for managing a client's product data, and how they used a REST API to pull the data out and import it to dynamically generate graphic product catalogues in InDesign—a cool and unique idea!
Lastly, Philipp Ständer gave us a demo of his SilverStripe Sentry integration module, injecting a set of Monolog formatters, handlers, and utility classes into the SilverStripe 4 logging framework in order to push system messages out to Sentry. We use Raygun a lot here at SilverStripe (via this module), so it was great to see another option available.
That's a wrap
All in all, StripeCon EU 2018 in Enschede, Netherlands was a great experience for everyone. We all had a great time, nothing was too long or packed in, and it was a special chance to meet the wider SilverStripe dev community in person.
This conference had a very different feel about it to the StripeCon APAC 2017 (Canberra) and inaugural StripeCon NZ 2017 (Wellington) conferences. I came from the SilverStripe motherland of New Zealand and was amazed to see and experience the power of the community in Europe—it's strong, and growing year by year.
Congratulations to Stacey, Lars, and Derk for organising such a great conference, to everyone who spoke (I'm sorry if I missed anyone), to all the Sponsors, and to everyone who came. See you next year!
Join the SilverStripe community
You can join hundreds of SilverStripe developers and users in the SilverStripe community Slack channel.