kettanaito

Arbitrary change history management in JavaScript.

61
0
100% credibility
Found Mar 30, 2026 at 61 stars -- GitGems finds repos before they trend. Get early access to the next one.
Sign Up Free
AI Analysis
TypeScript
AI Summary

A library for building undo and redo stacks in apps that handle waiting tasks, side actions, grouping changes, and smooth navigation through history.

How It Works

1
🔍 Discover the undo helper

You hear about a simple way to let people undo and redo their changes in apps, like fixing mistakes in photo editing or notes.

2
📦 Bring it into your project

You add this handy helper to your creation so it can start tracking every change people make.

3
📝 Set up the memory keeper

You create a memory list that remembers up to a certain number of steps, ready to handle quick changes or waits.

4
Record your first action

You describe an action like deleting a photo and exactly how to bring it back, feeling the magic as it applies right away.

5
Test undoing a mistake

You try undoing the change, watching it smoothly reverse even if it needs time for files or updates.

6
Redo and keep going

You redo the action to move forward again, with everything flowing naturally.

🎉 Perfect change history

Your app now gives users confidence with flawless undo and redo, making editing feel effortless and fun.

Sign up to see the full architecture

5 more

Sign Up Free

Star Growth

See how this repo grew from 61 to 61 stars Sign Up Free
Repurpose This Repo

Repurpose is a Pro feature

Generate ready-to-use prompts for X threads, LinkedIn posts, blog posts, YouTube scripts, and more -- with full repo context baked in.

Unlock Repurpose
AI-Generated Review

What is async-history-stack?

This TypeScript library provides arbitrary change history management in JavaScript, letting you build robust undo/redo stacks for apps with distributed state or async side effects. Push an apply function that returns a revert function—it runs immediately and swaps roles on undo/redo. Handles real-world mess like file uploads, navigation, or third-party editor state without forcing centralized management.

Why is it gaining traction?

Unlike state-tied undo tools, it decouples history from your app's core, supporting async ops, AbortSignal cancellation, entry merging, and auto-batching for rapid changes like typing. Devs dig the signal for aborting fetches or streams, plus extras like size limits and dirty-state timestamps. At 61 stars, it's niche but solves gaps in tools ignoring arbitrary changes meaning scattered side effects.

Who should use this?

Electron devs syncing main/renderer processes, like deleting images across disk and UI. Rich editor builders handling arbitrary style transfer or waveform edits. Anyone tired of half-baked undo in apps with async RPCs, uploads, or non-client triggers—perfect for desktop tools beyond simple forms.

Verdict

Solid for decoupled async history stacks; try it if your app demands flexible change management. 1.0% credibility reflects low adoption and 61 stars, but strong docs and tests make it production-ready for targeted use—watch for broader traction.

(198 words)

Sign up to read the full AI review Sign Up Free

Similar repos coming soon.