<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Stratos</title>
    <description>The latest articles on DEV Community by Stratos (@stratos_mac).</description>
    <link>https://dev.to/stratos_mac</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4241701%2F6511d30b-b70d-4d98-a856-2bde582e5182.png</url>
      <title>DEV Community: Stratos</title>
      <link>https://dev.to/stratos_mac</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stratos_mac"/>
    <language>en</language>
    <item>
      <title>Fixing Docker Battery Drain on Apple Silicon: Measure, Tune, and Choose Your Stack</title>
      <dc:creator>Stratos</dc:creator>
      <pubDate>Fri, 13 Nov 2026 04:45:55 +0000</pubDate>
      <link>https://dev.to/stratos_mac/fixing-docker-battery-drain-on-apple-silicon-measure-tune-and-choose-your-stack-1oog</link>
      <guid>https://dev.to/stratos_mac/fixing-docker-battery-drain-on-apple-silicon-measure-tune-and-choose-your-stack-1oog</guid>
      <description>&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I build Stratos. This is an updated, AI-assisted adaptation of our &lt;a href="https://stratosapp.dev/docs/docker-battery-and-performance/" rel="noopener noreferrer"&gt;original Docker battery guide&lt;/a&gt;. It includes Docker's own resource-saving options and does not claim a guaranteed battery improvement from switching tools.&lt;/p&gt;

&lt;p&gt;If your MacBook becomes hot or loses charge quickly while developing a Laravel application, Docker may be part of the workload—but it is not enough to see Docker running and assume it is the only cause.&lt;/p&gt;

&lt;p&gt;An IDE indexing source files, a frontend watcher rebuilding repeatedly, a queue worker stuck in a retry loop, or a database doing background work can consume resources in either a container-based or a native setup.&lt;/p&gt;

&lt;p&gt;The useful sequence is: measure the work, remove what you do not need, then decide whether your project requires containers.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Establish a useful baseline
&lt;/h2&gt;

&lt;p&gt;Open Activity Monitor and inspect CPU and Energy while your stack is idle and while you perform representative development tasks. Look at the application and its associated processes, not just one menu-bar process.&lt;/p&gt;

&lt;p&gt;Record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mac model, chip, memory, macOS, and Docker Desktop version.&lt;/li&gt;
&lt;li&gt;The running containers and services.&lt;/li&gt;
&lt;li&gt;Whether the laptop is charging, screen brightness, and power settings.&lt;/li&gt;
&lt;li&gt;Frontend watchers, queue workers, schedulers, database activity, and IDE indexing.&lt;/li&gt;
&lt;li&gt;What you did during the sample and how long you observed it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use repeated observations under similar conditions. An Activity Monitor Energy Impact value is a diagnostic signal, not a direct battery-runtime guarantee. A single “0% CPU” sample does not prove a tool never uses CPU.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Identify running containers and their work
&lt;/h2&gt;

&lt;p&gt;These commands inspect your setup; they do not delete data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
docker stats --no-stream
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check for services you left running from other projects. Inspect repeated application errors, queue retries, and rebuild loops. A quiet web application may still have busy background services.&lt;/p&gt;

&lt;p&gt;Stop only containers you recognize and do not currently need. Check running jobs before stopping a worker or database. Do not use volume deletion or aggressive cleanup as a battery troubleshooting step: that can remove development data without explaining the resource use.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check Resource Saver
&lt;/h2&gt;

&lt;p&gt;Docker's &lt;a href="https://docs.docker.com/desktop/use-desktop/resource-saver/" rel="noopener noreferrer"&gt;Resource Saver documentation&lt;/a&gt; describes how it stops the Linux VM after a configurable interval with no containers running. The documented default interval is five minutes, and the feature is enabled by default.&lt;/p&gt;

&lt;p&gt;Check &lt;strong&gt;Docker Desktop → Settings → Resources&lt;/strong&gt; for the relevant controls in your installed version. If your database, queue, or other container remains running, the “no running containers” condition has not been met. Resource Saver is not the same as making active container workloads free of resource costs.&lt;/p&gt;

&lt;p&gt;If you are done with container work for the day, stopping the unneeded services and letting Resource Saver activate—or quitting Docker Desktop—may be sufficient. You may not need to migrate your project at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Review filesystem sharing and file watchers
&lt;/h2&gt;

&lt;p&gt;Linux containers on a Mac access host-mounted source through a sharing boundary. The impact depends on Docker's current backend, sharing configuration, and the project's access pattern.&lt;/p&gt;

&lt;p&gt;For a PHP project, investigate frequent source scans, dependency access, generated caches, and frontend rebuild activity. Keep watcher scope focused on files that actually need rebuilding. Compare changes one at a time and measure the same request or development task again.&lt;/p&gt;

&lt;p&gt;Avoid copying a tuning recipe blindly. Moving files or dependencies into a volume can change how editors, tests, and package managers see them; evaluate that against your team's setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Decide whether Linux containers are a requirement
&lt;/h2&gt;

&lt;p&gt;Containers remain useful when your application depends on Linux-specific behavior, image-based team environments, or a collection of services defined in Compose. Running PHP directly on macOS does not provide identical Linux behavior or container isolation.&lt;/p&gt;

&lt;p&gt;For projects that need local PHP, a database, HTTPS, and development tools without container-specific requirements, a native environment is another option. Removing the Linux VM changes the architecture, but it does not guarantee a particular CPU percentage or battery duration. Native databases, queue workers, and build tools still do real work.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Evaluate Stratos with one project
&lt;/h2&gt;

&lt;p&gt;If a native stack fits your requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep the project source and development database backed up. Preserve your existing container configuration so you can return to it.&lt;/li&gt;
&lt;li&gt;Install Stratos and link the project under Sites. Select the installed PHP version and required extensions.&lt;/li&gt;
&lt;li&gt;Start the local services the project actually needs. Configure database host, port, credentials, cache, queue, and mail settings for those services. A Compose service hostname usually will not resolve as a local macOS database address.&lt;/li&gt;
&lt;li&gt;Review the site's &lt;code&gt;.test&lt;/code&gt; domain and HTTPS configuration. Check Laravel's application URL and any callback URLs.&lt;/li&gt;
&lt;li&gt;Run your application's checks: database access, authentication, assets, jobs, scheduled tasks, and tests. Migrate development data deliberately rather than assuming container volumes are automatically imported.&lt;/li&gt;
&lt;li&gt;Compare the same workload again. If Linux behavior is required or compatibility differs, retain the container setup for that project.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Stratos's Free edition includes core hosting and selected development tools. Advanced service management and integrated workflows have plan-specific limits; review &lt;a href="https://stratosapp.dev/buy/" rel="noopener noreferrer"&gt;current pricing&lt;/a&gt; before relying on a paid feature.&lt;/p&gt;

&lt;p&gt;Stratos 1.7.1 also includes a Free MCP schema bridge for coding agents. It can help an agent inspect permitted table metadata; it does not diagnose battery use automatically. See &lt;a href="https://stratosapp.dev/docs/local-ai-mcp/" rel="noopener noreferrer"&gt;Local AI &amp;amp; MCP setup&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a credible battery comparison should publish
&lt;/h2&gt;

&lt;p&gt;If you share before/after results, include hardware, OS/tool versions, the exact application and services, workload, duration, power settings, and repeated measurements. Disclose whether Docker Resource Saver was active and whether containers were still running.&lt;/p&gt;

&lt;p&gt;Without those details, fixed claims such as “Docker always uses 15–40% idle CPU,” “native means 0% CPU,” or “switching guarantees all-day battery” are too broad. The practical goal is to reduce unnecessary work while preserving the environment your application needs.&lt;/p&gt;

&lt;p&gt;References: &lt;a href="https://docs.docker.com/desktop/use-desktop/resource-saver/" rel="noopener noreferrer"&gt;Docker Resource Saver&lt;/a&gt;, &lt;a href="https://docs.docker.com/desktop/settings-and-maintenance/settings/" rel="noopener noreferrer"&gt;Docker Desktop settings&lt;/a&gt;, &lt;a href="https://stratosapp.dev/docs/installation/" rel="noopener noreferrer"&gt;Stratos installation&lt;/a&gt;, and &lt;a href="https://stratosapp.dev/docs/docker-battery-and-performance/" rel="noopener noreferrer"&gt;the original guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>webdev</category>
      <category>php</category>
      <category>laravel</category>
    </item>
    <item>
      <title>Stratos vs Laravel Herd Pro vs MAMP Pro vs Docker Desktop</title>
      <dc:creator>Stratos</dc:creator>
      <pubDate>Thu, 12 Nov 2026 19:43:47 +0000</pubDate>
      <link>https://dev.to/stratos_mac/stratos-vs-laravel-herd-pro-vs-mamp-pro-vs-docker-desktop-517i</link>
      <guid>https://dev.to/stratos_mac/stratos-vs-laravel-herd-pro-vs-mamp-pro-vs-docker-desktop-517i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I build Stratos. This is an updated, AI-assisted adaptation of our &lt;a href="https://stratosapp.dev/docs/stratos-vs-herd-vs-mamp/" rel="noopener noreferrer"&gt;original comparison&lt;/a&gt;, with links to the other vendors' documentation. It compares workflows rather than claiming that one tool wins every benchmark.&lt;/p&gt;

&lt;p&gt;Choosing a local PHP environment starts with your project's requirements. Do you need Linux containers? A Laravel-focused application? A graphical server manager? Or a native Mac stack with debugging tools and a schema bridge for coding agents?&lt;/p&gt;

&lt;p&gt;Stratos, Laravel Herd, MAMP Pro, and Docker Desktop overlap, but they solve different parts of that problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare the workflow first
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Stratos&lt;/th&gt;
&lt;th&gt;Laravel Herd / Pro&lt;/th&gt;
&lt;th&gt;MAMP / MAMP Pro&lt;/th&gt;
&lt;th&gt;Docker Desktop&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Main approach&lt;/td&gt;
&lt;td&gt;Native Swift Mac application managing local PHP and services&lt;/td&gt;
&lt;td&gt;Native PHP/Laravel development environment with Free and Pro capabilities&lt;/td&gt;
&lt;td&gt;Graphical local web environment; Pro adds site and server configuration workflows&lt;/td&gt;
&lt;td&gt;Container development platform; Linux workloads run through a Linux VM on macOS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PHP versions&lt;/td&gt;
&lt;td&gt;PHP 8.1–8.5, with per-site selection and simultaneous FPM pools&lt;/td&gt;
&lt;td&gt;Version management within its PHP/Laravel workflow; check the current plan comparison&lt;/td&gt;
&lt;td&gt;Pro supports individual site/server PHP configurations&lt;/td&gt;
&lt;td&gt;Configure PHP images and versions in your container definitions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local domains and HTTPS&lt;/td&gt;
&lt;td&gt;Linked &lt;code&gt;.test&lt;/code&gt; sites and trusted local HTTPS&lt;/td&gt;
&lt;td&gt;Integrated local site workflow&lt;/td&gt;
&lt;td&gt;Site configuration through MAMP Pro&lt;/td&gt;
&lt;td&gt;Configure your application, ports, certificates, and any reverse proxy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database workflow&lt;/td&gt;
&lt;td&gt;SQLite browser and MySQL basics on Free; broader integrated management and advanced tools depend on the plan&lt;/td&gt;
&lt;td&gt;Check current database/service features and plan entitlements&lt;/td&gt;
&lt;td&gt;Local database and website management tools&lt;/td&gt;
&lt;td&gt;Run databases as services; select a separate client or administration interface as needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coding-agent context&lt;/td&gt;
&lt;td&gt;Free MCP site/schema context; Pro runtime tools and execution with confirmation&lt;/td&gt;
&lt;td&gt;Herd 2.0 advertises agent/runtime context; check current Pro entitlements&lt;/td&gt;
&lt;td&gt;Check current vendor integrations for your workflow&lt;/td&gt;
&lt;td&gt;Add an appropriate MCP server or integration for the containers/services you use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debugging and sharing&lt;/td&gt;
&lt;td&gt;Integrated mail, dumps, requests, Tinker, profiling, snapshots, and tunnels, with plan-specific limits&lt;/td&gt;
&lt;td&gt;Integrated Laravel-oriented tools and services vary by plan&lt;/td&gt;
&lt;td&gt;Tools for local website development and testing&lt;/td&gt;
&lt;td&gt;Assemble the debugging, mail, profiling, and sharing services your project requires&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Container and Linux-image parity&lt;/td&gt;
&lt;td&gt;Local macOS services, not Linux container isolation&lt;/td&gt;
&lt;td&gt;Local development stack, not a replacement for Linux container isolation&lt;/td&gt;
&lt;td&gt;Local web environment, not a container runtime&lt;/td&gt;
&lt;td&gt;Suitable when the workflow depends on container images and Linux services&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The table describes approaches, not universal feature parity. Vendor releases, operating-system support, and paid entitlements change; check the official pages before choosing a subscription.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Stratos fits
&lt;/h2&gt;

&lt;p&gt;Stratos is intended for PHP and Laravel developers who want local macOS services and a single application for common development tasks. You can link a project, choose its installed PHP version, use local HTTPS, and access integrated development tools.&lt;/p&gt;

&lt;p&gt;In Stratos 1.7.1, &lt;strong&gt;Tools → Local AI &amp;amp; MCP&lt;/strong&gt; adds a local bridge for Cursor, Claude Code, Claude Desktop, and Windsurf. The Free tools can inspect permitted linked-site metadata and database schema, including columns and foreign keys. They do not return database rows or passwords through the schema API.&lt;/p&gt;

&lt;p&gt;Pro adds permitted dumps, request metadata, logs, and performance context. PHP, SQL, and Artisan execution requires confirmation in Stratos, including SQL reads. Approved actions use normal user/project permissions: this is not an operating-system sandbox. Mail and webhook context require separate app-wide permissions.&lt;/p&gt;

&lt;p&gt;That distinction matters when choosing an agent workflow. Sharing a schema is a different decision from sharing runtime payloads or allowing execution.&lt;/p&gt;

&lt;p&gt;See the &lt;a href="https://stratosapp.dev/docs/local-ai-mcp/" rel="noopener noreferrer"&gt;MCP setup guide&lt;/a&gt; and &lt;a href="https://github.com/khorshedobs/stratos-mcp-guide" rel="noopener noreferrer"&gt;public example configurations&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the alternatives fit
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Choose Herd when&lt;/strong&gt; you want its Laravel-focused workflow and its current integrations suit your projects. Its official site describes a native PHP/Laravel stack. A comparison should evaluate its actual capabilities rather than assume it is an Electron wrapper or that every PHP-version feature requires Pro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose MAMP Pro when&lt;/strong&gt; its graphical website and server configuration workflow fits your work. MAMP's current product page describes individual server and PHP configurations; describing it as limited to one global PHP version would be misleading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Docker Desktop when&lt;/strong&gt; your project or team depends on container definitions, Linux-specific services, or matching image-based environments. A native Mac stack does not reproduce those properties simply by running the same language version.&lt;/p&gt;

&lt;p&gt;You can also combine approaches across projects. A container-dependent application and a small native PHP project need not use the same local environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare resource use on your own workload
&lt;/h2&gt;

&lt;p&gt;Avoid choosing on an unexplained idle CPU screenshot. Compare the same application, service set, request workload, background workers, and filesystem layout. Record hardware, macOS, tool versions, power settings, and test duration.&lt;/p&gt;

&lt;p&gt;Docker Desktop also has &lt;a href="https://docs.docker.com/desktop/use-desktop/resource-saver/" rel="noopener noreferrer"&gt;Resource Saver&lt;/a&gt;, which can stop the Linux VM after a period with no running containers. An idle setup with Resource Saver active is different from one with database and worker containers continuously running.&lt;/p&gt;

&lt;p&gt;I am not presenting fixed CPU percentages or battery-drain figures here: results depend on workload and configuration, and this article does not include a reproducible benchmark dataset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing and next steps
&lt;/h2&gt;

&lt;p&gt;Stratos offers a Free edition, Pro at $39/year, Founder Lifetime at $89, and a Team plan. Check &lt;a href="https://stratosapp.dev/buy/" rel="noopener noreferrer"&gt;current pricing and limits&lt;/a&gt; for purchase terms and device allowances. For the other tools, consult their current official pricing rather than treating an old comparison's figures as permanent.&lt;/p&gt;

&lt;p&gt;Useful references:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://herd.laravel.com/" rel="noopener noreferrer"&gt;Laravel Herd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.mamp.info/en/mac/" rel="noopener noreferrer"&gt;MAMP and MAMP Pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/desktop/" rel="noopener noreferrer"&gt;Docker Desktop documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stratosapp.dev/download/" rel="noopener noreferrer"&gt;Stratos download and requirements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start with one representative project. Verify PHP extensions, database connectivity, queues, HTTPS, and your team's expected environment before migrating the rest.&lt;/p&gt;

</description>
      <category>php</category>
      <category>laravel</category>
      <category>webdev</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
