Skip to content

Instantly share code, notes, and snippets.

@ethanniser
Last active June 22, 2023 06:30
Show Gist options
  • Save ethanniser/c0c5090deb0e513da568272e9c965e6b to your computer and use it in GitHub Desktop.
Save ethanniser/c0c5090deb0e513da568272e9c965e6b to your computer and use it in GitHub Desktop.

Section Title

(internal description)

  • Top level page OR Dropdown
    • Inner Page (if dropdown)
      • Headings on Inner Page

Getting Started

(new devs start here, introduces the what and why)

  • Introduction
  • Why Effect?
  • Guiding (Principals?)
    • Immutability
    • Dependency Injection
  • Quickstart

Effect Essentials

(the super “core” stuff, explains Effect and basic usage. Would ideally be read by a new dev in its entirety, in order)

  • The Effect Data Type
  • Constructing Effects
  • Running Effects
  • Building Pipelines
  • Providing Context With Services

Tutorials

(now that we understand the basics, the reader can start branching out here. This section should answer the reader’s next questions: “how do log?” there’s a section for that, “how do I build complex dependency graphs?” there’s a section for that, etc…)

  • Escaping Callback Hell
    • Generators + Do Notation
  • Error Handling
    • Two Types of Errors
    • Expected Errors
      • Building Errors
      • Handling Errors
    • Unexpected Errors
    • Retrying
  • Managing Complex Dependency Graphs
    • Layers
  • Resource Management
    • Scope
    • Pool
  • Observability
    • Logging
    • Tracing
  • Configuration
  • Interruption Model
  • Concurrency
    • Queue
    • Hub
  • Testing
  • Batching & Caching
  • Scheduling

Guides

(I think of these more like one-off “articles” related to Effect that don’t introduce any new code)

  • Writing ‘idiomatic’ Effect
  • Integrating Effect With Existing Code
  • Integrations
    • React
    • Express

Utility Modules

(All of the other stuff in the Effect ecosystem that is “high level’ and regularly useful)

  • Libraries?
    • Runtime Type Validation
      • Schema
    • Pattern Matching
      • Match
    • Duration
  • Types
    • Option
    • Either
  • Data Structures
    • HashMap
    • HashSet
    • Chunk
  • ...

Advanced Topics

(Lower level features, put this lower so newer devs don’t get bogged down in it)

  • Fiber

Examples

(Walkthrough building simple projects in Effect)

More

(Other stuff)

  • FAQ
  • Coming From ZIO
  • Glossary
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment