PostGraphile and Grafast release candidate!

Announced 2025-10-28 by the Graphile Team

After over 100 releases, PostGraphile V5 and Grafast V1 have finally reached release candidate status!🎉 Assuming no issues are found, this software, these APIs, are what will make up the final release. The runtime is ready and many of you are already using it in production, but the types and docs are a little behind. Try it out and tell us where the gaps are, and maybe help fill them!

Five years in the making, PostGraphile V5 raises the bar again

After a couple false starts, in February 2020 we kicked off the journey that would ultimately become PostGraphile V5 and the Grafast planning and execution engine. Since January 2023 we have shipped 38 pre-alpha, 20 alpha, and 49 beta releases. Every stage refined the ergonomics, uncovered tricky edge cases, and ultimately solved the four Grafast epics that blocked a stable release:

  • âś… “Everything is batched” but “unary” values (variables, context, etc) are treated as a special case.
  • âś… Early termination of field execution with a null now has first-class support.
  • âś… Plan-time “peeking” at runtime values is now forbidden, improving plan re-use.
  • âś… The exponential polymorphic branching hazard is now eradicated by converging before branching again.

The result is a platform that is faster, more expressive, more configurable, and easier to extend than anything we have shipped before.

Why this is still a release candidate

We do not anticipate breaking changes to the runtime behaviour. Numerous teams have already trusted beta builds in production for over a year and the feedback has been excellent. The remaining work is polish: verifying the docs, catching stray rough edges, and ensuring that migration guidance reflects the software as it exists today.

You can expect the occasional breaking change in TypeScript typings as we close gaps and fix inaccuracies. The runtime APIs will remain compatible, but you may need to adjust type annotations while we tighten things up. Likewise, some TSDoc comments are behind reality; we will update them alongside the docs.

If you bump into rough edges while trying V5, please raise an issue in the Crystal repo so we can address it before the final release.

Thinking in plans

For those using Grafast outside of PostGraphile, now is the perfect moment to validate that the “plans as dataflow” approach clicks for you: do you understand the separation of “plan-time” and “execution-time”? Can you see how principled communication between the steps allows for optimization without needing to revisit plan resolvers?

If you don’t understand it, that’s likely a failing of our documentation! Help us improve our explanations by sharing your feedback (whether confusion and frustration or success and praise!) in our Discord or with GitHub issues and pull requests!

Read more

Visit the announcement on PostGraphile.org for specific news about PostGraphile V5 and how to get the release candidate up and running.

Visit the announcement on Grafast.org for news about Grafast V1 - the new GraphQL planning and execution engine which powers PostGraphile under-the-hood.

Thank you Sponsors

Grafast and PostGraphile are crowd-funded open-source software, they rely on crowd-sourced funding from individuals and companies to keep advancing.

If your company benefits from Grafast, PostGraphile or the wider Graphile suite, you should consider asking them to fund our work. By significantly reducing the amount of work needed to achieve business goals and reducing running costs, Graphile’s software results in huge time and money savings for users. We encourage companies to contribute a portion of these savings back, enabling the projects to advance more rapidly, and result in even greater savings for your company. Find out more about sponsorship here on our website.

Thanks!