Def Goat Jam 2017 – My First Sitecore Hackathon

How It Went Down

I couldn’t hold out.

With all the exciting energy within the Sitecore Community,  this seemed like too much fun to ignore this time around.  So when the announcement came out for this year’s Sitecore Community Hackathon – I made it a point to get involved.

…and it was much more rewarding than imagined.

WARNING –  My Team was named GOAT Sitecore Devs (a reference to an old nickname of mine…don’t ask…)  But I am beyond pleased that it affords me an excuse for gratuitous goat imagery in this blog post!

Choosing a Category

We received the categories around an hour before the start time.  I expected to have a specific problem to solve, but the categories were more broad:

  • Azure PAAS
  • Habitat
  • Data Exchange Framework
  • SXA

This was an unexpected twist.  So many possibilities!!!

After discussing the relative pros and cons – we settled on the category of the Data Exchange Framework (DEF Jam, yo!)


Choosing a Module

With the Category chosen, we needed a module to build.

We brainstormed topics .  Some ideas were duds that could be done, but who cares?  Some ideas were very cool but too ambitions to finish on time.  Eventually, we found a nice balance in an integration with the Amazon Product Advertising API,  which could be used to support referral links through their affiliate program (hence monetize your website on the cheap!) as well as simply providing helpful resources for your users.

Get On With the Coding!

Then the work began – installing and configuring DEF, and then building the DEF provider for Amazon.  Luckily, Sitecore provides a great step by step tutorial on implementing your own DEF provider.  I must say – while there is ALWAYS room for improvement, Sitecore’s documentation has really come a long way in the past couple years.  Hats off to the Sitecore Documentation Team!


So an Amazon Product Provider for DEF. That would be the minimum – but we’d hopefully create some value adds beyond a simple Amazon Provider (as useful as that might be).

We began discussing use cases, priorities, delegating tasks…budget time….coding…coding….coding….falling asleep….coding coding coding..

Around 5am, my brain was officially the consistency of cornbeef hash.  One team member had already fallen asleep.  The two of us remaining pushed on for another couple hours until deciding it was time to refresh our perspective with a nap at 7am.

After a luxurious two hours of  sleep, I awoke and attacked some lingering bugs with a custom field needed for listing the available Amazon properties to the editor.   We then pushed through finalizing the Amazon Provider and making some simple OOTB views to display the products. Clean this up, add this feature, troubleshoot this bug, that bug…

Glance at the time….


Yikes!  Less than 2 hours to go!  

Stop obsessing about Helix philosophies and refactoring!!  Time to finalize!

Create the package and test the package…Start documenting.

Less than 30 minutes!   Our documentation is not even close!  Almost out of time….We need a video!

Upload! Upload! Upload!!  2 minutes left – why is it so slow uploading to YouTube??

Oh! The code – Zip!  Upload.Upload! Upload!..why is it so slow uploading to Dropbox???

It’s done?  It’s there?    Whew!

We did it!  

And in the process created some tangibles…

  1. A module to build on for actual use in the future.
  2. Two useful custom field types.
  3. A library of useful code for Data Exchange Framework providers

And perhaps even greater intangibles…

  1. A greater facility with Helix-based projects and generator tools
  2. A greater knowledge of Data Exchange Framework.
  3. An improved connection within the Sitecore Community
  4. A feeling of accomplishment and pride.
  5. A large sleep deficit

To see what we ended up with, here is our video demo of the “DEF GOAT Amazon Provider”

Can’t wait until next year!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s