1023: Mosh, Caddy & Tailscale: A Remote Dev Deep Dive
· Summarized
Key takeaways
- Using remote servers for development allows continuous, uninterrupted long-running processes and better resource management.
- Tools like Mosh, Caddy, Tailscale, and Herder significantly improve remote development workflows by enhancing connection stability, routing, security, and session management.
- Managing multiple terminal sessions effectively is crucial, with tools like Herder offering visual, persistent session management and agent status tracking.
- Headless browsers and automation tools pose challenges in authentication and bot detection but are essential for testing and AI integrations.
- Work trees and experimental branches help manage multiple AI approaches simultaneously, increasing flexibility and reducing costs.
- Balancing local and cloud hosting depends on factors like cost, control, speed, and network reliability.
- Organizational tools like packing cubes can surprisingly improve remote work setup and travel efficiency.
- Additional hardware like foot pedals can optimize workflow speed and ergonomics.
Summary
The Benefits of Remote Development and Key Advantages
This section discusses why developers might choose to run their processes on machines separate from their main workstation, such as laptops. Benefits highlighted include the ability to close laptops while processes run on a remote server, which conserves battery life and keeps long-running tasks alive without interruption. The hosts mention issues like frequent reboots caused by rogue processes and background apps, as well as new Mac OS features that support automatic reboots in case of power failures. Remote development also allows access to processes from any device, including phones and tablets, and facilitates secure HTTPS in development environments. Overall, the conversation emphasizes flexibility, better resource management, and continuity of work across devices.
Tools and Stack for Remote Development
The hosts elaborate on their tech stacks and recommended tools for effective remote development. Scott discusses using Mosh as a replacement for SSH for improved connection stability. Caddy is used for serving and routing domains securely with HTTPS, and Tailscale is highlighted for creating a secure, private network connecting all devices via WireGuard protocol. They discuss alternative tools like Portless, Cloudflare Tunnels, and other VPN options, but emphasize the stability and user management features of Tailscale. For editing, Wes praises Zed for its smooth remote setup, while Scott mentions using terminal multiplexers like Herder and Tmux for long-running or multi-session workflows. Additional tools include Termius for mobile SSH connections, with a focus on managing AI agents and development environments across multiple devices.
Managing Terminal Sessions and Workflows
This section covers the variety of tools used to manage terminal sessions remotely. Scott and Wes share experiences with Tmux, Herder, and Warp Terminal. Wes appreciates Herder's ability to show agent statuses and manage multiple sessions through a visual sidebar, which helps keep track of multiple long-running agents and processes. They discuss the importance of having persistent, long-lived sessions to avoid losing progress when disconnecting or rebooting. The conversation also touches on mobile terminal applications like Termius and Termius for mobile, and challenges of interaction such as touch control and session management on mobile devices. They explore the difficulties of mobile workflows, frustrations with current solutions, and potential future improvements while emphasizing the need for seamless and reliable remote session management.
Headless Browsers, Authentication Challenges, and Working with AI Agents
The discussion extends into headless browser automation, particularly for testing and AI interactions. Wes mentions using headless Chrome via Puppeteer, noting the challenge of avoiding detection as a bot. Scott discusses managing browser-based testing in development environments and potential issues with authentication. The hosts also explore challenges of running browser tests in headless mode, and how AI agents require managing secure, authenticated sessions. They mention the complexity of browser automation, Google’s measures against bot detection, and tools like cloud-based browsers versus local headless browsers. The segment highlights ongoing difficulties in working seamlessly with browsers and AI in remote setups, emphasizing the importance of reliable and secure authentication and the limitations of current headless browser solutions.
Work Trees, Branching, and Managing Multiple Ideas in AI Development
This section delves into the concept of work trees and their utility in AI-assisted development. Wes admits limited use but recognizes their benefit when exploring multiple approaches or implementations of features, especially for testing different models or algorithms simultaneously. They discuss tools like Demux.ai that enable managing multiple, isolated work trees, allowing parallel development and testing of different AI strategies. The idea is to control different branches for experimental work or various models, making it easier to compare and select the best approach. The conversation touches on how work trees can isolate different ideas, help manage costs in token-based AI development, and streamline the experimentation process.
Hosting, Cloud Options, and Network Considerations
The hosts consider options for hosting remote development environments, ranging from dedicated hardware like Mac Minis to cloud servers. They discuss the advantages and disadvantages of managing local versus cloud-based environments, including cost, control, and ease of management. The importance of fast internet connections and low latency for remote tools is emphasized, as many operations depend heavily on network performance. Scott mentions using a refurbished Mac mini, while also considering cloud providers like DAX and EXE.dev for cloud hosting. They highlight that local solutions can reduce costs and increase control, but cloud options might be better for scaling or if local hardware isn't available. Overall, they recommend balancing performance, cost, and control when choosing hosting options.
Key Takeaways and Final Thoughts
The episode wraps up with the hosts sharing their favorite tools and tips for remote development workflows. Scott highlights packaging cubes as a surprisingly effective organizational tool for travel, while Wes recommends using a foot pedal for macros and hands-free control, which enhances workflow efficiency. They reflect on the importance of experimenting with new inputs and workflows, especially as technology advances in developer tools. The discussion emphasizes flexibility, combining various tools for optimal remote development, and staying agile to adopt new innovations that improve productivity.
Sponsors
- Elgato · Elgato made a hefty foot pedal that is very functional and looks modern, not like it's from the 1970s. It has three pedals, supports macros, and uses the same software as the stream deck, allowing for customizable macros and controls.
Show notes
Running your dev process off your main machine doesn’t have to mean the cloud. Scott and Wes break down how to host projects on a box you can reach from any device, close your laptop mid-build, and keep long-running processes alive. They cover Scott’s stack (Mosh, Caddy, Tailscale, Zed, and terminal AI agents like Claude Code), the annoyances of mobile TUIs, and whether it beats staying local.
Show Notes
00:00 Intro
00:36 Welcome to Syntax!
01:56 Benefits of Remote Development
07:50 Process for Remote Development
09:34 Tech Stack for Remote Development
Mosh instead of SSH
Caddy for domains and routing
Tailscale for local network
Zed editor
Herdr for terminal sessions
Opencode or ClaudeCode for AI via the term
Termius for iOS AI
15:09 Tools and Alternatives for Remote Development
21:16 Exploring Workspaces and Terminal Management
30:31 Mobile Terminal Applications and Their Features
32:30 Navigating the Terminal Landscape: Tools and Alter
35:22 Headless Browsers and Authentication Challenges
38:35 Work Trees and Their Use Cases
44:21 Cloud Hosting and Local Development Solutions
45:28 Sick Picks & Shameless Plugs.
Sick Picks
Scott: Elgato Stream Deck Pedal
Wes: Packing Cubes
Hit us up on Socials!
Syntax: X Instagram Tiktok LinkedIn Threads
Wes: X Instagram Tiktok LinkedIn Threads
Scott: X Instagram Tiktok LinkedIn Threads
Randy: X Instagram YouTube Threads
Follow this show on AudioBrevity and new episodes get summarized for you. Create a free account