SUGCON finally arrived! This year it was held in London, U.K. at etc.venues 133 Houndsditch. The venue was modern and beautiful. In this post I'm going to talk about the sessions I attended and a few takeaways I had from each. I stuck to the Sitecore JSS sessions this day so this post will be all about those.

Keynote

Donovan Brown, who is a DevOps Manager at Microsoft, gave the opening keynote. He had this great before/after DevOps meme that he used to frame the presentation with. Donovan gave a run down of the Azure DevOps products and showed us how they utilize these tools at Microsoft. All the tools seem flexible and you only have to use the parts you want to. There's no all or nothing and you should evaluate your needs to see if one of the tools can solve a particular problem that you have. All the tools he showed are free to get started with.

Sitecore Host: Architecture and Plugin Design

After the keynote it was time to talk about Sitecore Host. Sitecore Host is really a foundational feature that Sitecore has developed as a base for all the services that they are releasing these days.

Sitecore Host Conclusions

The NuGet package Sitecore.Framework.Runtime.Build was discussed to help facilitate building your own plugins for Sitecore Host. They showed what development of a plugin would look like and then used a plugin to turn the identity server login screen blue using content overrides.

One non-Sitecore thing that they did during their presentation that I really enjoyed was their usage of a git alias next. Looking around online, it looks like it's this. I might have to try this technique in a future presentation. It essentially let them use git to fast forward between their different demo steps.

Sitecore Commerce & JSS

The first breakout session I attended was the Commerce JSS talk by Pramila Soni and Saurabh Sachdeva. In this session, they presented their headless Sitecore Commerce implementation and gave us a walkthrough on how they implemented a few parts of it. I have no direct experience with Sitecore Commerce but I’ll always be there for a JSS talk. One thing I need to explore after attending this talk is how resolvers work in Sitecore JSS, I had a few people ask about them while I was at the conference and I’ve never had to use them. I’m curious as to what I can do with them. Stay tuned for a future post.

JSS Immersion - Lessons Learned and Looking Ahead

I continued to camp out in Breakout Room 3, which was home to all the JSS talks on this day. Anastasiya Flynn gave a talk that was based on her experiences learning Sitecore JSS when she started in her role at Sitecore as a Javascript Evangelist. She built out an event search page leveraging a lot of popular React libraries. Some of the libraries that she discussed were:

  • Rebass - One thing in particular she called out was that Rebass lets you specify the element type of a HTML element as an attribute so she was able to easily add fields to her React components that allow editors to customize the tag type (h1, h2) in EE. An example from her repository is here.
  • styled-components - It's like CSS in javascript. Pretty wild. She has several examples of it's usage.
  • react-spring - Animations!

Anastasiya integrated her event search site with Sitecore Content Search via GraphQL (some info on that here.) I enjoyed how she organized her presentation into sections and provided a summary for each section before she moved onto the next.

Fun with Sitecore JSS: Exploring GraphQL

And finally, the time had arrived. It was time for me to do my presentation about Sitecore JSS and GraphQL. I started by professing my love for GraphQL..

After that declaration, I went through defining exactly what GraphQL is and then explored syntax. After we had the basics out of the way, I jumped over to some demos that I had prepared and we implemented a query for the global header component from scratch and plugged it into a React component. I showed off the magic that are subscriptions with a real time activity component in one of the more advanced demos. After we explored that some, I showed off a chat component that uses a subscription and a mutation to function. All of these demos were built with built in operations and no custom back end code was needed for them to work. These definitely won't scale but I thought they really demonstrate the functionality well.

Some more in depth posts are coming for the things I talked about during my presentation.

Conclusion

Day 1 was a lot of fun. It was capped with a happy hour event and MVP awards where all the Sitecore MVPs that were attending received their physical awards. This was my first SUGCON and it was great seeing very developer focused presentations.