DEV Community

Cover image for Real time in no time
Giuliano1993
Giuliano1993

Posted on

Real time in no time

Good morning everyone and happy MonDEV! ☕

How is this December starting for you? Have you already got into the Christmas mood? How many of you have started the new Advent of Code? Unfortunately, I am not managing to follow it this year, but I don't exclude the possibility of having a full-immersion during the holidays, who knows! 🎄

But let's get to it, what's the tool of the week?

Today, I want to talk to you about Convex, a tool that in some aspects resembles supabase or appwrite, essentially a Backend-As-A-Service; however, it has a series of differences that make it really interesting.

Let's start with the assumption that, despite offering similar features to other tools, such as managing auth or the filesystem, the focus of this tool is mainly on the database; the entire structure is designed to make the management of the DB as simple and agile as possible.

Starting from the base, if you have a classic JSON collection locally, through the command npx convex import --table you can import it directly into your remote project, creating the table at the same time. Then, going to the interface, you can automatically generate the schema that will allow you to work with your data in a typed manner without having to manually write the related types.

Regarding data access, everything is managed through queries and mutations, the former for simply querying data and the latter for making changes. As you develop these functions to interact with the DB, they will be saved directly on the convex server, and you can also run them directly from there to test them with different parameters, check their performance and output in a scenario isolated from the rest of the application. Moreover, if there are operations that need to be performed periodically, on the db or not, convex also implements the possibility of setting up cron tasks.

If all this is not enough for you, I saved the most interesting thing for last. Development with Convex is RealTime by default. Therefore, any change that occurs in your db will be displayed in real time to every client without the need for additional implementations. This makes Convex ideal for quickly having a structure to rely on with very dynamic applications where users need constant updates!

The Convex client is available for a wide variety of languages and frameworks, from pure JS to React or TanStack Query, but also Python, Kotlin, and Rust! In short, you have many ways to try and use it; I invite you to do so because it is one of those tools that makes development truly enjoyable.

Articles of the Week

  • PHP Performance Optimization: an interesting article on some performance and memory optimizations with PHP; useful both if you are not very familiar with the PHP world and want to delve into these concepts, and if you are more experienced and want to refresh your memory.
  • PIE (PHP Installer for Extensions): staying in the PHP world, anyone who has used PHP knows that there are various ways to install PHP extensions, and it's not always very straightforward. The PHP Foundation recently announced and launched a pre-release of PIE, an Extension Manager for PHP, which will roughly follow the syntax of installations with Composer.

That's all for today, I hope I provided you with some interesting insights for your Christmas projects!

As always, I just have to wish you a good week and

Happy Coding 0_1

Top comments (0)