No description
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-02 23:20:44 +01:00
src Add license 2026-11-02 23:12:11 +01:00
.gitignore Gracefully handle infinite recursions 2026-10-14 23:29:03 +02:00
LICENSE Add license 2026-11-02 23:12:11 +01:00
package.json Refactor a bit before memos 2026-10-26 23:27:59 +01:00
pnpm-lock.yaml Update dependencies 2026-11-02 23:04:31 +01:00
README.md Add readme 2026-11-02 23:20:44 +01:00
the-big-plan.md Migrate to viteplus, unfortunately 2026-10-12 01:28:55 +02:00
todo.txt Add custom equals to signal, memos & writable memos 2026-11-02 23:02:48 +01:00
tsconfig.json Cleanup & refactoring 2026-10-31 18:30:02 +01:00
vite.config.ts Migrate to viteplus, unfortunately 2026-10-12 01:28:55 +02:00

Stoic

A small, client-only, fine-grained reactive UI engine with a Solid 2-like API, written in TypeScript. It's a hobby project, mostly for learning and for building small personal apps.

Goals

  • Minimal API close to Solid 2.
  • JSX without compiler.
  • Svelte-like transitions.
  • Small enough for one person to understand fully.

Non-goals: SSR, hydration, devtools, held/atomic async transitions.

The full roadmap is in the-big-plan.md.

State

Early work in progress. The reactive core is in src/ and has tests:

  • Signals (with custom equality)
  • Memos and writable memos
  • Effects and ownership tree
  • JSX runtime
  • Control flow (Show, For, ...)
  • Async
  • Stores
  • Actions
  • Transitions
  • Public API docs

AI disclosure

The project roadmap & most unit tests are written by LLMs. The library code is hand-written.

License

See LICENSE.