Building my own SaaS: Ultimate Tournament

Update - I shutdown and open sourced Ultimate Tournament in 2020. I learned a lot from working on this project but it was time to move on. If you’d like to read more about my final thoughts or check out the code it is available at kevinhughes27/ultimate-tournament

For the past while I’ve been working on an ambitious side project - building a complete Software as a Service (SaaS) for creating and managing Ultimate Frisbee tournaments. I started the project leading a team at a charity hackathon and have since continued working on it all on my own. This project has pushed me to learn many new things and wear a lot of different hats in order to build an entire product I am comfortable launching.

There are a lot of moving of moving pieces in a complete SaaS product: a landing page with signup, an onboarding or setup process, analytics to help improve the product and for marketing, an internal admin application for managing the app and of course there is the application itself. Ultimate Tournament actually has two main user applications: the management software for tournament directors and the mobile schedule and score reporting app for players and captains. From a technical standpoint it needs good infrastructure and reliable CI both preferrably scalable on demand.

With so much to build I learned a lot more about how to configure the frontend part of a Rails application and evolved my opinion on server side rendering vs a single page applications (it always depends!). In order to achieve some of my user interface ideas I ended up learning and adopting React. I also built out an entire authentication stack which included social logins, an internal area and the ability for staff to login to tournament’s to help troubleshoot.

Drag and Drop schedule editor

Tournament logistics are tricky! I under estimated the complexity on the backend - Brackets especially are a pretty non-trivial graph structure which is quite different from the data I’ve been working with lately so it was a fun learning experience.

Visualizing the bracket graphs

This project really helped me appreciate everything that goes into a SaaS product and helped me better understand everything that happens around me at work. There is a lot more technical work I still want to do on this project like adding ActionCable for websockets and expanding it to other sports. I’ll probably build out an API soon as well, so stay tuned for some updates.

Now I’m trying my hand at marketing to get the word out so people use my app. If you happen to need tournament software or know someone who does please check it out! ultimate-tournament.io

Shopify Unite: The Power of Webhooks

Earlier this year I had the opportunity to give a talk at Shopify’s first ever developer conference. I talked about Webhook best practises and demoed some of the latest goodies in Shopify App.

The video team just finished up posting all the talks so you can watch it now!

2015 a Year in Review

2015 was a pretty awesome year full of new experiences, growth and accomplishments. It marked my second year of working in software professionally and school seems like a faint memory at this point. Shopify, the company where I work, IPO’d this summer which was an exciting and [possibly] once in a lifetime experience. I think this kind of post is worth doing to reflect before simply setting our sights on the next goal. So here it is my year in review in bullet points:

Travel

  • Barcelona for FullStack Fest
  • Stockholm Sweden for Nordic.js
  • Paris France (for just over 24 hours but we saw a lot!)
  • Helsinki Finland for Junction 2015
  • Costa Rica for vacation
  • Peru for a vacation and to hike the Inca Trail!

Sports and Fitness

  • new PR squating at 255 lbs for 1 (although now I’m injured as I write this and my squat is low :sadface:)
  • ran 3k in 12:35 (mm::ss)
  • made a lot of improvement in mobility (I can now touch my toes!)
  • I discovered and became addicted to Yoga Tune Up which has really helped support my other fitness goals

Ultimate

  • I played my first season of competitive Ultimate with Swift
  • I attended 3 away tournaments with Swift in Toronto, New York and Barrie finishing our season at No Borders in Ottawa.
  • We didn’t win a lot of games (we were essentially the C team) but we did beat Goose when it counted!
  • I played in my first beach tournament ever!

Side Projects

New Tech