A local-first spatial workspace for notes, data, and files.
Arrange ideas in Tiles, open objects in place, and keep your work in formats you own.
Downloads · Contributing · Security · MIT License
Tactile combines the immediacy of a spreadsheet with the depth of a document workspace. A Tile can hold a value, a formula, or a doorway into another object. Open it, work at full size, then return to the exact place you started.
- Local first: no account or cloud service is required for the core experience.
- Portable by design: workspaces use inspectable JSON, CSV, Markdown, and native media files.
- Spatial and nested: organize sheets, documents, and files without flattening their identity.
- Made for real work: formulas, ranges, formatting, themes, keyboard navigation, search, and undo are built in.
- Extensible without bloating the app: optional Code, PDF, Image, Audio, Video, HTML, and SVG objects are independently compiled marketplace packages.
- Web and desktop: run in a browser during development or use the Tauri shell on Windows, macOS, and Linux.
Use Tiles as a lightweight model, tracker, dashboard, notebook, or navigation surface. Keep long-form thinking in Text objects, attach local media, run source snippets through the Code plugin, and move through nested work without losing context.
Tactile stores source rather than rendered output. Text remains Markdown, sheets remain sparse CSV-oriented data, and optional plugin state remains portable even when the plugin is unavailable.
Signed-where-configured installers and checksums for Windows, macOS, and Linux are published on the GitHub Releases page.
- Stable versions use standard
vX.Y.Zreleases. - Development previews use clearly marked
vX.Y.Z-alpha.NorvX.Y.Z-rc.Nprereleases and blue branding.
- Git
- Node.js 24.13.0 and npm 11.6.2 (
.nvmrcandpackage.jsonare authoritative) - A modern browser
- For desktop development: the stable Rust toolchain and the Tauri 2 system prerequisites
git clone https://github.com/aryanxxvii/tactile.git
cd tactile
npm ci
npm run devVite serves the app at http://localhost:5173 by default. The development command also compiles and watches the local marketplace catalog.
Windows PowerShell:
pwsh -File src-tauri/scripts/dev.ps1macOS or Linux:
sh src-tauri/scripts/dev.shNative build and platform notes live in src-tauri/README.md.
Start narrow while iterating, then run the relevant broader checks:
npm test
npm run typecheck
npm run lint
npm run buildThe full repository gate is:
npm run verifyNative changes should additionally run:
cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check
cargo check --manifest-path src-tauri/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.tomlsrc/ React application, object model, shell, and browser platform
src-tauri/ Tauri/Rust shell, native persistence, packaging, and platform tests
marketplace/ Independently compiled optional object packages and generated catalog
tests/ Unit, compatibility, browser, native, visual, and performance tests
scripts/ Build, marketplace, release, checksum, and inventory automation
config/ Tool configuration that does not require root-level discovery
.agents/ Vendor-neutral project routing, domain knowledge, and decisions
images/ Repository artwork and visual documentation
evidence/ Performance results, SBOMs, and third-party inventory snapshots
Development work targets the protected alpha integration branch. Production-ready changes are promoted to protected main through a release pull request. Read CONTRIBUTING.md before opening a PR; coding agents should begin with AGENTS.md.
Tactile is available under the MIT License.
