DEV Community

Cover image for Quirrel hits v1 🥳
Simon Knott for Quirrel

Posted on

Quirrel hits v1 🥳

A happy new year everyone! 🎉

I'm proud to announce: Quirrel goes to v1.
The release comes with improvements all over the board.
Let's go through it!

TL;DR: There's improved cron jobs, clients for 5 new frameworks and the Quirrel UI now also can be used for monitoring deployments. Migrating to v1

Improved Cron Jobs

Cron Jobs have been a huge PITA:

I don't understand how and where I can register "good old cron jobs"?
~ every Quirrel user, ever

With v1, they finally get a well-deserved make-over:

// pages/api/myCronJobRoute.ts
import { CronJob } from "quirrel/next";

export default CronJob(
  "api/myCronJobRoute",
  "5 4 * * *", // every day at 04:05
  async () => {
    // do something
  }
);
Enter fullscreen mode Exit fullscreen mode

That's it, that's everything you need to do.
Your local Quirrel instance will automatically pick it up:

Registered a Cron Job

This is implemented using filesystem watchers,
similarly to how tsc --watch works.

For Deployments, running quirrel ci once during build will register all detected Cron Jobs with your production Quirrel instance.
It will also remove obsolete ones.

Support for new Frameworks

After seeing tremendous interest in Quirrel among Next.js and Blitz.js users,
I'm adding support for 5 new frameworks:

If you have another framework in mind that you'd like a Quirrel client for, let me know! :)

Pre-v1, you had to install both quirrel and @quirrel/next.
To ease maintenance, they were consolidated, so @quirrel/next becomes quirrel/next (notice the missing @).

Until now, Next.js users could omit the leading api/ in their Queue's routes.
Going forward, that won't be possible anymore, to match behaviour with the other framework client.

Quirrel UI for Production

You've asked for it, so here it is: The Quirrel UI now supports connecting to non-local environments.
The connection dialog can be opened using a new dropdown in the top left:

Connection Dialog

It enables you to monitor & administrate any Quirrel deployment,
which has been a heavily requested feature.

I'm thinking about adding a "Open in UI" button to the Quirrel Dashboard.
Let me know if that'd be helpful for you.

Why this release was chosen for v1

The previous state of Cron Jobs really nagged on me.
Although they played an integral part to my initial vision for Quirrel,
I struggled to find an easy-to-use design for a long time.1
Over the course of mutliple brainstorming sessions with some of you (thank you ❤️), we managed to find a good solution.
With those improved Cron Jobs shipping in v1, I'm finally content with Quirrel's feature set.

Moving to v1 also means "going stable".
This is a big step, because we have to maintain that API for the foreseeable future.
Judging by the feedback I received, the current API is well-designed and fit for its task,
giving me the confidence to commit to it.

Thank you.

Since Quirrel's inception in Q3 last year, I've received amazing support from all of you. Thank you ❤️
If you've put in the time to brainstorm with me: Thank you x2 ❤️ Your input has been incredibly valuable for Quirrel.

As you know, I want to create the best developer experience possible.
If there's anything that detracts from it, please let me know! :D

To migrate your application to v1, follow this Guide: Migrating to v1

I'm looking forward to your feedback!

All the best for 2021,
Simon


  1. CronJobs come with their special set of problems, primarily caused by serverless environments running forever. HMU if you want to read/hear more about that :D 

Top comments (0)