Skip to content

valgaze/effect-solutions

 
 

Repository files navigation

Effect Solutions

Effect best practices and patternshttps://www.effect.solutions

Living Document: Opinionated collection exploiting Cunningham's Law. Disagree? Open an issue

What is this?

Curated Effect TypeScript patterns for common scenarios — error handling, services, layers, testing, and more. For humans and AI agents.

Usage

Website: Browse at effect.solutions

CLI: Access docs offline

bunx effect-solutions list              # List all topics
bunx effect-solutions show http-clients # Show specific topic
bunx effect-solutions search error      # Search topics

Features

  • Practical patterns - Real-world solutions, not just theory
  • Type-safe examples - All code validated with Effect LSP
  • AI-friendly - Structured for LLM consumption via CLI
  • Community-driven - Open issues to suggest/debate patterns

Quick Examples

Error handling

import { Effect } from "effect"

Effect.gen(function* () {
  const user = yield* findUser(id).pipe(
    Effect.catchTag("NotFound", () => Effect.succeed(null))
  )
})

HTTP client setup

import { Effect, HttpClient } from "effect"
import { FetchHttpClient } from "@effect/platform"

const program = Effect.gen(function* () {
  const http = yield* HttpClient.HttpClient
  const result = yield* http.get("/api/users")
})

program.pipe(
  Effect.provide(FetchHttpClient.layer)
)

See effect.solutions for full patterns and rationale.

Contributing

  1. Find a missing pattern or disagree with a recommendation
  2. Open an issue to discuss
  3. Submit PR with pattern + tests
  4. Create changeset: bun scripts/changeset-named.ts "description"

See CONTRIBUTING.md for details and CLAUDE.md for development workflow.

Releasing (tags auto-publish)

  1. Apply changesets and bump versions: bun run version (creates tag vX.Y.Z).
  2. Push the tag/commit to GitHub.
  3. The Release workflow builds multi-arch CLI binaries and runs changeset publish to publish all packages to npm.

Packages

License

MIT

About

A guide to writing idiomatic Effect code.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.0%
  • CSS 2.3%
  • Other 0.7%