Quirrel hits v1 🥳
Tags: quirrel, jamstack, happynewyear
Published: 2021-01-04 13:51:52

---
title: Quirrel hits v1 🥳
published: true
description: Improved Cron Jobs, 5 new Frameworks, Production UI, ...
tags: quirrel, jamstack, happynewyear 
cover_image: https://steppingoutwithanagoraphobic.files.wordpress.com/2014/01/squirrel-party.jpg
---

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](https://docs.quirrel.dev/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:

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

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

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

![Registered a Cron Job](https://dev-to-uploads.s3.amazonaws.com/i/rrpfzievr9vamx7kia88.png)

> 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:

- [Nuxt.js](https://docs.quirrel.dev/api/next) (`quirrel/nuxt`)
- [Redwood](https://docs.quirrel.dev/api/redwood) (`quirrel/redwood`)
- [Vercel Serverless Functions](https://docs.quirrel.dev/api/vercel) (`quirrel/vercel`)
- [Express.js](https://docs.quirrel.dev/api/express) (`quirrel/express`)
- [Connect](https://docs.quirrel.dev/api/express) (`quirrel/connect`)

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](https://ui.quirrel.dev) now supports connecting to non-local environments.
The connection dialog can be opened using a new dropdown in the top left:

![Connection Dialog](https://dev-to-uploads.s3.amazonaws.com/i/8wfh6c75pxodpkvi1rip.png)

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.[^problems]
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.

[^problems]: 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

## 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](https://docs.quirrel.dev/migrating-to-v1)

I'm looking forward to your feedback!

All the best for 2021,
Simon