Skip to main content

Why Thresh Hub Uses Opaque Tokens Instead of JWT

· 5 min read
thresh Team
thresh Development Team

When we designed Thresh Hub's authentication, we made a deliberate choice: opaque tokens with server-side validation instead of JWTs. The three key families (thresh_live_*, thresh_mid_*, thresh_cli_*) are random hex/base64 strings with no embedded claims. Every request validates against a SHA-256 hash stored in the database.

Here's why — and how the whole system fits together.

Why We Chose SignalR as the Primary Transport for Thresh

· 10 min read
thresh Team
thresh Development Team

When you're managing a fleet of development environments across a network, the transport layer isn't just plumbing — it's the nervous system. Every heartbeat, every command dispatch, every metrics payload depends on it. We needed something that was real-time, resilient, and could degrade gracefully when the network couldn't cooperate.

We chose ASP.NET SignalR as the primary transport, with REST polling as automatic failover. Here's why, and exactly how it works under the hood.

Fleet Management Patterns: Running thresh at Scale

· 5 min read
thresh Team
thresh Development Team

You've got thresh running on a couple of machines. Maybe it's a home lab with a few Linux boxes, or a team with workstations scattered across a network. Either way, you've hit the point where SSH-ing into each node to check on things doesn't scale.

That's exactly what Thresh Hub solves. In this post, we'll walk through real-world fleet patterns — from a simple two-node setup to a multi-team deployment with dedicated mid-tier routing.

Stack Patterns: Real-World Multi-Service Deployments with thresh

· 5 min read
thresh Team
thresh Development Team

thresh stacks turn multi-service applications into single-command deployments. But what does that look like for real applications? In this post, we cover battle-tested patterns for the most common architectures — from three-tier web apps to microservice meshes to data engineering pipelines.

Every example below is a complete, working stack definition you can save as a .json file and deploy with thresh stack up.

Thresh 1.7.0: Stack Orchestration — Multi-Service Deployments

· 4 min read
thresh Team
thresh Development Team

Release Date: April 8, 2026
Release Type: Feature Release — Phase 1.7

Thresh 1.7.0 introduces stack orchestration — deploy multi-service applications from a single JSON definition file. Define your services, dependencies, networking, and environment variables, then bring the entire stack up with one command. Rolling updates, automatic Traefik reverse-proxy injection, and dependency ordering come built-in.

Thresh 1.6.0: Agent Mode & Hub Connectivity — Connect Your Fleet

· 6 min read
thresh Team
thresh Development Team

Release Date: March 8, 2026
Release Type: Feature Release — Phase 1.6

Thresh 1.6.0 is here, and with it comes the biggest architectural leap since we went cross-platform: agent mode. Every thresh node can now connect to a centralized Thresh Hub over a persistent WebSocket connection, giving you fleet-wide visibility, real-time metrics, and a single pane of glass for all your environments.

Solving WSL Database Permission Errors with Configuration Profiles

· 7 min read
thresh Team
thresh Development Team

Problem: PostgreSQL, MySQL, and Redis fail to start in WSL with cryptic permission errors
Solution: thresh WSL configuration profiles (specifically the database profile)

If you've ever tried running a database in WSL and encountered errors like:

FATAL: data directory "/var/lib/postgresql/data" has wrong ownership
chmod: changing permissions of '/var/lib/mysql': Operation not permitted
Error: setuid failed for redis user

You've hit the Plan9 filesystem permission problem. Let's fix it permanently.