This Week in Effect - 2024-05-17
Hi Effecters!
Welcome back to a This Week In Effect (TWIE), our weekly update that aims to help you keep track of everything that is going on inside our Community and the Effect Ecosystem.
If it’s your first time here, 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 begin your Effect journey, take a look at our quick-start guide and documentation below. Enjoy!
Overview of TWIE
If you're new to TWIE, here are a few words on what TWIE is and what it aims for.
We’re happy to see the community growing so fast, with more and more people adopting Effect. At the same time, we understand that it might not be easy keeping up with everything that is going on in the Effect Ecosystem:
- Effect became API stable with the Effect 3.0 release.
- Our community on Discord reached 2790+ members!
- We're publishing new Effect Days talks every week. Make sure you don't miss any by subscribing to the Effect YouTube channel.
- All projects around Effect are receiving key updates!
We want to make it easy for you to find all the info you need to fully enjoy your Effect journey and actively engage with the community!
And, that’s why we created TWIE – a weekly update to inform you about key events about Effect in the previous week, both from the community (Discord discussions, X posts, YouTube content, etc.) and from a technical standpoint.
Now, back to business!
Technology
Below you can find all the technical changes that occurred last week.
Effect Core
- Fix: vitest custom tester with toMatchObject (rebase) (Bug Fix)
- Add examples to repeat, repeatN, repeatOrElse (Documentation Update)
- Fix Config.Wrap incorrectly wrapping functions & arrays (Bug Fix)
- Add "once: true" to all "abort" event listeners for AbortController to automatically remove handlers after execution (Bug Fix)
Effect Platform
- Fix memory leak in Socket's (Bug Fix)
- Browser Geolocation API (Feature)
Effect Experimental
- Fix memory leak in Socket's (Bug Fix)
Effect Vitest
Effect Opentelemetery
- Update otel deps (Improvement)
Effect SQL
- Add backup api to sqlite-node client (Feature)
- Sql: use constants from otel semantic-conventions instead of hardcoded values (Refactor)
Effect Schema
- Schema / Document how to introduce jsonSchema annotation type constraints in user-space (Documentation Update)
- Schema(internal): remove temporary usage of jest/expect (Refactor)
- Schema(readme): improve suspend examples (Documentation Update)
- Add cause in errors thrown by asserts (Bug Fix)
- Schema.optional: the default option now allows setting a default value for both the decoding phase and the default constructor (Refactor)
- Pick: do not return a ComposeTransformation if none of the picked keys are related to a property signature transformation (Bug Fix)
- Improving Predicate Usability of Schema.is (Improvement)
- Re-publishing schema due to empty root entrypoint (Bug Fix)
- Schema: add documentation for the Forbidden parsing error (Documentation Update)
- Feat: allow point-free usage of Schema.make constructors (Feature)
General Chore
Community highlights
In the last week, we welcomed +60 new Effecters to our Discord server! Thank you all for joining the Effect community, we're excited to have you on board!
Content update
On Monday, we released a new talk from the Effect Days Conference, 'Effective State Machines for Complex Logic' by David Khourshid. In this talk, David discusses the use of state machines and the Effect library for managing complex logic in applications. He explains how state machines help to clarify edge cases and use cases, and how the Effect library can be used to declaratively represent effects within state machines.
Mattia Manzati, Effect Cluster Contributor, went on with his work on @effect/cluster on his Twitch Channel, and this week, he completed the integration with Effect/RPC. You can catch up with Mattia's latest videos on the Effect YouTube channel. Below you can find episode #3:
Yuval Datner, Lead Full-stack Software Engineer and long-time Effect power user, wrote an article where he talks about his experience in adopting Effect in front-end environments, and answers a simple question: Is the Effect Tax worth it?
Milad Vafaeifard, Software Engineer and creator of Sign Language Tech, was live again with his second video on How to Build Server API with Effect.
The first episode of Michael Arnaldi's series "Integrating Effect with Remix" is now available on the Effect Youtube Channel.
We're happy to see that React Hook Form added Effect/schema support to their resolver:
...and quicktype included Effect/Schema in their backed up list of generators:
Dillon Mulroy, Software Engineer @ Vercel, shared a particularly insightful comment from a fellow developer's first experience building something with Effect:
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
Related Posts
This Week in Effect - 2024-05-10
May. 10th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Technical updates in Effect. 'Building AI Agents' by Tim Suchanek. 'Building Skott, A Journey of Effect-Driven Development.', by Antoine Coulon.
Read more
This Week in Effect - 2024-05-24
May. 24th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect 3.2 release. 'Durable Workflows with Effect Cluster' by Mattia Manzati. New Effect Paris Meetup date announcement. Effect nomination for Javascript Open Source Award.
Read more