I tried to break my autosave library in 25 different ways, and it survived
PLC Creates

PLC Creates @plc-creates

About: Indie builder from Quebec. Client-side durability and deterministic recovery. Savior Core (durability) + SafeState Recovery (rollback).

Location:
Quebec city, Canada
Joined:
Nov 21, 2025

I tried to break my autosave library in 25 different ways, and it survived

Publish Date: Dec 8 '25
2 0

I tried to break my autosave library in 25 different ways, and it survived

Over the last few weeks, I’ve been building Savior, a tiny, dependency-free autosave engine for HTML forms.

The goal is simple: users should never lose what they write.

It sounds easy, but guaranteeing that in every situation is another story. Before releasing v0.3.0, I set up a crash-test suite with 25 manual scenarios. No automation yet. Just real testing of the real library in real conditions.

Here are a few of the situations I used to try and break it:

Flaky storage drivers

Random failures in save, load, or clear.

Corrupted or invalid JSON

Broken JSON placed directly in LocalStorage before initialization.

Dynamic DOM changes

Inputs added or removed after Savior.init.

Cloned forms

Identical nodes with different identifiers.

Stress input

Hundreds of rapid input events fired in a row.

External tampering

Storage keys deleted or altered while typing.

Restricted environments

Private mode, quota issues, partial storage support.

The result

Across all 25 tests, Savior showed the same behavior:

  • zero unhandled exceptions
  • stable and predictable restore
  • strict isolation between forms
  • identical behavior with LocalStorage and SessionStorage
  • effective debouncing under heavy input

These are small wins for a small library, but meaningful ones. The process turned a simple autosave script into something more reliable than I first expected.

The project also received its first stars today. A small detail, but enough to make the work feel real.

If you want to take a look:

https://github.com/Pepp38/Savior

What’s next

Probably automated tests.

Maybe more drivers.

Maybe a deeper look at the internal workflow.

For now, v0.3.0 is out, stable, and I’m satisfied with where it landed.

Comments 0 total

    Add comment