Skip to content
Preview · tie app

tie-browser

Pages made of your library.

A scene browser and visual designer: point-and-click pages stored in tie, built from images, galleries, tags, audio and video.

Preview LinuxWindowsmacOS GitHub ↗
Highlights

The parts that matter.

Scenes are folders
tie:/scenes/house/living-room/ holds scene.json, a thumbnail and an optional script.
Hotspots and layouts
Rectangles, circles and containers that navigate, open or play.
Components from tie
Image, gallery, tags, related, document, audio and video, bound to live queries.
Design in place
Ctrl+E opens the designer; saves are versioned and show their state.
Script when you need it
A Risor sidecar can add behaviour without leaving the page.
The library answers
Member and link indexes make ‘which scenes use this photo?’ a tie query.
The idea

Pages made of your library.

A scene is a page stored in tie: a layout, some hotspots, and components that read your library live. Point one at a photo, another at a tag query, another at an audio file. "Which scenes use this photo?" is then a tie query, not a grep through HTML.

  • Scenes are folders: tie:/scenes/house/living-room/ holds scene.json, a thumbnail and an optional script.
  • Hotspots navigate, open or play. Containers lay out the rest.
  • Versioned saves with conflict handling: a scene is a directory in a content-addressed store.
scene.json
{
  "format": "fynerisor.scene/1",
  "title": "Living room",
  "root": {
    "type": "free",
    "props": { "designW": 1600, "background": "tie:9a1f…" },
    "children": [
      { "type": "hotspot", "name": "Door",
        "props": { "label": "Kitchen" },
        "on": { "tapped": [{ "do": "navigate", "to": "../kitchen" }] } },
      { "type": "tie.gallery",
        "props": { "tags": ["family", "2014"] } }
    ]
  }
}

The components

ComponentWhat it renders
tie.imageOne image by hash or path.
tie.galleryA live query: images tagged with all of these tags.
tie.collectionAn album, series or picture set.
tie.tagsA tag picker that reflects the library.
tie.relatedThe co-tags of the current selection.
tie.documentA PDF or document from the blob store.
tie.audioPlayback through pwplay, with the page’s own transport.
tie.videoVideo by hash, with a poster frame.
Designer

Edit the page in place.

Ctrl + E turns the page into a designer: move boxes, set props, pick media from the library, and save. A persistent indicator tells you whether the scene is saved, saving, or failed to save. Ctrl + S saves a new version.

  • Media and scene pickers browse the real library.
  • A story map shows how scenes link to each other.
  • Auto-generated thumbnails render offscreen, so the library grid has a preview.
Script

A page can have behaviour.

Add a page.risor sidecar when a hotspot needs more than navigate/open/play. It is ordinary Risor running in the fynerisor runtime, with the same theme and the same window — edit it in place from the menu.

Preview

tie-browser is the newest app in the family. The scene format can still change between releases, and the roadmap includes native video surfaces and richer tag pickers. Everything else on this site is built to be stable enough to rely on; this one is built to be explored.

Where it is

  • Status: preview, the format may still change
  • Versioning: tie-gui is released from the repo; the apps are built from source.
  • Preview: the scene format can still change between releases.
  • Video surfaces and richer pickers are on the roadmap.

Works with

  • tie — Tag it. Find it. Mount it.
  • tie-fm — Two panes. Both worlds.
  • tie-audio — Your library, on shelves.
  • tie-view — Tag at the speed of sight.
  • imgview — Point it at a folder.
  • anneal — The coding agent that anneals.
Keep reading

The manual, the numbers, the source.

Try it with your own files.

A single binary, a local library and no account. Keep the originals where they are.