Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/TylorS/typed

Web Applications with Effect-TS
https://github.com/TylorS/typed

architecture async dom effect effect-ts functional-programming html modular router server state-management streams typescript

Last synced: 12 days ago
JSON representation

Web Applications with Effect-TS

Awesome Lists containing this project

README

        

Typed


> Join us on [Discord](https://discord.com/invite/kpPHEvkaAv)

Typed is your Effect-native toolkit for building full-stack web applications, with an emphasis on front-end use-cases.

**Runs Everywhere:**

- Client-side rendering
- Server-side Rendering
- Static Rendering
- Web Workers
- Service Workers
- Everywhere you can find Effect.

**Type-safety like you've never experienced:**

Leverage Effect, and the decades of collective knowledge of its maintainers, to streamline the process of creating robust, type-safe web applications. You've never had the TypeScript compiler work this hard for you.

- Type-safe error tracking
- Type-safe dependency tracking
- Type-safe routing
- Type-safe servers and clients end-to-end

**Model your user's behavior like the browser:**

`Fx`, shorthand for the plural form of Effect, brings push-based reactive programming to Effect, enabling you to model your user's behavior the same way the browser itself does. Complex user interactions have never been so easy, nor so declarative.

**Built to be tested:**

Backed by Effect, everything is testable by default, but in addition

- Context-Aware Abstractions - `@typed/context` wraps all `effect/*` data structures in context-aware variants and more.
- HTML Template Testing - `@typed/template/Test` contains test tools for testing with HTML
- DOM Template Testing - `@typed/template/Test` also contains test tools for rendering and hydration
- Vitest Integration - `@typed/template/Vitest` wraps `@effect/vitest` to provide resources common to testing `@typed/template` abstractions.

**Backend-for Frontend:**

Building the API servers to support your frontend-applications has never been so powerful.

- Type-safe Open API Specification and Implementation
- Type-safe Client derivation, including mocks powered by `@effect/schema` + `fast-check`
- Type-safe Servier implementation, including mocks powered by `@effect/schema` + `fast-check`
- Deep integration with Typed Template

**Built to last:**

Typed places heavy emphasis on long-term-friendly design patterns, and favors this over _extreme_ performance at all times. Backed by Effect, Dependency Inversion has never been more powerful. Type-safe errors make refactoring a breeze. With `@typed/template` even your event handler's errors will be surfaced within the type system and can be handled using the growing collection of functions from `@typed/Fx`.

Every long-term project reaches a point where the well-worn path doesn't fit your needs. Typed is built with these kinds of custom needs from the start. Typed knows what it knows, and doesn't make assumptions about what exists outside its bounds. Full control is always within reach.