Showing posts with label hackathon. Show all posts
Showing posts with label hackathon. Show all posts

Thursday, February 26, 2026

Sitecore Hackathon - tips and tricks

Sitecore Hackathon

A few more weeks and it's time for the yearly Sitecore Hackathon. And even though it's hard to match the golden years with over 90 teams participating, 2026 seems to have more than 30 teams again from all over the world. It's still a well known event in the Sitecore community - organized by people with a heart for our Sitecore community so thank you Akshay and all your "community judges" for the effort.


What is this hackathon? 
A hackathon is a fast-paced, collaborative event - in this case lasting 24 hours - where teams of developers and/or domain experts create functional prototypes or software solutions to specific problems. Originating from "hack" and "marathon," these events focus on innovation, networking, and rapid problem-solving.



So basically you get 24h to deliver a project from scratch. And your team of max 3 persons will take up all roles needed to deliver the project. 

I have participated in the Sitecore hackathon for several years with various results. Going from not delivering anything at all in the end to actually really win this thing back in 2017 (oh, time flies).  As I am not participating this year due to a number of reasons I though I might share some lessons that I learned throughout the years. As I learned from the things we did right, the things we did wrong and the many hours of blood, sweat, tears and joy - it feels like post-worthy. 


Before you begin

A good preparation is key to success and that is no different in a hackathon. A few things come to mind in the preparation phase:

Environment

You do not want to be that team that lost hours because they did not have an environment ready for their development. Make sure to check the github access - as requested actually. But your "environment" goes beyond that. Things change of course but to give a few examples of things you do not want to be doing when starting a hackathon:  searching and downloading large Sitecore setup files, windows updates...   Where things like this might sound trivial, they are important. Even cleaning your desk is. 

Also important is a collaboration tool. Even if you are working solo actually. As you will be doing a "project" you do want to keep track of the task you need or want to do. You will want to prioritize them and so on. Depending on your team this can be post-its or any (free) online tool. Pick one, and make sure it is ready to go before the hackathon starts. And you might already be able to add some tasks.

When you read the requirement for a successful entry in the hackathon competition you will notice that there is more than just coding. And subconsciously I actually gave you another task up front - yes, everyone should read the requirements. You should be ready to create documentation with screenshots and video material. Be ready for this - and especially the video. Don't let that final hackathon hour be your first time to create and upload a video as you will be tired and maybe not thinking straight anymore.

Catering

People do need to eat and drink. And as a hackathon is supposed to be fun too, why not go for some nice food and beverages. Yes, sure. Absolutely a fantastic idea as this will contribute to your well-being during a long day. But don't get your hopes up for a feast, as my experience learned me that you will probably not be that hungry at all. So yes, make sure you have everything ready for some nice snacks, drinks and meals but make them rather healthy. Just think what your brain will do after a pizza, double burger, half a bottle wine and a chocolate covered ice cream...  ok, I am exaggerating here but you do get my point.

Timing 

It's gonna be a long day - 24h is a lot and as they give the final idea one hour in advance you could call it 25h.  Some teams take part of that time for a (power) nap. Or even some more sleep if it starts for you in the middle of the night. Depending on your time zone several options are possible. There is no real best practice here as this is also rather personal but just something to think about. 

Idea

One of the challenges of the hackathon is to come up with a decent idea. We will come back to this later as this is also the first task of the day - but you might already be prepared for this. You should not be spending too much time on details up front as there is always a (big) chance everything you thought of is garbage after they announce the actual hackathon idea. But it is a good idea just to be ready with some topics in the back of your head to avoid starting the day with nothing. 


The hackathon day

As I mentioned earlier the hackathon is actually creating a project in a very short time frame. Of course, this is not a full blown project but more like a proof of concept but still. You should go to most of the steps of a project. I'll cover some here and guide you with timings. Time is crucial... 

Idea

Here is the idea again. By now you know the main idea or topic for the hackathon - this can actually also be more than one. So you can start brainstorming keeping in mind the following guidelines:
  • Do not aim too big immediately. This is a proof of concept and it's better to deliver a good mvp (no, not the Sitecore mvp but a minimum viable product). 
  • Try to find an idea that you can scope into a mvp (must) and some extra features (nice to have, if you still have time). This way you can start with the mvp. When that works you will get some peace of mind and decide how to proceed. 
  • Know you team. You should be able to work together so make sure your project can have several tasks that can be done simultaneously by the people in your team. As an example: if 3 person team has only one person who know nextjs you should probably not try a project with 80% nextjs code. 
  • Visibility. It is always nice to show something. Nobody expects a fully designed solution, but something visible is always nice. And if you would need some test content, remember who is going to judge it - it might be something stupid but with test content you can get a smile and a happy judge is better than a grumpy one.
  • Has it been done already? I still remember when I was sitting in our brainstorm room killing several ideas because they were already available in the Sitecore marketplace. And of course it is not because something already exists that it cannot be a good idea but it does make it harder to stand out of course. 
Having a good idea is very important so take your time for it. I remember some years where this took up to 3 hours of our time to get it right. It should not take more than that but do not expect it to be done in half an hour and do not panic if it's not. 

Task list 

After the idea phase (or probably already during) you will start creating a task list. This enables your team also to check the feasibility of the idea. Make sure you have a distinction between the "must haves" (the mvp and the requirements that you need for a valid entry) and the "nice to haves".  This list doesn't have to be complete of course. It's something that lives during the day but it will give a good guidance on your progress and can avoid stress towards the end. 

Coding & fun

It's a hackathon so you will write some code. Or have it generated... at least parts of it as that is how the world runs these days. Try to enjoy it as well. And it is a community thing, so share the joy with some pictures that you can share.  As this is a worldwide event with people from very different time zones, it's always nice to see other teams going for lunch while you are having breakfast ☺

The final

You probably do want to finish at least something and deliver an entry - so the final hours do matter. At least if the other parts went fine but let's assume they did. I remember the organizers sending messages when the deadline came in sight - but if you start getting those and you are not prepared for the final part the stress will start building up. 
In order to deliver a clean and presentable entry you should have a cut off point. My suggestion would be 3 up to even 4h before the deadline. Once that is reached you should be able to finish coding and not pick any new feature tickets anymore. It's time to wrap up and that means quite a few things:
  • Testing. I would assume you have done some tests already during the day but now it's time to do the final round of testing. Make sure everything works. In this era of generated code this had probably become even more important.
  • Do a (final) code review.  Check the code, make sure it is clean and consistent. Clean does not mean with comments by the way - it means that people who are a bit familiar with what you are doing are able to understand without asking an AI assistant. 
  • Documentation. If you haven't done this yet (and let's be honest, you probably will not as this is not the most fun part) it's really time to get started on it. Get the documentation, the video and the installation documentation ready.
  • Testing. Not again? Yes, again. But this time, test your installation document. Test it on a clean environment just like the judges would. This will make sure they are able to install your product because if they cannot, you're out.
  • Check the requirements one last time to make sure you really have everything.  

You might think I am exaggerating again, and you might be right. But I remember those last hours as tiresome, stressful and the brain not doing everything the way it did half a day earlier...  but maybe since AI is doing half our work anyways things have changed ☺.  But whatever you do, do not underestimate the last part as it is really painful to crash just before the finish. 


TLDR

I noticed I wrote way too many text..  so in case you skipped it, here is the summary:
  • be prepared up front
  • read the requirements
  • don't eat 3 pizza's
  • don't forget to test thoroughly - including the installation
  • don't wait for the final bell to wrap up
  • and most of all: don't forget to enjoy it

Good luck !


Thursday, March 5, 2020

Sitecore Hackathon 2020: The BeeGhentle story

Sitecore hackathon

February 29 - 02:00 AM local time. Way too early to get up on a Saturday morning, but it's that day of the year again: the annual Sitecore hackathon day! 82 teams from 23 countries this year, and we -BeeGhentle- are one of them.

It will be my 5th participation, 6th if you count the one were I abandoned sick as well. I've had various results over those years: complete failure, submissions, almost-submissions and one victory. But each year we learned a lot and had fun. And that is what the hackathon is about.

Of course it is also about creating an open source application and getting ideas, examples (and maybe modules) out in the community. With a bit of time pressure as you get 24 hours straight to finish, and a little competition as well to make it even more exiting.

Learning

As mentioned, the hackathon is an excellent opportunity to learn. You could stick to your daily tasks and routine, but it's more fun if you try something new. As you only have limited time, one of the things to manage is how much time you can spend on learning and how much on actually building something to deliver.  

Getting ideas, managing your time, making the right decisions and handling pressure when the "start finishing" tweets start coming.. it all makes part of the learning process.

Normally every participant should have learned something new on a technical perspective during the hackathon. But I'm quite sure they also learned something on a more personal level - still business/work related though. And if you participated with a team that also works together the rest of the year (as I did), you probably also learned something about how your team functions.
from Priceless GIFs via Gfycat

Team "Bee Ghentle" 2020

This year I entered the competition with 2 of my (junior) colleagues. Our front-end beard-guy Sam had some experience with SXA but now was immersed into the wonders of SXA 9.3. Bearded handyman Alex had some encounters with marketing terminology, extending Forms (and meeting the limitations), Unicorns and his new best friend "Helix". I hope you learned a lot guys - you did a good job!

First step: an idea     

The topics this year were quite surprising and somewhat challenging:
  • "Sitecore Meetup Website": create a site for the Sitecore user groups to replace "Meetup"
  • "Sitecore Marketplace Website": create a new marketplace website
  • "Sitecore Hackathon Website": create a new website for the hackathon (or how to get people to create your website for free - just kidding, it would be a pleasure doing this)

Still a bit sleepy we decided to go for the first topic. We though the Commerce geniuses would build an awesome marketplace and the JSS experts would come up with a mind-blowing yearly-one-pager for the hackathon. We installed SXA and got started...

Our idea(s) might be a bit different than others, as we went a bit creative and didn't stick to what might be seen as the current situation.

We wanted to create a solution for all user groups. Why? Because we can. We could have gone for one site per user group, but we thought that one site to rule group them all would benefit people as user groups might start working together that way.

Next part of the idea was the fact that user group organizers know Sitecore. That is an assumption, but if they don't they should be fired as organizer. With a bit of security it should be possible to give organizers the ability to edit their own stuff in Sitecore directly. It's still a Content Management System - so let it handle content. This way we didn't have to worry about forms to create user group events. After all, it's a Sitecore hackathon, not a form-writing contest.

We also decided to skip a lot of tasks that we normally would do in a website because they seemed out-of-scope for a hackathon. So we didn't care about a 404 page, security headers, ... and focused on getting a mvp version that worked with some nice fancy tricks to show some Sitecore potential. Unfortunately we weren't able to do all of it - I must admit we do miss some functionality (e.g. unsubscribe - personalizing the subscribe button could help to do that trick) and we would have liked to get visitors recommended sessions based on your xDB profile.. but we ran out of time.

The build

We did manage to deliver a working version - or at least we hope it works once installed on another instance :)

The code and documentation can be found on Github (you can also find all other submissions there) - the video is also on Github.

We started with a faceted overview of the available user groups.

We should display the user group logo's on this page, but that is content - we tested with one image to make sure it works.

Selecting the user group brings the visitor to the group page with some general information and an overview of the events of that group - with the first upcoming event highlighted on top.


An event also has a (not-fully-styled) detail page with the sessions and speakers in more detail. We decided to share speakers across user groups as some of them tend to speak at quite a few. 

Visitors of user groups can register on the site - a (extranet) Sitecore user is created. We had some ideas with EXM and marketing automation here but those didn't make the cut for the deadline.
Once registered and logged in, you can subscribe to an event with a simple click (as we already you). Each event also displays the people that are coming.

As a finishing touch we created a component on the homepage that displays all events you subscribed for (this should be the upcoming events you subscribed, which is just a small change to the index query but we had no more time to test that so we decided to go as is). A Sitecore site needs something personalized, right?

The techy stuff

Creating the site in SXA was rather trivial for me. We did write a few extensions that helped us showing what we wanted with as little code and as much flexibility as possible.

On some parts we had to make decisions that were not perfect. To store the visitors of the user group, we took a shortcut writing them in the Sitecore database(s). Yes, this will not work on a scaled setup - we know. But we didn't manage to find the time setting up a custom database to store them.

The faceted overview was done with standard SXA components and scopes. To display the first upcoming event we used a custom datasource which we registered as item query to be used in a page list. Extra queries to display other lists of events could be easily created this way.

For the "Who's coming" feature and the "My next event" I created a Scriban extension. To get the users next event was a fairly easy query on the Sitecore index and we returned the event Item - this way we can display anything we want about the event in the Scriban template.

To display who is coming to the event was more challenging as I actually wanted to return the Sitecore users to the Scriban template so we could select any property we wanted there. That didn't seem to work so we had to settle with a function that returned the names. Still pretty neat though.

Next steps

I was still wondering about users in Scriban so I did what every Sitecore developer should do: I asked it on Sitecore StackExchange. And as expected, I did get an answer and it even seems possible... so that might be a next blog post ;)

Go home

We had some stress, we had some fun - we learned - we delivered something... maybe not everything we hoped for (did we aim too high?), but anyway, the hackathon 2020 is over. If all goes well we'll celebrate it at Sugcon in Budapest - whoever wins, they will have deserved it.  

I didn't check all the code on Github - I did watch the video playlist on Youtube (which does not include our video as it's not on Youtube). I've seen some (potentially) great entries..  but if I see the entries in the meetup topic I do notice we really took another angle. We'll leave it to the honorable judges to decide what they think about it...  I still think we had a good approach. 

But most importantly: we enjoyed it - and we're still alive!

Again next year?