Integration testing an Appwrite backed GraphQL server
At the start of 2024 I was working on an idea I had for translating the 7 days, 6 weeks, 6 months approach to planning that I used into a self-hostable web app.
I wanted to go down the self-hostable route as I hate how every Todo app just expects you to hand over your (often highly sensitive) data so you can access it across multiple devices.
In the past I had used Firebase as a all-in-one platform for the apps that I built but I cannot think of a worse company (except maybe Facebook) to store potentially sensitive data on and Firebase is definitely not self-hostable.
I decided instead to look at Appwrite, a platform I had played with in the past and has grown more and more mature since then. Appwrite offers services similar to Firebase such as authentication, serverless functions, storage and database and has server and client APIs that make interacting with these a breeze.
I eventually ended up landing on Appwrite as the platform of choice to build my new web app on. The architecture for the app was to be relatively simple, consisting of an Appwrite instance for the database, a standalone GraphQL server using Apollo for a backend API and a React web app frontend using react-apollo.
For authentication the front-end would use the Appwrite client library to sign in and then pass a JWT for the session to the GraphQL server in order to carry out actions for that user.