# feat: the web build is the desktop app, built for wasm32 · clo/snowbound

[View on GitCafe](https://git.cafe/clo/snowbound/commit/563a6671858bb6446fcc24546f424b3e379f9063)

Repository: [clo/snowbound](https://git.cafe/clo/snowbound)

Visibility: public

Requested revision: 563a6671858bb6446fcc24546f424b3e379f9063

Requested commit: 563a6671858bb6446fcc24546f424b3e379f9063

Commit: 563a6671858bb6446fcc24546f424b3e379f9063

Tree: 674c0b6eb27a01a9888e21b28e670d4e954cf29d

Author: clover caruso

Committer: clover caruso

## Message

```
feat: the web build is the desktop app, built for wasm32

Snowbound in the browser is now crates/snowbound itself, compiled for
wasm32-unknown-unknown with web.rs as its platform module beside
macos.rs, linux.rs and windows.rs, and web/index.html and web/glue.js as
the page around it. The welcome, sidebar, toolbar, menus, command
palette, Options and every dialog are the desktop's; crates/web and its
own shell are gone.

notebook runs there whole: sessions, the replica, publishing, merging,
conflict pages and the background. The page has one thread, so the
section thread is served as each request is sent and the sync worker and
background are async loops the page's event loop runs (notebook::task);
natively each still runs on a thread of its own with blocking waits.
Files go through notebook::fs, std's natively and in the browser files
kept in memory and in IndexedDB, with a SQLite VFS over the same files,
so a replica lives beside its notebook. The first web build's sections
move into a notebook of their own.

Assisted-by: claude-opus-5.5

```

## Parents

- [d9fc5cc413b64a5ce5699007860952ea911fded2](https://git.cafe/clo/snowbound/commit/d9fc5cc413b64a5ce5699007860952ea911fded2?format=markdown)

[Source at this commit](https://git.cafe/clo/snowbound/tree/563a6671858bb6446fcc24546f424b3e379f9063?format=markdown)
