Why JavaScript is broken: Effect and TypeScript
Michael argues that Promise and async/await divide synchronous from asynchronous code while leaving errors, cancellation, and resource cleanup difficult to compose. 07:43 10:10¶
He describes Effect as a lazy computation: work described now and executed later, with typed errors and requirements. He distinguishes failures a program handles from defects it lets escape. 11:05 12:32 23:38¶
Sources
- Why JavaScript is Broken: How Effect and TypeScript Fixes It (w/ Michael Arnaldi) - YouTube. Michael Arnaldi. Recording; used for composable errors, dependencies, and resource cleanup. Accessed 2026-10-01.
Last changed 2026-10-07 in f1a00f2. Source on GitHub. Change log.
Linked from
- Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
Link context
Why JavaScript is broken: Effect and TypeScript — Michael Arnaldi argues that production JavaScript needs one composable model for errors, dependencies, and cleanup.
- Change log. What changed in the files served here, newest first.
Why JavaScript is broken: Effect and TypeScript — edited: feat(learn): teach cards 83 to 111 and finish the deck’s plain lines
- Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
- Rat Stack lore | rat-stack. Short, source-grounded notes on the ideas and decisions behind rat-stack.
Link context
Why JavaScript is broken: Effect and TypeScript — Michael Arnaldi argues that production JavaScript needs one composable model for errors, dependencies, and cleanup.
- Source change history (log.md). The generated change log as Markdown.
Why JavaScript is broken: Effect and TypeScript — edited: feat(learn): teach cards 83 to 111 and finish the deck’s plain lines