<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Rig blog</title>
  <subtitle>Field notes from Rig — the Mac app for local development.</subtitle>
  <link href="https://userig.app/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://userig.app/blog" rel="alternate" type="text/html"/>
  <id>https://userig.app/blog</id>
  <updated>2026-09-15T00:00:00Z</updated>
  <author><name>Rich Harrington</name><email>help@userig.app</email></author>
  <entry>
    <title>Docker Desktop vs Rig for local stacks</title>
    <link href="https://userig.app/blog/docker-desktop-vs-rig-local-stacks" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/docker-desktop-vs-rig-local-stacks</id>
    <updated>2026-09-15T00:00:00Z</updated>
    <summary>Containers are great when you need them. Most studio stacks are processes. Pick the tool that matches the shape.</summary>
  </entry>
  <entry>
    <title>Stop the share when the call ends</title>
    <link href="https://userig.app/blog/stop-the-share-when-the-call-ends" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/stop-the-share-when-the-call-ends</id>
    <updated>2026-09-14T00:00:00Z</updated>
    <summary>Live Links are opt-in and never auto-start. Ending the call without ending the share is how previews linger.</summary>
  </entry>
  <entry>
    <title>Env profiles: client vs personal</title>
    <link href="https://userig.app/blog/env-profiles-client-vs-personal" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/env-profiles-client-vs-personal</id>
    <updated>2026-09-13T00:00:00Z</updated>
    <summary>Fill from .env.example, switch profiles, keep client keys off the personal laptop by habit — not by hope.</summary>
  </entry>
  <entry>
    <title>Local HTTPS without the cert dance</title>
    <link href="https://userig.app/blog/local-https-without-the-cert-dance" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/local-https-without-the-cert-dance</id>
    <updated>2026-09-12T00:00:00Z</updated>
    <summary>Managed local services can get HTTPS without you becoming a part-time PKI operator.</summary>
  </entry>
  <entry>
    <title>The tray as a quiet control plane</title>
    <link href="https://userig.app/blog/tray-as-quiet-control-plane" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/tray-as-quiet-control-plane</id>
    <updated>2026-09-11T00:00:00Z</updated>
    <summary>Menu bar modes exist so you can start/stop without opening the full window. Quiet is a feature.</summary>
  </entry>
  <entry>
    <title>GitHub connect without folklore</title>
    <link href="https://userig.app/blog/github-connect-without-folklore" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/github-connect-without-folklore</id>
    <updated>2026-09-10T00:00:00Z</updated>
    <summary>A real token, real validation, and clear errors — not a mock Connect button that pretends you are linked.</summary>
  </entry>
  <entry>
    <title>Crash diagnose in one bundle</title>
    <link href="https://userig.app/blog/crash-diagnose-one-bundle" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/crash-diagnose-one-bundle</id>
    <updated>2026-09-09T00:00:00Z</updated>
    <summary>When Rig or a project falls over, a redacted diagnostics bundle beats a screenshot of a stack trace.</summary>
  </entry>
  <entry>
    <title>Team seats without a devops hire</title>
    <link href="https://userig.app/blog/team-seats-without-a-devops-hire" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/team-seats-without-a-devops-hire</id>
    <updated>2026-09-08T00:00:00Z</updated>
    <summary>Shared catalog, devices, and seats are enough for a studio. You do not need Kubernetes to start Vite on the other Mac.</summary>
  </entry>
  <entry>
    <title>Why Live Link expires</title>
    <link href="https://userig.app/blog/why-live-link-expires" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/why-live-link-expires</id>
    <updated>2026-09-07T00:00:00Z</updated>
    <summary>Client previews should die when the call ends. Expiration and view limits are product features, not nagware.</summary>
  </entry>
  <entry>
    <title>Appearance that survives another Mac</title>
    <link href="https://userig.app/blog/appearance-that-survives-another-mac" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/appearance-that-survives-another-mac</id>
    <updated>2026-09-06T00:00:00Z</updated>
    <summary>Density, tray modes, and ports-on-cards should follow you when Continuity syncs prefs — not reset every Teleport.</summary>
  </entry>
  <entry>
    <title>Procfile plus sidecars on one board</title>
    <link href="https://userig.app/blog/procfile-plus-sidecars" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/procfile-plus-sidecars</id>
    <updated>2026-09-05T00:00:00Z</updated>
    <summary>A Procfile starts the main cast. Rig also keeps Vite, queue workers, and managed databases in the same ordered group.</summary>
  </entry>
  <entry>
    <title>Reclaim a port from the board</title>
    <link href="https://userig.app/blog/reclaim-a-port-from-the-board" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/reclaim-a-port-from-the-board</id>
    <updated>2026-09-04T00:00:00Z</updated>
    <summary>When :3000 is taken, Rig shows which process owns it. Reclaim without another lsof archaeology session.</summary>
  </entry>
  <entry>
    <title>Support vs community forum</title>
    <link href="https://userig.app/blog/support-vs-community-forum" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/support-vs-community-forum</id>
    <updated>2026-09-03T00:00:00Z</updated>
    <summary>Public tips belong on the forum. Account, billing, and secrets belong in Support. Mixing them wastes everyone&apos;s time.</summary>
  </entry>
  <entry>
    <title>Cloud status page — your Mac is still fine</title>
    <link href="https://userig.app/blog/status-page-mac-still-fine" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/status-page-mac-still-fine</id>
    <updated>2026-09-02T00:00:00Z</updated>
    <summary>When userig.app has a blip, local projects keep running. The status page is about cloud, not your board.</summary>
  </entry>
  <entry>
    <title>What Rig does not replace</title>
    <link href="https://userig.app/blog/what-rig-does-not-replace" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/what-rig-does-not-replace</id>
    <updated>2026-09-01T00:00:00Z</updated>
    <summary>Not your IDE. Not Herd. Not Docker. Not git. Rig is the control plane around the tools you already chose.</summary>
  </entry>
  <entry>
    <title>Project-scoped MCP tokens</title>
    <link href="https://userig.app/blog/project-scoped-mcp-tokens" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/project-scoped-mcp-tokens</id>
    <updated>2026-08-31T00:00:00Z</updated>
    <summary>Hub-wide tokens are convenient. Project tokens are what you hand an agent that should not see the whole fleet.</summary>
  </entry>
  <entry>
    <title>The Continuity recovery key ritual</title>
    <link href="https://userig.app/blog/continuity-recovery-key-ritual" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/continuity-recovery-key-ritual</id>
    <updated>2026-08-30T00:00:00Z</updated>
    <summary>Encrypted Continuity backups are useless without the key. Treat the key like a vault item, not a Slack paste.</summary>
  </entry>
  <entry>
    <title>Health checks that are not just curl</title>
    <link href="https://userig.app/blog/health-checks-that-are-not-just-curl" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/health-checks-that-are-not-just-curl</id>
    <updated>2026-08-29T00:00:00Z</updated>
    <summary>A green board means the process stayed up and answered. A curl in a sticky note means you remembered to run it.</summary>
  </entry>
  <entry>
    <title>Groups vs presets — which one you want</title>
    <link href="https://userig.app/blog/groups-vs-presets" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/groups-vs-presets</id>
    <updated>2026-08-28T00:00:00Z</updated>
    <summary>Groups are the morning stack. Presets are the reusable start shape. Mixing the words is how settings pages get scary.</summary>
  </entry>
  <entry>
    <title>WordPress local without Local WP drama</title>
    <link href="https://userig.app/blog/wordpress-local-without-local-wp" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/wordpress-local-without-local-wp</id>
    <updated>2026-08-27T00:00:00Z</updated>
    <summary>Rig can stand up a PHP built-in server with pretty permalinks for WordPress folders — without adopting another stack product.</summary>
  </entry>
  <entry>
    <title>Valet sites open from the board</title>
    <link href="https://userig.app/blog/valet-sites-open-from-the-board" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/valet-sites-open-from-the-board</id>
    <updated>2026-08-26T00:00:00Z</updated>
    <summary>When Rig detects Valet linkage, Open site hits the *.test URL. Herd/Valet stay the runtime; Rig stays the board.</summary>
  </entry>
  <entry>
    <title>Mesh wake vs leaving the studio Mac on</title>
    <link href="https://userig.app/blog/mesh-wake-vs-leaving-the-mac-on" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/mesh-wake-vs-leaving-the-mac-on</id>
    <updated>2026-08-25T00:00:00Z</updated>
    <summary>Burning watts overnight is a habit. Wake-on-mesh is the other option when the Mac at home is asleep.</summary>
  </entry>
  <entry>
    <title>Soft Free quotas during beta — what they mean</title>
    <link href="https://userig.app/blog/soft-free-quotas-during-beta" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/soft-free-quotas-during-beta</id>
    <updated>2026-08-24T00:00:00Z</updated>
    <summary>Devices, seats, and orgs have soft caps while Rig is free. They exist so the fleet stays usable, not to surprise-charge you.</summary>
  </entry>
  <entry>
    <title>Ask Cursor to restart — without kill -9</title>
    <link href="https://userig.app/blog/cursor-restart-without-kill-dash-nine" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/cursor-restart-without-kill-dash-nine</id>
    <updated>2026-08-23T00:00:00Z</updated>
    <summary>Pasting shell into chat is how you nuke the wrong pid. Scoped MCP restart is the boring alternative.</summary>
  </entry>
  <entry>
    <title>When to stay local-only on purpose</title>
    <link href="https://userig.app/blog/when-to-stay-local-only" rel="alternate" type="text/html"/>
    <id>https://userig.app/blog/when-to-stay-local-only</id>
    <updated>2026-08-22T00:00:00Z</updated>
    <summary>Cloud sync is optional. Some studios should never turn it on — and that is a feature, not a gap.</summary>
  </entry>
</feed>
