• v3.1.0 5dc3f466d2

    v3.1.0 Stable

    tonymottaz released this 2026-04-25 01:05:53 +00:00 | 0 commits to main since this release

    Signed by tonymottaz
    GPG key ID: B6D30EE464115F5F

    New features

    • You can now load environment variables from a file using the --env-file CLI option in the grackle server command. The file is interpreted as in this Node.js documentation.
    • If your handlers throw and you do not catch it, Grackle will catch it, log the error, and respond with a generic 500 instead of hanging the response.

    Bug fixes

    • fix Vento not loading templates sometimes
    • fix how routes are defined for handlers and static files so that route matching works correctly
    • fix response.redirect() so that headers are set at the right time
    Downloads
  • v3.0.0 da129391f8

    v3.0.0 Stable

    tonymottaz released this 2026-04-23 02:47:30 +00:00 | 9 commits to main since this release

    Signed by tonymottaz
    GPG key ID: B6D30EE464115F5F

    Grackle v3.0.0 release notes

    Notable changes

    • The postprocess configuration is replaced by the more powerful templatingLanguages configuration, supporting custom processing pipelines for both static files and templates used by response.render()
    • Grackle now sends default Cache-Control headers in every response. Static files get a long max-age, and handlers are treated as private.

    Breaking changes

    • The postprocess config is removed. Use templatingLanguages instead.

    New features

    • You can configure custom templating languages and static file processing with templatingLanguages in your config.
    • Default Cache-Control headers are sent in every response.
      • To override the default in static files, use staticFilesCacheControl in your config
      • Handlers can use response.setHeader to override the default
    • JavaScript templates can export a const string called contentType to change the content type of the response from the default text/html

    See the bundled documentation for more details.

    Bug fixes

    • response.removeHeader and response.setHeader did not work. Now they do.

    Other

    • Dependency versions are now pinned
    • Dependencies upgraded
    Downloads
  • v2.2.0 bdfd252881

    v2.2.0 Stable

    tonymottaz released this 2026-04-18 15:10:17 +00:00 | 22 commits to main since this release

    Signed by tonymottaz
    GPG key ID: B6D30EE464115F5F

    This release adds TypeScript support:

    • Grackle now publishes types that can be consumed in your application code.
    • Your method and middleware handlers can be written in TypeScript. Grackle will use type stripping support from Node.js to run your code. Please refer to that documentation for recommended tsconfig settings.
    Downloads
  • v2.1.0 d587dd5b91

    v2.1.0 Stable

    tonymottaz released this 2026-04-16 17:51:53 +00:00 | 26 commits to main since this release

    Signed by tonymottaz
    GPG key ID: B6D30EE464115F5F
    • Adds support for a configuration file grackle.config.js
      • See documentation at /configuration
    • Adds support for custom postprocessing rules for static files
    Downloads
  • v2.0.1 0662e24518

    v2.0.1 Stable

    tonymottaz released this 2026-04-16 02:24:32 +00:00 | 29 commits to main since this release

    Signed by tonymottaz
    GPG key ID: B6D30EE464115F5F

    Fixed: the docs were not published with the package, so grackle docs resulted in a ENOENT error. Now it works.

    Downloads
  • v2.0.0 4c0a9bfa09

    v2.0.0 Stable

    tonymottaz released this 2026-04-15 16:01:00 +00:00 | 31 commits to main since this release

    Signed by tonymottaz
    GPG key ID: B6D30EE464115F5F

    Major updates

    • Simplification of file naming conventions
    • Better HMR
    • Switch Markdown rendering to markdown-it
    • View bundled documentation with grackle docs command

    Breaking changes

    • Handlers can only use a single template file now, and the template file name must be _template.<ext> where <ext> is a supported template file extension. There is no more content negotiation -- it must render HTML only. To render other content types, do it manually in your handler: response.send(200, yourContent, yourContentType).
    • No more concept of "static templates" using the $ file name prefix. Instead, static files may go through a postprocessing pipeline to be transformed. Currently, there are two built-in pipelines for Vento and Markdown files. In the future you can configure more.
    • NODE_ENV is no longer used to enable HMR. Instead, use the new --dev-hmr CLI option.

    New features

    • Markdown: GitHub alert syntax supported (bring your own CSS)
    • Markdown: Syntax highlighting supported (bring your own CSS)
    • CLI: new docs command to serve bundled documentation
    • CLI: new --dev-hmr option on the server command to enable HMR
    • Static file route matching includes the filename

    Fixes

    • HMR works better now
    • Route matching prioritization is more correct
    Downloads
  • v1.0.0 01be4b1a98

    v1.0.0 Stable

    tonymottaz released this 2026-03-30 21:25:07 +00:00 | 48 commits to main since this release

    Signed by tonymottaz
    GPG key ID: B6D30EE464115F5F

    The initial release of Grackle!

    Downloads