PatroniteDB
PatroniteDB is an online database that provides in-depth insights into Patronite creators and trends. I developed it as a hobby project using Nest.js and SQL for the back end and React for the front end.
Stack
- Tanstack Query
- Docker
- Nest.js
Categories
- Personal
- APIs
- Web development
Background and goals
Since Patronite is one of the most popular platforms for subscription services in Poland, I wanted to provide an overview of all its goings-on such as the most popular creators, highest-earning creators, new creators joining. Inspired by SteamDB, I went on to create an online database of all things Patronite that would enable the users to:
- Get insights into new, trending, and the most popular creators at a glance
- Access and filter creator charts by number of subscribers, revenue,
- Review a specific creators’ stats and compare them over time with tables and charts
Tech stack
Front end
Styling
Back end
Testing
CI/CD
Deployment
To achieve consistency, reusability, and a user-friendly design, I chose React and Material UI. Since the project involved multiple complex queries and countless dynamic routes, I opted for two Tanstack solutions that integrated seamlessly with each other — Tanstack Query and Tanstack Router.
To retrieve data from the Patronite website, I built a Node.js crawler — NestJS made the process quick, easy, and enjoyable. From then on, I stored my data in InfluxDB and queried it using SQL.
At its initial stage, the website is deployed with Vercel, but I also containerised it with Docker to ensure consistency and scalability as the project grows.
Challenges
Performance vs. flexibility
The aim of the website was to provide a wide range of functionalities and maximum flexibility to the users. This, however, involved many continuous user-triggered data queries and could end up affecting loading speed. To optimise performance, I made use of Tanstack Query’s extensive fetching and rendering functionalities, such as prefetching, suspense queries, or infinite queries.