effect-best-practices

Installation
Summary

Opinionated patterns for Effect-TS services, errors, layers, and React state management.

  • Enforces Effect.Service with accessors: true for business logic, Schema.TaggedError for errors, and Layer.mergeAll/Layer.provideMerge for flat, performant composition
  • Requires Effect Language Server for edit-time diagnostics (30+ Effect-specific checks), quick info, completions, and refactors
  • Covers branded entity IDs, Option over nullability, Effect.fn for tracing, and explicit error handling with catchTag/catchTags
  • Includes Effect Atom patterns for React state: Atom.make outside components, useAtomValue/useAtomSet hooks, Result.builder for error handling, and keepAlive for persistent state
  • Forbids runSync/runPromise in services, throw in generators, console.log, and direct process.env access
SKILL.md

Effect-TS Best Practices

This skill enforces opinionated, consistent patterns for Effect-TS codebases. These patterns optimize for type safety, testability, observability, and maintainability.

Effect Language Server (Required)

The Effect Language Server is essential for Effect development. It catches errors at edit-time that TypeScript alone cannot detect, provides Effect-specific refactors, and improves developer productivity.

Setup

  1. Install:
npm install @effect/language-service --save-dev
  1. Add to tsconfig.json:
{
  "compilerOptions": {
Related skills

More from makisuo/skills

Installs
631
Repository
makisuo/skills
GitHub Stars
68
First Seen
Jan 25, 2026