β€’

newsletter

The story of why I made an Effect course (out now!)

At the beginning it was all fp-ts. Then fp-ts 3.0 was no more and the community became all effect. Soon effect will be everywhere, the course is here to help.


Sandro Maglione

Sandro Maglione

Software development

Effect course is out now! πŸš€

Effect will be extremely requested soon, similar to react. It solves most key problems of typescript, while still being just typescript πŸ’πŸΌβ€β™‚οΈ

The course solves a preliminary step: getting started with effect πŸ‘‡

What's there behind making a course? How did we get here?

Here is the full story πŸ“–


Back in the days of fp-ts

After my rebirth in the world of functional programming, everything changed meaning.

I was looking for functional everywhere. At the time fp in typescript was synonym of fp-ts. So I went hard on it πŸ’―

While fp-ts was better than plain "throw everywhere" typescript, the dev experience was harsh.

(For anyone mad at effect and yield*, below a real snippet of fp-ts πŸ‘‡)

pipe(
  getStoreApi({ id }),
  TO.fromTaskEither,
  TO.map((store) => { /** */ }),
  TO.chainFirstTaskK((analytics) =>
    pipe(
      TO.tryCatch(async () =>
        localStorage.getItem(VISITED_STORES)
      ),
      TO.chain(TO.fromNullable),
      TO.chain((data) => TO.tryCatch(async () => JSON.parse(data))),
      TO.chain((json) =>
        TO.tryCatch(async () => z.string().array().parse(json))
      ),
      TO.getOrElse(() => T.of<string[]>([])),
      T.chainFirstIOK((stores) => () => {
        if (!stores.includes(id)) {
          localStorage.setItem(
            VISITED_STORES,
            JSON.stringify([...stores, id])
          );
        }
      })
    )
  )
);

fp-ts 3.0 aka Effect

I was following the progress of what was planned to become fp-ts 3.0.

So many things open for improvements. Wondering how much life will improve with this 3.0 release.

Turns out that what changed was the package itself.

The fp-ts project merged with Effect πŸͺ„

And so my journey into effect started πŸšΆβ€β™‚οΈβ€βž‘οΈ

Forward to today: Typeonce

On 17 July 2024 I launched Typeonce.dev.

Typeonce is where I share resources for devs on technologies I support and use every day.

At the core my motivation is simple: I enjoy writing code, like a lot, and I'd like more people to enjoy it as well! πŸ‘¨β€πŸ’»

All resources at Typeonce are free. Really free.

Not like other courses "this is free, but give me your email, phone number, address, or whatever" 😐

I then offer private support for devs and teams to implement custom solutions. If you enjoy a course, but you have troubles applying the knowledge to your specific needs, that's where my service can help.

From zero to course

You may think it all starts from a blank page, and you just start writing the content.

Well, not exactly.

The course originates from hours working on production effect code. I explored the full API, made all the mistakes myself along the way, and learned some tricks and best-practices.

The course is a testimony of my knowledge of effect from real world practice πŸ’‘

The target audience is me, 2 years ago. It contains everything I would have told myself when I was starting. It would have saved a lot of costly mistakes and long refactoring πŸ˜…

Reviews

The first draft always has a large margin of improvement. Like large.

I asked for help. I wanted to understand the perspective of people just getting started to effect.

I asked for help on the Effect Discord community, looking for beginners eager to get started using effect and willing to provide feedbackI asked for help on the Effect Discord community, looking for beginners eager to get started using effect and willing to provide feedback

This started a long process of review and rewrites. The course structure changed multiple times.

What you see today is the result of multiple refinements to make everything as linear, simple, and complete as possible πŸ’―

Providing value

The feedback has been extremely positive πŸš€

The course is meant to be the best way for you to get started in your journey with effectThe course is meant to be the best way for you to get started in your journey with effect

The course keeps improving! Even after the release I plan to be fully open to feedback and updates πŸ‘€

You can start your journey with effect today: Effect: Beginners Complete Getting Started


What's next

More content already work in progress:

  • XState course: this is coming really soon, keep an eye open if you'd like to review the course and provide feedback πŸ‘€
  • Local-first: this will be huge as well in the coming years. The libraries are yet evolving, I plan to explore them and create the best resource to get started with the local-first paradigm in general πŸ”œ

It's hot and people are away for vacation and holidays πŸ–οΈ

Prepare for a lot of interesting new content as we move into the end of summer πŸš€

See you next πŸ‘‹

Start here.

Timeless coding principles, practices, and tools that make a difference, regardless of your language or framework, delivered in your inbox every week.