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 create 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 as well as our guide for installing Effect. Enjoy!
Recent major updates:
- Effect is API stable with the Effect 3.0 release.
- Effect 3.11 has been released.
- The Effect community on Discord reached 3740+ members!
Technology
Here are all the technical changes from this week.
Effect Core
- Implement remoteAddress for @effect/platform-bun (Feature, Documentation Update)
- Remove socket write indirection (Bug Fix)
- Fix issue where identifier is ignored (Bug Fix)
- Schema: align the make constructor of structs with the behavior of the Class API constructors when all fields have a default (Enhancement)
- JSONSchema: fix since tag of fromAST API (Documentation Update)
- JSONSchema: represent never as ‘enum’ (Enhancement)
- JSONSchema: improve internal pruneUndefinedFromPropertySignature to handle nested unions containing undefined. (Improvement)
- Remove FnEffect type to improve return type of Effect.fn (Improvement)
- Avoid using non-namespaced “async” internally (Bug Fix)
- Allow the transformation created by the Class API to be annotated on all its components: the type side, the transformation itself, and the encoded side. (Feature)
- Allow passing fast-check parameters to prop function (Feature, next-minor)
- Add second granularity to Cron (Feature, next-minor)
- Added Cron.unsafeParse and allow passing the tz parameter as string (Feature, next-minor)
- Rewrite the Arbitrary compiler from scratch (Refactor)
- Add type for homogeneous enum schemas (Feature)
- Arbitrary: fix bug related to refinements of declarations raising a wrong missing annotation error (Bug Fix)
- Add span annotation to disable propagation to the tracer (Feature, next-minor)
- JSONSchema: handle the nullable keyword for OpenAPI target (Bug Fix)
Effect Experimental
- Remove socket write indirection (Bug Fix)
- Ensure Reactivity events aren’t missed (Bug Fix)
Effect Platform
- Http api param inherits description from schema (Feature)
- Implement remoteAddress for @effect/platform-bun (Feature, Documentation Update)
- Remove socket write indirection (Bug Fix)
- Fix remoteAddress changeset (Documentation Update)
- Handle WebSocket’s that emit ArrayBuffer instead of Uint8Array (Feature)
- Fix issue where identifier is ignored (Bug Fix)
- Refactor Clipboard module with TypeId and custom error (Refactor)
- Replace HttpApi.empty with HttpApi.make(identifier) (Refactor)
- Add predefined empty errors to HttpApiError (Improvement)
- Add context argument to HttpApp web handlers (Feature)
- Add type for homogeneous enum schemas (Feature)
Effect SQL
- Add the missing dependency on @effect/experimental to @effect/sql-X (Bug Fix)
- Allow use of the URL object with libSQL (Feature)
Effect Days 2025
The Effect Days conference is happening on March 19-21, 2025, and it’s the perfect chance to connect with the Effect community and celebrate the Effect ecosystem in person! Get your ticket! 🎟️
This week, we announced Jérémie Dayan, Senior Software Engineer at inato, as a conference speaker.
Community highlights
Aleksandra Sikora, Developer Experience at EdgeDB, published an interesting article about Building with Effect and EdgeDB. In the article, she explains how Effect simplifies error handling and side effects by providing a type-safe, composable approach, enabling developers to model success, failure, retries, and more, with an initial learning curve that pays off in building robust, complex functionality.
Dillon Mulroy livestreamed four episodes of his series Integrating Stripe with Svelte 5 and EffectTS 🚀 on his Twitch channel.
Effect Job Opportunities
More and more companies are adopting Effect in their projects—here’s a list of exciting job opportunities that include Effect in their tech stack!
Superwall : Full-stack TS developer with backend & infrastructure experience.
Expand.ai : Software Engineer
Platonic Systems : Remote Effect Engineers
Inato : Senior Product Engineer
Medbill.ai : Founding Software Engineers (full-stack and backend)
inRev : Senior Software Engineer
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 Content Update
Maxwell Brown and Tim Smart were live on X(Twitter) on Tuesday with a new episode of Reimagining ContentLayer with Effect.
We published a new talk from our latest Effect Meetup in San Francisco, My journey as a developer: Exploring TypeScript & Effect by Dillon Mulroy.
Cause & Effect Podcast
Don’t forget to listen to our Cause & Effect podcast hosted by Johannes Schickling, and available on Youtube, X(Twitter), and audio platforms like Spotify and Apple Podcast. This podcast highlights stories from software engineers and companies using Effect in production. Each episode explores their journey of adopting Effect, the learning process, the challenges faced, and the benefits of integrating Effect into their tech stack.
In our first episode, we were joined by Attila Večerek, Tech Lead & Staff Engineer, who discussed how Zendesk incrementally adopted Effect in a polyglot environment with a large codebase. Give it a listen and let us know what you think on our social media or Discord!
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
Top comments (0)