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:
- The Effect Days conference is returning this March 2025! 🎉
- The Effect community on Discord reached 3810+ members!
- Effect 3.12 has been released.
Technology
Here are all the technical changes from this week.
Effect Core
- Tests: use assertIncludes instead of assertTrue where applicable (Refactor)
- Test: add assertions for Option and Cause using node:assert, vitest and expect (Feature)
- Schema: improve handleForbidden implementation with SyncScheduler (Improvement)
- Internal: improve assertions (Improvement)
- A more precise signature has been applied for Effect.schedule (Bug Fix)
- Fix internal import in Schema.ts (Bug Fix)
- Update schema benchmarks (Documentation Update)
- Mark Micro test as flaky (with retry option) (Improvement)
- Schema: add additional tests for effectful transformations (Improvement)
- Make Array.makeBy dual (Feature)
- Duration: fix format output when the input is zero (Bug Fix)
- Internal: replace eitherOrUndefined API usage with isEither in ‘ParseResult’ (Refactor)
- Remove unnecessary type assertion in Effect.forEach definition (Optimization)
- Fix STM unification (Bug Fix)
- Enhance TagClass and ReferenceClass to enforce key type narrowing (Bug Fix)
- Make it easy to convert a DateTime.Zoned to a DateTime.Utc (Feature, next-minor)
- Add Promise based apis to Fiber’Handle,Set,Map’ modules (Feature, next-minor)
- Add HashMap.some (Feature, next-minor)
- Add ISO8601 duration formatting (Feature, next-minor)
- Schema: Add standardSchemaV1 API to Generate a Standard Schema (Feature, next-minor)
- Add missing Either.void constructor (Feature, next-minor)
- Internal: simplify formatters implementation (Optimization)
Effect AI
- Add Embeddings service to the AI integration packages (Feature)
- Support non-identified schemas in Completions.structured and AiChat.structured (Feature)
- Rename correlationId to toolCallId for AI structured outputs (Optimization)
- Add GenAI telemetry annotations to AI chat completions (Feature)
Effect CLI
- Fix imports (Bug Fix)
- Fix CLI -h to display default values (Bug Fix)
Effect Opentelemetry
- Fix imports (Bug Fix)
- Add LoggerProvider support to @effect/opentelemetry (Feature)
Effect Platform
- Fix imports (Bug Fix)
- Tests: use assertIncludes instead of assertTrue where applicable (Refactor)
- Add missing listen example for Bun (Documentation Update)
- Platform: add sync (fsync) (Feature)
- Add HttpServerResponse.mergeCookies (Feature)
Effect SQL
- Fix imports (Bug Fix)
- Send SELECT 1 as unprepared statements (Refactor)
Effect Vitest
- Fix effect vitest layer (Bug Fix)
General Chores
Community highlights
Thank you to Stephane Le Dorze, Tech Lead at GEODIS and a long-time Effect developer, for sharing his successful experience with migrating a codebase to Effect.
Dillon Mulroy live-streamed two episodes of his series Freelance project with TypeScript, Svelte 5, and EffectTS 🚀 and two episodes of his new series Building a budget syncing app for Splitwise and YNAB with AI and EffectTS 🚀 on his Twitch channel.
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 Edouard Penin as a conference speaker. Edouard is a full-stack engineer at Evryg.
Shout out to our conference sponsors, Inato and Evryg.
Inato is a global clinical trial marketplace that brings research to patients where they live. The Inato team is a long-time supporter of Effect and actively advocates for it within the developer community.
Evryg is a Paris-based software consulting firm specializing in Effect. The Evryg team leverages deep expertise in Effect to deliver innovative software solutions for clients.
Effect content update
- The eleventh episode of Re-building Contentlayer with Effect has been published on the Effect YouTube Channel.
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!
Effect Merch Store
In December 2024, we unveiled the Effect Merch Store, with a selection of Effect-branded items designed for the community. All orders are processed through Printful.
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)
Oneiro Solutions : Software Engineer - Core Team. Join our Discord and DM leighman for further info.
Microsub : TS Developer
Samsung Food : Full Stack Developer
Stealth team looking for an Engineer with experience in Effect. The job posting is available in the
#job-board
channel on our Discord.
Disclaimer: Please note that these job postings are shared for informational purposes, and we encourage applicants to verify details directly with the hiring companies.
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