A Quick Review of Project Hoverboard

TL;DR: Project Hoverboard is great, but not perfect for smaller events?

A Quick Review of Project Hoverboard
I made*Ā this

So for the last few weeks, I have been helping out with DevFest Berlin 2019, which just happened last Saturday. From what I can tell, people really enjoyed the event, which is definitely the most important thing. For that, I have to thank everyone who attended, all the speakers who share their knowledge, and, and most importantly the other volunteers and organizers for making this possible! And as a volunteer, one of my biggest contributions would be ā€œbuildingā€ and maintaining the website. The reason why I put double quotes around the word building is because instead of making a website from scratch, I use another project as the template, and that would be Project Hoverboard.

The first thing I want to say is Thank you to the amazing people from GDG Lviv for making this!!!šŸ˜˜šŸ˜˜šŸ˜˜. It allows us to quickly serve up a beautiful, offline-compatible, accessible, and effective website. I cannot stress that enough! Now that the compliments are out of the way, letā€™s jump into what I think about it, who is a (terrible) Android developer that is constantly trying to learn new things šŸ¤·ā€ā™€ļø


Pros

Amazing demo

So whatā€™s the best way to let people know what your template is about? Well, a fully functional, fill to the brim, performant, and beautiful ā€œdemoā€ site is definitely gonna do the trick šŸ¤Æ

Amazing Documentations

Like seriously just look at the README! Itā€™s so detailed, and I got something started in a matter of minutes!!!

Accessibility šŸ‘

While I never really tested the accessibility part, itā€™s really nice that they have it in mind, especially when inclusivity is a big part of DevFest Berlin this year. Special shout out to the organizers and selection committee for having such a diverse panel, which include this amazing talk from Franziska Hauck!

PWA šŸ‘

This is particularly useful when the venue Wi-Fi is overwhelmedā€¦ā€¦

Secure šŸ”’Ā šŸ‘

The last thing you want is to have a tech(-ish) conference website to leak a bunch of info, or have loopholes that allow bad players to inject malicious data. From my very limited knowledge of the npm ecosystem, it looks like the project is pretty secure. Not perfect, but more than enough.

Cons (mostly nitpicking)

Firebase functions errors are notĀ obvious

One of the ā€œbugā€ that takes me forever to figure out is that apparently, you should not pass an empty array to the socials of speakers (if I remember correctly), and if you do that, the firebase function that transforms speakers JSON will fail. And since itā€™s happening on the cloud, it took me forever to realize how to find out the ā€œHealthā€ of those functions, and slowly figure out what I have done wrong. Itā€™s particularly bad because of the strict pre-commit hook, that gave me the impression ā€œoh it pass lint locally, so the formatting must have been fineā€

Import script is somewhatĀ basic

Another issue I faced is how to import everything once the schedule is done. Before itā€™s ready, I added a bunch of dummy schedule & speaker placeholder, so that people can understand ā€œoh the schedule is not ready yetā€. And once the info starts flowing in, I run the import script, and realized that ā€œoh, all those dummy sessions are still on firebase, because the firebase function does not do removalā€. Itā€™s not a deal-breaker, I can just remove everything from firebase database, and let it import everything again.

No easy way to integrate with CfP platforms

Continuing on the data import topic: for the first batch of import, it will probably come from some CfP platform like Sessionize or PaperCall, and currently, there is no easy way to transform the output from those platforms to the input of Project Hoverboard. I ended up botch a simple script to handle the conversion, but it feels like it should have been part of the documentation to say the least šŸ¤·ā€ā™€

āž”ļø Missing CMS part of theĀ project

All the previous points can kinda be summarized as ā€œnot having a CMSā€. Like it or not, event organization is often chaotic: last-minute speaker change, ticket sales open and close, people request to have their info change, missing pictures, the list can go on forever. And having some type of CMS, or at the very least, centralize all content into 1 place, would make it a lot easier for us to maintain.

Somewhat obscure techĀ stack

From what I understand, the world of websites is either build with PHP, or with React. And for this project, the use of Polymer (or web component I suppose?) and ā€œ50% data static + 50% data on firebaseā€ is unconventional to say the least. And as someone who wants to learn more about frontend development, I wish I could have learned something more popular/hyped, like using JAM stack + static website generator.

Overkill architecture &Ā features

This is quite specific to this particular event: the architecture is a bit too complicated. Having data split in 2 places makes it hard to maintain, and easy to forgot to deploy something, or worse, deploy something that shouldnā€™t have been.

And similarly, there are also a few features thatā€™re quite unnecessary for events in this scale, like:

  • SSO with facebook, twitter, or Google for push notification. There are only 2 tracks, you donā€™t need notification to tell you ā€œhey everyone is movingā€
  • Link to previous speakers. It would probably be more useful to just link to the site from the past, so that users can have a bit more context on what it was about.
  • Analytics. For 250-ish attendee events, this is not necessary. I ended up manually removing all references to analytics from the codebase. Itā€™s not hard, but it is probably not necessary for most events.

So what have we learned today?

  1. The people from GDG Lviv is amazing!
  2. Everyone attended/spoke/organized/helped DevFest Berlin 2019 is also amazing!
  3. Project Hoverboard saves me so much time
  4. DevFest can range from ā€œhaving dozens of peopleā€ to ā€œmulti-day multi-track extravaganzaā€, and that translates to very different needs for the website
  5. ā€œEase of useā€ is important for both attendees and website maintainer
  6. etc.

And this is my quick review of Project Hoverboard, and now that I have written things down, I started to get motivated to build my own version of ā€œa small-ish conference websiteā€. Let see how it goesā€¦ā€¦

)