Skip to content

This Week in Effect - #128

Foldkit on the Cause & Effect podcast. We rebuilt and redesigned the Effect website.


Hi Effecters!

Welcome back to This Week In Effect (TWIE) - your weekly update of the latest developments in the Effect community and ecosystem.

Effect is a powerful TypeScript library that helps developers build complex, synchronous, and asynchronous programs. One key feature that sets Effect apart is how it leverages structured concurrency to provide features such as async cancellation and safe resource management, making it easier to build robust, scalable, and efficient programs.

To get started, below you’ll find links to our documentation and our guide for installing Effect. Enjoy!

Recent major updates:

 

Technology

Effect v4 Beta updates

The first full week on the canonical Effect-TS/effect repository was packed, with a thorough Cron hardening pass, fiber runtime fixes, new core APIs, and continued AI and HTTP improvements — here are the most notable changes that landed this week.

  • Cron hardening: Validated Cron.make field restrictions, fixed Cron.prev month day rollover and weekday wrapping, fixed alias normalization, added day and weekday intersection semantics in the inspection representation, and corrected JSDoc examples and documentation accuracy.

  • Fiber runtime fixes: Fixed fiber self-interruption from inside a running observer, cleaned up more references on fiber exit, and fixed Fiber.joinAll observers leaking on interruption. Also fixed cache lookup to only interrupt when all awaiters are gone.

  • New core APIs: Added Effect.reduce for folding over a collection of effects, and added discriminants to Schema.toTaggedUnion for more precise tagged union encoding.

  • Schema improvements: Simplified the displayed Type, Encoded, and Iso types of required readonly Schema.Struct fields for cleaner hover types in editors, and preserved nested class construction when applying constructor defaults.

  • HTTP fixes: Fixed HttpRouter middleware context inference, routed multipart errors to HTTP responses, fixed published pre-response handler types, handled aborted HEAD responses during NodeHttpServer disposal, and fixed the OpenAPI generator’s handling of recursive schema forward references.

  • AI: Fixed OpenRouter dynamic tools sending an empty parameters schema, preserved OpenAI Responses cache write token usage, and restricted nightly AI codegen to Effect-TS repositories.

  • SQL: Added disablePreparedStatements option to @effect/sql-mysql2, and avoided creating a table when it’s not needed.

  • CLI: Removed the doubled “Expected” prefix from InvalidValue messages, and preserved chained vitest helpers like it.describe.each through the it proxy.

  • MutableList: Fixed filter empty-state handling to prevent incorrect state after filtering all elements.

  • Internals: Ran a dependency audit, moved pnpm config, and upgraded TSTyche.

You can follow the full changelog in the effect repository.

To catch up on more updates, check out Effect v4 Beta updates.


Other technical changes from the past week.

Effect Core

 

Cause & Effect Podcast | Episode #9

Foldkit: An Effect-First Frontend Framework

Devin Jameson joined Johannes Schickling on the Cause & Effect podcast to talk about Foldkit, an Effect-first frontend framework he’s been building, inspired by Elm architecture. Devin and Johannes discussed why Foldkit takes a schema-first approach to frontend state, how it differs from React, how commands model side effects, and why this architecture may be especially useful in the age of AI-assisted coding.

Play

The Cause & Effect podcast, hosted by Johannes Schickling, features stories from software engineers and companies that use Effect in production and is available on YouTube, X(Twitter), and audio platforms like Spotify and Apple Podcast.

 

Effect Website

We redesigned and rebuilt the Effect website! Check out the public repo and feel free to post issues / pull requests there.

The docs are still for Effect v3 for now. This new website gives us the foundation to build a much better documentation experience for Effect v4, which we’ll continue developing as we move toward the release.

 

Community Highlights

 

 

 

 

  • Effect.ts + GraphQL | Using Effect RPC to Serve GraphQL by Lucas Barake.
Play

 

 

  • muster - A keyboard-driven TUI for managing your GitHub issues across repositories, built with Effect. By mrtdurdenthe2.

 

Effect Team Content Update

  • Effect v4 RC Prep, CLI Wizard Mode, HTTP API Patterns, Effect Office Hours 38 🔥
Play

 

  • Schema.struct vs Schema.class in V4, Schema.opaque vs Plain Struct schemas
Play

 

Effect Job Opportunities

Looking for a role where you can work with Effect? We now have a dedicated Effect jobs page with open roles from companies using Effect. We’ll keep it updated as new opportunities come in.

Explore Effect job opportunities →

New this week: Datapizza is hiring a Software Engineer in Milan, Italy.

Disclaimer: Please note that these job postings are shared for informational purposes, and we encourage applicants to verify details directly with the hiring companies.

 

Effect Merch Store

The Effect Merch Store offers a selection of Effect-branded items designed for the community. All orders are processed and fully managed through Printful.

 

Closing Notes

That’s all for this week. Thank you for being a vital part of our community. Your feedback is highly valued as we fine-tune this format. Feel free to share your thoughts, and we’ll do our best to tailor it to the needs of our community.

Effect Community Team

Share

Last updated

// Effect Community

Join the conversation on Discord

Meet engineers running Effect in production.