Appwrite Hackaton: MoviePlay

published 06-2023

Table of Contents

Well, I recently quit my job so I got free time and this hackathon between Hashnode and Appwrite is announced. This is clearly a sign. So I decided to build MoviePlay. Before we get into the trials and tribulations of this project, let’s get all the technical stuff out of the way.

The Idea

Have you ever had a debate with someone as to what is the correct order to watch Star Wars? There’s the chronological order, the release order, the machete order

enough already


  • Me

Tech Stack

  • ReactJS & Typescript (ViteJS)

  • TailwindCSS & DaisyUI

  • Appwrite Cloud

    • Database

    • Account

    • Functions

      • NodeJS
  • Vercel

  • The-Movie-Wrapper (I made this one, but still…)

Look at the code

You can see the code here and see it live here


On the using of Appwrite

I had already used a self-hosted version of Appwrite and have been tinkering with the closed cloud beta for a bit, so I was already familiar with the tool and will not really talk about onboarding.


I was a bit disappointed relationships (as of 06/04/2023) are not yet supported on Cloud, so you still need to do all the foreign key constraints by hand, which makes fetching client-side a bit of a hassle.


I really like how accounts are handled, especially oauth2 stuff; the fact that you can connect multiple providers for the same account seamlessly is pretty cool


I needed to use functions to store the number of views a playlist could get. I would have loved a trigger on database read operations, but I can see it would probably be too much performance overhead; the way I solved this is when navigating to a page, the page loader function triggers the function to increment the views number.