ripple-ts/ripple

the elegant TypeScript UI framework

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 18 minutes ago
Added to GitGenius on September 8th, 2026
Created on February 16th, 2025
Open Issues & Pull Requests: 8 (+1)
GitHub issues: Enabled
Number of forks: 292
Total Stargazers: 7,387 (+0)
Total Subscribers: 28 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.0 hours
Mean response time: 3.6 days
90th percentile: 4.9 days
Tracked items: 439

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 14% of issues opened in the past year have been closed. Three people close 80% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 5
New in 7 days: 2
Closed in 7 days: 9
Avg open age: 173 days
Stale 30+ days: 3
Stale 90+ days: 3

Recent activity

Opened in 7 days: 2
Closed in 7 days: 9
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (218)
  • enhancement (57)
  • documentation (1)
  • help wanted (1)
  • prettier (1)

Detailed Description

Ripple is a TypeScript-first UI framework built around .tsrx files, fine-grained reactivity, scoped styles, and a small runtime.

Ripple addresses the challenge of building reactive UIs with tight TypeScript integration by combining JSX-like authoring with template-native control flow. The framework uses .tsrx files as its core format, enabling developers to colocate TypeScript setup logic directly with UI markup through JSX statement containers. Reactivity is achieved through a track() function and lazy destructuring, allowing reads of lazy bindings to remain reactive. The framework provides reactive collection types including RippleArray, RippleObject, RippleMap, and RippleSet, and includes template-native directives for @if, @for, @switch, and @try control flow. Scoped style blocks with automatic class hashing keep styling encapsulated, and the runtime is designed to be small.

Ripple suits teams prioritizing TypeScript developer experience and fine-grained reactivity over framework size. It works well for projects where collocating setup logic with templates reduces cognitive overhead. The framework supports Vite, includes editor tooling, Prettier and ESLint integration, and handles both buffered and streaming server-side rendering with hydration. The .tsrx format is also a standalone language that can target React, Preact, Solid, Vue, and Ripple, though Ripple is the runtime-focused target with track(), reactive collections, server modules, hydration, and DOM helpers built in.

The project shows active development with regular commits and ongoing refinement of core features. The codebase maintains comprehensive documentation and provides a playground for experimentation. The framework benefits from leadership by a developer with substantial prior experience across multiple UI frameworks and reactive systems.