HackSoft, as an organizing partner of HackConf 2021, had the task to build the streaming platform that would be used for the conference. The requirements were simple:
In this article, we'll provide a brief overview of how it was all done, what was used and what was the result.
To achieve the task we used the following tools:
Here's a high-level overview of the tech stack and user flows:
From buying a ticket to watching the streams, the user journey ended up looking like that:
For tickets, we are using Weemss and a simple embed on the main conference page.
To retrieve the information about the ticket that has been purchased, we ended up using the CSV export functionality of Weems.
We fetch the export, find the new records in it & save them in our database.
Given the time constraint we had, we decided to go with something super simple - a cron, fetching every minute.
The cron called an API route, which is a serverless function, in the Next.js app.
Finally, everything gets stored in the database.
Potential alternative solutions to the cron can also be a celery beat running on Heroku or a scheduled lambda.
Each of the newly created users receives an email we sent using Mailersend.
Using the access code provided in the email, the user could access the streaming platform.
To achieve that we used NextAuth.js
. It provides us with a simple signIn
method which would make a call to an API route of our application where we would confirm if the access code is valid and if so - attach a session to the browser.
If there is a user in the database with the access code provided in the form - the user gets access to the platform.
The conference was held successfully with hundreds of users using the streaming platform at the same time.
We had a very tight schedule to build the entire thing and the tech choices that we made paid off.