App · Storage

Versioned cloud storage with locks and sync.

Lock the file you're working on, restore any prior version, share with a public or password-protected link, and keep cloud and desktop in sync via a Rust engine — without paying for a separate version-control product.

storage.layerline.co
Screenshot · Layerline Storage
The problem

What this app solves.

Creative teams lose hours every week to file management. Someone overwrites someone else's work in Drive. The "final v3 latest" lives in three places. A reviewer needs an older version, and no one remembers where to find it.

  • 01 Overwrites between artists working on the same file
  • 02 Which version is the latest? — endless Slack threads
  • 03 Sharing externally means uploading copies to yet another tool
  • 04 Cloud and desktop fall out of sync between sessions
Features

Built for the way teams actually work.

01 · feature

Exclusive locks with audit history

Take a lock before you edit so no one else overwrites your work. Locks are tracked with a full history — when, who, why. Admins can force-unlock if someone steps away with a lock held.

ls_lock_file · ls_get_lock_history · ls_force_unlock_file
02 · feature

Version history with restore

Every save is versioned. Restore any prior version by its ID. Browse the full history of a file with checksums so you know what changed.

ls_get_version_history · ls_restore_version
03 · feature

Share links — public, password, expiring

Generate a share link with the access level you want — public, password-protected, or single-recipient. Set expiration and max-download limits. Revoke at any time.

ls_create_share_link · ls_revoke_share
04 · feature

Glob include / exclude sync rules

Decide what syncs and what stays local. Glob patterns let you exclude `*.tmp`, `*.bak`, or everything outside a working directory. Rules apply per-project.

ls_create_sync_rule · ls_list_sync_rules
05 · feature

Rust desktop sync engine

A native Rust engine syncs cloud and local in both directions with SHA-256 deduplication and a per-project queue. Conflicts resolve by keeping both copies and renaming — never silently overwriting work.

src-tauri/services/layerline_sync/engine.rs
Use it from your code

Native MCP. Full REST.

Every endpoint Layerline uses internally is yours. Call it from an agent, from a CI step, from your DCC plugin. No vendor SDK, no rate-limit surprises.

storage.example.ts
// Lock the file you're about to edit
await client.callTool({
  name: "mcp__layerline__ls_lock_file",
  arguments: { fileId: "f_8s3m1", projectId: "prj_abc" },
});

// Later, list everything in a folder by path
const files = await client.callTool({
  name: "mcp__layerline__ls_list_files",
  arguments: { projectId: "prj_abc", path: "/character/hero" },
});

One OS. Every app. Yours.

Start free. No credit card, no procurement loop. Scale to a studio when you're ready.