News

What are the latest updates and new features in Jeasx?

Welcome to the news section of Jeasx. Here we are going to post updates about new features, bug fixes, and general information about the project. We are proud to announce that Jeasx is rock stable and ready for production. We are committed to keep the project as small as possible and focus on the core. Future updates are likely updates for 3rd party dependencies like fastify, esbuild and esbuild.

2024-10-04 - Jeasx 1.0.0 released

๐ŸŽ‰ It's finally here! Jeasx 1.0.0 is ready for production. We are proud to announce that the framework has reached feature completeness and is now ready for the masses. Lots of hours of work have been put into this project to make sure you have the best experience possible.


Release History

2024-09-23 - Jeasx 0.15.2 released

Updates to all @fastify-plugins and esbuild@0.24.0.

2024-09-21 - Jeasx 0.15.1 released

Decorate the Fastify request object with "path" property, so you can easily access the route path without query parameters via request.path. This solves 99% of all use-cases for recently removed @fastity/url-data.

2024-09-20 - Jeasx 0.15.0 released

This release comes with Fastify 5. It also removes @fastify/url-data and @fastify/accepts as dependencies, therefore your code might break. The reason behind this removal is to depend on less dependencies in the long run which makes maintenance of the core easier.

If you rely on either accepts or url-data, you must provide appropriate changes in userland code. For @fastify/url-data I would recommend to use fast-uri and for @fastify/accepts jshttp/accepts for parsing accept-header if needed.

Please note: there were some intermediate releases since the past proper release which shouldn't be used (and are mostly unpublished from npm).

2024-08-21 - Jeasx 0.11.2 released

Added simple Dockerfile to quickstart template. Dependency updates: esbuild@0.23.1, @fastify/cookie@9.4.0, @types/node@20.16.1

2024-07-27 - Jeasx 0.11.1 released

Performance optimization: if response is string or buffer, break evaluation loop early. This allows to build caches for pages and binary assets in userland.

2024-07-26 - Jeasx 0.11.0 released

Updated to jsx-async-runtime@0.5.0 which allows to override jsxToString from jsx-async-runtime to intercept / modify / replace JSX components via this context. Have a look at the example to see how it works.

2024-07-19 - Jeasx 0.10.1 released

Breaking change: removed @fastify/request-context in favor of the recently introduced this context. Changing your code should be straightforward. This change decouples userland code from Fastify. Additionally code for Jeasx and jsx-async-runtime is provided unminified, so debugging and testing is far easier now.

2024-07-12 - Jeasx 0.9.1 released

Updated to jsx-async-runtime@0.4.1 which fixes a problem when running tests with Vitest.

2024-07-10 - Jeasx 0.9.0 released

Updated to jsx-async-runtime@0.4.0 which allows to use 'this' as context object to avoid prop drilling. Have a look at the demo to see how things work.

2024-07-05 - Jeasx 0.8.0 released

Updated to jsx-async-runtime@0.3.0 (deprecated renderToString in favor of jsxToString)

2024-07-03 - Jeasx 0.7.6 released

Updated to esbuild@0.23.0

2024-07-01 - Jeasx 0.7.5 released

Updated to fastify@4.28.1, esbuild@0.22.0, pm2@5.4.1

2024-05-28 - Jeasx 0.7.4 released

Updated to esbuild@0.21.4, pm2@5.4.0

2024-05-17 - Jeasx 0.7.3 released

Updated to esbuild@0.21.3, @types/node@20.12.12

2024-05-08 - Jeasx 0.7.2 released

Updated to fastify@4.27.0, esbuild@0.21.1, @fastify/static@7.0.4

2024-05-07 - Jeasx 0.7.1 released

Updated esbuild to 0.21.0.

2024-04-27 - Jeasx 0.7.0 released

This release introduces a new feature that allows you to post-process the resulting payloads, such as prettifying the HTML output. You can now set up a response handler, for example, in a guard. The response handler takes the resulting payload as a parameter and returns the modified payload.


import * as prettier from "prettier";
...
export default function RootGuard({ request, reply }) {
  this.response = async (payload) => {
    return typeof payload === "string" &&
      String(reply.getHeader("content-type")).startsWith("text/html")
      ? await prettier.format(payload, { parser: "html" })
      : payload;
  };
}
Shame on me...

I have recently started writing news as we approach the 1.0 release. But you can study the changelog at GitHub to see what has happend in the past.

2023-12-30 - First public commit

Our Journey Begins! ๐ŸŽ‰ Introducing Jeasx, a revolutionary web development framework born out of a summer experiment in 2023. Our mission? To simplify web development using server-rendered JSX as the cornerstone, bringing back the essence of the web: HTML, CSS, and progressive enhancing JavaScript. Join us as we redefine the future of web development together!