# Features overview

> The small guarantees HTML Clay makes about opening, saving, versioning, and files on disk, and the goals the app was built around.

Source: https://htmlclay.com/docs/features/

HTML Clay does a few things and tries to do them exactly right. These are the small guarantees behind the app, and the goals it was built around.

## Tiny things you might notice

Small guarantees you would only find by looking for them.

- **Opening is read only.** A file you open and never save is not changed.
- **HTML Clay does not inject a script.** It adds a save token, a durable id, and one cookie before sending the page to your browser. It strips those additions before anything reaches disk.
- **A save replaces the whole file.** HTML Clay writes and flushes a temporary file, then renames it over the target. On macOS and Linux, it also flushes the directory before reporting success.
- **Invalid bodies never reach disk.** HTML Clay refuses empty bodies, anything that is not HTML, and anything over 50 MB.
- **Consecutive identical versions collapse.** HTML Clay never stores the same content twice in a row.
- **Your own save does not echo back.** The watcher suppresses the exact hash HTML Clay just wrote.
- **Half written files stay off screen.** HTML Clay shows an outside change only after repeated reads return the same bytes.
- **A copied file gets a separate backup record from the original.**
- **HTML Clay backs up an outside edit before saving over it.** The save succeeds, and the outside version remains in Backups.
- **Opening a file leaves no permanent copy.** If you open a file once and never save it, HTML Clay removes its history after a week.

## Project goals

1. **Self-saving HTML files** — The file knows where it lives on disk. Edit and save without "Save As" dialogs or cloud storage.
2. **True portability** — A `.htmlclay` file works offline, locally, with no infrastructure. Email it, Dropbox it, AirDrop it, git it.
3. **Low barrier for developers** — Write HTML + a small JS save call + rename to `.htmlclay`. That's it.
4. **One-click OS integration** — File extension associates with the app. Double-click to open. No registration, no login.
5. **A project is one place** — Trust a folder and every `.htmlclay` file in it opens editable at the folder's own hostname on the app's one port, an address that survives a restart, so links between them work and a bookmark keeps working.
6. **Platform potential** — The same `.htmlclay` file could eventually run both locally and on a web hosting platform.
