About Hivio

What is Hivio?

Hivio, a word that comes from the combination of "hive" (a bee hive) and "io" (for technology or input/output), pronounced /haɪˈviːoʊ/ (HAY-vee-oh), is a tool that helps you easily search, add, manage and organize your series and movies through a user-friendly way. It also helps you discover new content that you might like to watch with the help of the Hivio community (public user profiles).

The Why

When exploring for something that fit my needs of simply easily tracking my movies and series, I couldn't find anything until I started crafting Hivio, I came across a tool called Trakt, but it seemed too bloated with features, ads, and quite overkill for just tracking what I'm currently watching since I watch from 3-6 shows at a time on average since only 1 episode comes out per week and can easily lose track while also watching movies on the side while I wait for new episodes and having a history of what I've watched and also be able to recommend titles to friends when they need some recommendations. So when I saw the EdgeDB Hackathon announcement, the opportunity was there to build something, Hivio was then born.

I've given this a try before but on a much smaller and more personal scale, this project can be seen Peronal Watchlist but, has quite a lot of limitations, flaws and very few features where, only I can add titles through a dashboard that wasn't that user-friendly in the first place. This changes when using Hivio, the experience is much better from sharing, to discovering new content and even adding something to your hive watchlist.

Building Hivio

Hivio is built using EdgeDB which is used for storing movie and series with their basic metadata (kind of used like a cache and updates every certain time) since not all data can be kept up to date such as ratings or cast members which in some cases, the given title is very new and has to get updated directly from the provider, the provider being in this case TMDB, a movie and series database with a very generous free API.

It also uses EdgeDB for authentication with Google OAuth provider (for now) to be able to save movies and series for every user and also be able to create a personalized public profile with their stats and history that users can share with their friends.

It is also built using Next.js with Server Actions (with next-safe-action), TailwindCSS for styling and shadcn/ui for UI components and all deployed on Vercel. And of course, it uses Typescript.

My Overall Experience

Using EdgeDB was a challenge at first, but after 1-2 days of fiddling around, I was able to get the hang of it very quick, I being a fellow user of Prisma and from time to time also a Drizzle user, EdgeDB did have its learning curve but, it all resulted in a good experience at the end. Huge thanks to the wonderful support team in their Discord, I was able to learn and master some concepts of EdgeDB with their help which helped me massively refactor some of my code.

While building the UI, it was quite a challenge to get things right, I went through 3 iterations just for the "Add Title" to hive Actions, 2 iterations for the public profile and 3 iterations just for the hive dashboard layout.

Though, I also enjoyed the fact that you can set up a whole development environment with authentication flow in a few minutes and within a few commands, you can have it in production and on the EdgeDB Cloud and obviously, I couldn't have deployed this fast without Vercel, which I use mainly for all my projects.

Built by Abraham (AbrahamX3)