I wrote about adding @EffectTS_ to my frontend app despite people calling it FAT dev.to/datner/the-eff…
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 get started, below you’ll find links to our documentation as well as our guide for installing Effect. Enjoy!
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!
Below you can find all the technical changes that occurred last week.
- 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)
- Fix memory leak in Socket’s (Bug Fix)
- Browser Geolocation API (Feature)
- Fix memory leak in Socket’s (Bug Fix)
- Update otel deps (Improvement)
- Add backup api to sqlite-node client (Feature)
- Sql: use constants from otel semantic-conventions instead of hardcoded values (Refactor)
- 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)
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!
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:
👀hookform/resolver v3.4.0 published with Effect-TS schema support @EffectTS_
…and quicktype included Effect/Schema in their backed up list of generators:
Very nice selection of supported generators from @quicktypeio.. Seeing @EffectTS_ here made my day :) app.quicktype.io
Dillon Mulroy, Software Engineer @ Vercel, shared a particularly insightful comment from a fellow developer’s first experience building something with Effect:
Feedback I heard from someone today after they built something real with @EffectTS_ for the first time. "everything just worked first try because the primitives are correct and the types fit like a perfect puzzle"
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