You might have heard that @EffectTS_ comes with a learning curve. That is true. BUT when you master the core concepts, using them in your apps is a hell of a ride. It is truly a joy to use, and it makes your apps more resilient. Learning it is worth your time! After using it…
This Week in Effect - 2024-05-31
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 2900+ 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.
- Update outdated RequestResolver description and remove redundant assignment in internal implementation (Refactor)
- Fix: DeepMutable tuples (Bug Fix)
- DeepMutable: remove redundant branch (Refactor)
- Gen context (Feature, next-minor)
- Add queuing strategy option for Stream.toReadableStream (Feature, next-minor)
- Introduce Redacted”T” module (Feature, next-minor)
- Ensure isTupleOf works with ReadonlyArray (Bug Fix, next-minor)
- Platform: readme: add KeyValueStore section (Documentation Update)
- Docs: Add example for getting raw request in platform README (Documentation Update)
- Remove temp directory for FileSystem makeTempFileScoped (Bug Fix)
- Update platform README with example for streaming stdout (Documentation Update)
- Feat: added KeyValueStore.layerStorage (Feature)
- Display a nicer message in the cli wizard when using Option (Bug Fix)
- CLI: README: Include Basic Usage and revise the Tutorial section (Documentation Update)
- Introduce Redacted”T” module (Feature, next-minor)
- Ensure sqlite wasm type id is unique (Bug Fix)
- Fix(sql): mysql migrator (Bug Fix)
- Schema: readme: refactor Transformations section (Documentation Update)
- Refactor Formatting Errors section (Documentation Update)
- Add tag and TaggedStruct constructors (Feature)
- Schema: readme: fix typo (Documentation Update)
- Add missing makePropertySignature constructor (Bug Fix)
- Add requiredToOptional function to Schema module, closes (Feature, Documentation Update)
- Introduce Redacted”T” module (Feature, next-minor)
- Update timeout parameter type in flakyTest function to accept DurationInput (Refactor)
- Vitest: add basic docs (Documentation Update)
In the last week, we welcomed +50 new Effecters to our Discord community - we’re excited to have you on board!
Our ever-growing community consistently shares their experiences and feedback on using Effect:
-
André König, CEO & Solution Architect at Open Formation shared his feedback about learning the core concepts of Effect:
-
Jean-Baptiste Musso and the Evryg team have been using Effect in production for 2 years, and shared how Effect led to a 10x performance improvement to one of their projects:
We’ve just improved the performance of an app generating PDF files with Puppeteer by a factor of 10, going from ~30 secs to about 3. How? Install @EffectTS_, then wrap code with Effect and add telemetry. Analyze spans, then add concurrency: true, Requests + caching. That’s it.
-
Jess Martin gave a presentation at the LocalFirstConf in Berlin on May 30th, explaining how to share schemas between applications for interoperability with DXOS and Effect.
Awesome talk from @jessmartin on how you can share your schema between apps for interoperability with @dxos_org and @EffectTS_
-
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…
- Another talk from the Effect Days Conference was released on Monday, ‘Next level type safety with Effect’ by Aleksandra Sikora. In her presentation, Aleksandra discusses the benefits of using Effect, a meta-framework for TypeScript that takes it to the next level and helps handle code complexity, async code, dependency injection, and error handling in a type-safe manner.
- The second episode of Mattia Manzati’s series on Effect Cluster Integration with Effect RPC is now available on the Effect Youtube Channel
- Michael Arnaldi, author of Effect, was featured on the nickyt.live podcast on Monday where he introduced Effect through a live coding session. Watch the full stream below and check out the repository with code demos from the episode.
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