This Week in Effect - 2024-06-14
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 with Effect, explore our quick-start guide and documentation below.
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.3 has been released.
- Our community on Discord reached 3000+ members!
- We're publishing new Effect Days talks every week on the Effect YouTube channel.
Technology
Here are all the technical changes that occurred last week.
Effect Core
- Change Config.array to return Array instead of ReadonlyArray (Feature)
- CatchTag: add more type-level tests (Feature)
- Fix runtime error in Struct.evolve by enhancing compile-time checks (Bug Fix)
- Updated Chunk.toArray and Chunk.toReadonlyArray. Improved function signatures to preserve non-empty status of chunks during conversion. (Improvement)
- Fix Unify for Stream (Bug Fix)
- Fix discard option in Effect.all (Bug Fix)
- Ensure multiline error messages are preserved in cause rendering (Bug Fix)
- Add lastNonEmpty function to Chunk module (Feature, next-minor)
- Feat(Stream): implement Success, Error, Context type accessors (Feature, next-minor)
- Make Option.liftPredicate dual (Feature, next-minor)
- Implement at method for tuples (Feature, next-minor)
Effect Platform
- Fix KeyValueStore for react native by making constructors lazy (Bug Fix)
- Update example fix for workspaces (Refactor)
- Typo in Example Source Code in README.md (Documentation Update)
- Refactor Socket to use do notation (Refactor)
Effect Experimental
Effect Schema
- The minItems filter now checks for an invalid argument n inferior to 1 and, when valid, refines the type to NonEmptyReadonlyArray"A". (Feature)
- Clarify usage and behavior of Schema.is in documentation (Documentation Update)
- Update propertyOrder option in README to use "original" instead of "input" (Documentation Update)
- Remove stray bit of text in Italian (Documentation Update)
- Add Schema.NonEmptyChunkFromSelf and Schema.NonEmptyChunk (Feature)
- Add instructions for handling unsupported types in JSON Schema generation to README (Documentation Update)
- Enhance README with guidelines on schema transformations and arbitrary data generation best practices (Documentation Update)
Community highlights
In the last week, we welcomed +50 new Effecters to our Discord community, our community reached the outstanding milestone of 3000 Discord members! We're very excited to have you all on board!
We have exciting news for this week! Effect has won the The Most Exciting Use of Technology 2024 award at the JSNation Conference 2024 as part of the JavaScript Open Source Award, and Sandro Maglione was in Amsterdam to collect the trophy 🏆. We're very grateful to the community who supported Effect in winning this first official award.
- Gheorghe Pinzaru, who is building 3loop.io, shared some feedback about his choice of using Effect as the transaction decoder platform for his application.
- Johannes Schickling, Effect DX and Power User, reminded us of one of the most important Effect fundamentals: "If it compiles, it works".
- Milad Vafaeifard, Software Engineer, Effect Advocate, and Creator of Sign Language Tech, will be giving a talk about Effect at the JSConf Budapest on June 27th: Navigating towards Production-Grade TypeScript at Scale: How Effect Helps You Reach Your Goals Without Drowning in Complexity.
- 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.
Content update
- We released a new talk from the Effect Days Conference on Monday. 'Effect CLI - A love letter to developers tired of settling for less' by Maxwell Brown. In his presentation, Maxwell introduces Effect CLI, a library designed to improve the developer experience on the command line, and demonstrates its features with an example CLI application. Check out the video below.
- Convex, an all-in-one platform for open-source backend, did a livestream on their X(Twitter) account showing the Convex + Effect → Confect integration.
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-06-07
Jun. 7th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect 3.3 release. 'Building type-safe REST APIs powered by @effect/schema' by Anna DevMiner.
Read more
This Week in Effect - 2024-06-21
Jun. 21st, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect 3.4 & Schema 0.68.0 release. 'Discriminated Unions in TypeScript, Effect, and ArkType' by David Blass. Michael Arnaldi joining the London Node.js group
Read more