Effect has been nominated for The Most Exciting Use of Technology in the JavaScript Open Source Awards, part of JS Nation @thejsnation. Use the link below to vote for Effect! ✅ The winners will be announced at the JS Nation Conference on June 13. docs.google.com/forms/d/e/1FAI…
This Week in Effect - 2024-05-24
Hi Effecters!
Welcome back to This Week In Effect (TWIE), a weekly update to keep you in the loop with all the latest developments in the Effect community and ecosystem.
Effect is a powerful TypeScript library designed to help developers create complex, synchronous, and asynchronous programs. One of the key features 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!
We want to make it easy for you to find everything you need to fully enjoy your Effect journey and actively engage with the community! Here, you’ll find all the significant developments from the previous week, including community activities such as Discord discussions, noteworthy posts, YouTube content, and technical advancements.
Recent major updates
- Effect became API stable with the Effect 3.0 release.
- Effect 3.2 has been released.
- Our community on Discord reached 2850+ members!
- We’re publishing new Effect Days talks every week on the Effect YouTube channel.
Here are all the technical changes that occurred last week (note that changes included in the 3.2 release will not be listed).
- fix for Infinity delays in Schedule (Bug Fix)
- Release queue: minor (Improvement)
- Fix Config.Wrap for optional properties (Bug Fix)
- Prohibit name clashes in Effect.Tag (Feature)
- Avoid eager read of the stack when captured by a span (Bug Fix)
- Improve internalization of functions to clean stack traces (Improvement)
- Ensure effectinternal* function names are preserved with esm (Bug Fix)
- Fix internal cutpoint name preservation (Bug Fix)
- Array: fix flatMapNullable implementation and add descriptions / examples (Bug Fix, Documentation Update)
- Array: simplify signatures ReadonlyArray (Refactor)
- Add dtslint tests for separate, getRights, getLefts, getSomes (Feature)
- Attach Stream.toReadableStream fibers to scope (Bug Fix)
- add Layer.annotateLogs & Layer.annotateSpans (Feature, next-minor)
- Release queue: minor (Improvement)
- Update the definition of Handler to utilize App.Default (Refactor)
- Add Getting Started docs for HTTP Server (Documentation Update)
- Wait for callback in node http server responses (Bug Fix)
- Update dependencies (Improvement)
- Platform: add “Applying Middleware in Your Application” section (Documentation Update)
- Make Array.separate, Array.getRights, Array.getLefts, Array.getSomes heterogeneous (Feature)
- Remove pool resizing in platform workers to enable concurrent access (Bug Fix)
- Release queue: minor (Improvement)
- Release queue: minor (Improvement)
- Update dependencies (Improvement)
- Release queue: minor (Improvement)
- Release queue: minor (Improvement)
- Release queue: minor (Improvement)
- Replace Postgres.js parsed options in PgClient.config (Bug Fix)
- Update dependencies (Improvement)
- Add sql.reactive api to /sql-sqlite-react-native (Feature)
- Allow additional span attributes to be passed to sql clients (Bug Fix)
- Added a note about the usage of attachPropertySignature (Documentation Update)
- Schema: add recap section to README.md (Documentation Update)
- Add onNoneEncoding to schema.optional (Feature)
- Change trimmed json-schema pattern (Bug Fix)
- Add test for Trimmed pattern (Improvement)
- Add documentation for Schema.OptionFromUndefinedOr (Documentation Update)
- Add note about Schema.Struct (Documentation Update)
- Add optional and optionalWithOptions API interfaces (Feature)
- Update dependencies (Improvement)
- Add support for Enums in Record (Feature)
- Add support for Config module (Feature)
- Schema: add Config documentation (Documentation Update)
- Schema: readme: add warning on Secret schema composition (Documentation Update)
In the last week, we welcomed +50 new Effecters to our Discord server! Thank you all for joining the Effect community, we’re excited to have you on board!
Effect has been nominated for The Most Exciting Use of Technology in the JavaScript Open Source Awards, part of JS Nation. The winners will be announced at the JS Nation Conference on June 13 in Amsterdam. You can vote for Effect ✅ until May 30!
The Evryg team has announced the date of the second Effect Paris Meetup: Tuesday, June 25th at 7:00 PM. Now accepting talk submissions—submit yours today! As a reminder, the meetup will be in French.
🇫🇷📣 @EffectTS_ Paris meetup is now opened to all speakers out there, you just need to open a new repo issue to submit a talk 👇🏻 github.com/evryg-org/effe…
Stephen Bluck, a long-time Effect community member, recently made public his project about integrating Remix with Effect.
For those interested in integrating @EffectTS_ with @remix_run, I've recently made my project public. Check it out here: github.com/stevebluck/chuz It's a work in progress so give it a follow if you want to see how it turns out.
One of my @remix_run actions built with @EffectTS_ telling me what errors I need to handle. That auto complete hits different.
Dillon Mulroy, Software Engineer @ Vercel, shared an update on his work about building a Spotify Twitch integration with Effect. Check out the tweet below for more details:
The Song Queue Twitch overlay is working ✨ Powered by @EffectTS_ and @sveltejs, designed by @v0
Michael Arnaldi, author of Effect, will join Nick Taylor on the nickyt.live podcast on Monday, May 27th at 5 pm UTC to give an introduction about Effect.
Looking forward to chatting with @MichaelArnaldi this Monday to discuss @EffectTS_! Come hang with us May, 27th at 5pm UTC! Link in 🧵
On Monday, we released a new talk from the Effect Days Conference, ‘Durable Workflows with Effect Cluster’ by Mattia Manzati. In this talk, Mattia delves into the concept of durable workflows using Effect Cluster, which helps handle failures and retries in distributed systems, and provides building blocks for handling activities and workflows. Watch Mattia’s full presentation below:
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