This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Architecture Overview
This is an offline-first web application framework built in Rust with dual native/WASM compilation support. The architecture consists of:
### Core Crates
- **offline-web-model**: Content-addressable graph data structures with `Reference` types that form a DAG (Directed Acyclic Graph). References contain object IDs, content addresses, names, and dependents. The graph automatically recalculates IDs when content changes to maintain content addressability.
- **offline-web-storage**: Storage abstraction layer with `ReferenceStore` trait. Includes SQLite implementation for native builds and IndexedDB for WASM. Uses feature flags to conditionally compile storage backends.
- **exp1** &**exp2**: Experimental server implementations demonstrating the framework
### Data Model
The framework uses a content-addressable system where:
- All resources form a merkle tree structure
- Resource reference paths are rooted at `/ref/` prefix
- Content-addressable paths are rooted at `/object/<content-hash>`
- Reserved references include `/ref/all/<username>` (user's root) and `/ref/user/<username>` (user info)
## Build Commands
- Build all crates for both native and wasm: `make build`