Features

Thoughtful where it matters.

Lattice is an extensible platform. Here is what it does for you as the administrator, for the people you share with, and underneath, where the speed comes from.

Ask Lattice

Aunt Ginny is no longer your tech support nightmare.

Ask opens with the question your users would otherwise call you about: “Walk me through getting this set up on my phone and Apple TV.” Lattice ships the scripts and steps for your server, so the people you share with set themselves up and fix their own problems.

  • Set up, start to finish (beta). Pre-built, step-by-step guides for iPhone and Apple TV: join your server, install the player, connect it. At their pace, without you on the phone.
  • Fix it themselves (beta). “It keeps buffering.” “It says it can’t connect.” “This episode looks wrong.” Ask checks the server and their connection, walks them through the fix, and flags you only when it needs you, like a bad file.
  • Find it, or ask for it. “Do we have Eden Lake?” Ask finds titles with words in any order, a typo or a half-remembered name. If it isn’t in the library, one tap sends a request to you.
  • Less than a penny a question. A typical question costs about a quarter of a cent. Ask needs an Anthropic API key; without one, everything else in Lattice works as usual.

Illustration

Lattice for iPhone

Your library, in your pocket.

A companion app for everyone you share with, and a control room for owners.

  • Browse the library.
  • Ask about it in plain words.
  • Spill into channels and threads with the people you share with.
  • Settings to tune it. Owners also get the Console, where new devices are approved.

Illustration

Bring your history

Switch without starting over.

Users, passwords, watch history and resume points come across from Jellyfin, and we’re bridging every Jellyfin admin feature you rely on (beta). People you share with sign in as they always have.

  • Passwords unchanged: Lattice verifies Jellyfin’s own password format.

Modern security

No open admin ports.

Your players reach Lattice over the internet; your admin controls never do. Administration happens only in the iPhone app, over its own signed channel, and admin routes answer only on your home network.

You pick and invite your users. We never see them — unlike Plex — and Lattice never lists their names on a sign-in page. Ever. (Jellyfin does, by default.)

Plex accounts run through Plex’s central service. Jellyfin shows its user list on the sign-in screen unless the admin hides each user.

Privacy and security are built in, using modern standards.

  • A password alone isn’t enough. A sign-in from a new device gets no access token until the owner approves that device in the iPhone app with Face ID (passkey-style), so approval works like a second factor.
  • Per-device tokens, revocable any time from the app, and kept out of logs.
  • Signed requests: Secure Enclave–backed P-256 signatures, with a key that never leaves the iPhone.
  • Hard to guess at: no public user list, uniform sign-in errors, per-IP and per-account back-off, and TLS with a real certificate.
  • Players only on the player port: browsers and scanners are refused.
  • No VPN or third-party relay for the people you share with.

Requires the Lattice iPhone app and a paid admin add-on.

Illustration

Lattice Monitor for Apple TV

The whole server, at a glance. Free.

A free, read-only dashboard for the big screen: what’s playing, server load and library health.

  • Now playing: what’s on, where, and how it’s being played.
  • Server load and library health without opening a laptop.
  • Read-only. It shows; it never changes anything.

Illustration with sample values

Distiller

Save space. Prove the quality.

Optional re-encoding that saves space with verified quality. Every result is measured with VMAF, and Distiller never keeps a file that’s worse than your target or bigger than the original.

  • ~64% saved on re-encoded shows on one household library.
  • Measured, not guessed: each encode is scored with VMAF against its source.
  • Bring your own GPU (Intel Arc tested; NVIDIA RTX 4090 testing now). Distiller is optional; everything else works without it.

Quality lanes

Pick a port, pick the quality.

Old hardware, bad connection? Jellyfin and some players fumble the bag on this. Just pick 8090 to limit a device to 720p, 8091 for 1080p, or 8094 for full quality, up to 4K.

  • Each port is a ceiling. Lattice serves the best version up to that resolution, and never upscales.
  • Converted while you watch: 8090 and 8091 transcode on the fly, so no extra copies are stored. They need a GPU.
  • Owners switch each lane on or off.
Quality lanes
PortCeilingStatus
8090720pBeta
80911080pBeta
8094Full quality, up to 4KAvailable

Built to load in parallel

Nothing waits on one database writer.

Jellyfin loads a library through a single SQLite writer, so fetching faster doesn’t help: the database is the queue. Lattice splits the load into independent workers that each read one shared journal at their own pace.

  1. Read every file at once. Files are probed in parallel, with a slot pool per disk so a spinning drive never thrashes.
  2. Write each title once. A playable item lands in an append-only journal the moment its probe is done.
  3. Three workers follow the journal, independently. Enricher: the things you see first come first. Posters, then whole seasons in one call, then backdrops, logos, cast and stills, at a polite, cached rate. Art fill: missing posters, backdrops and logos, fetched in large batches. Renditions: each image is resized for TV and phone as it lands, about 113 images a second, at low priority so playback never waits.
5,000 files, cold start, metadata and artwork from TMDB
Until…JellyfinLatticeFaster
every file is playable48.9 min82 s36×
every title has its poster48.8 min82 s36×
every overview is in49.0 min2.0 min25×
fully dressed50.7 min3.8 min13×

Jellyfin 10.11.10, tuned. All the load tables

Precomputed, not recomputed

Worked out when the library changes, not when you ask.

Every list, search and “what changed?” answer is built as titles arrive. A page of a 40,000-item library costs the same as a page of a 100-item one.

  • Search as you type: each keystroke is one keyed read, 6.8 ms p99 over HTTP.
  • Native InfuseSync: a sync with nothing changed takes milliseconds, and every change arrives at least once. No plugin to break on upgrade.
  • Artwork sized per device: phones get about a quarter of the bytes, so the grid keeps up with your thumb.
  • Fast-start MP4s: files with their index at the end are remuxed on arrival, without re-encoding, so playback starts at once.
Full Infuse library crawl, warm · same machine, one server at a time
ItemsJellyfinLatticePage p50
1,0001.9 s0.10 s132 → 14 ms
10,00020 s1.0 s300 → 15 ms
40,000193 s4.0 s969 → 15 ms

Jellyfin’s pages slow down the deeper they go; Lattice’s stay flat. Scale test

Want it on your server? We’re choosing beta testers from the waitlist.

Join the waitlist