Story
How an AI QA agent runs on a single Mac mini
1,792 broken tests, one Mac mini and an agent with 24 tools. How the PerfectApps QA agent repairs tests, triages failures and signs off releases, and why it runs on Apple silicon instead of a Linux VPS.
Updated 2026-09-15
PerfectApps is a no-code application platform. Its QA team looks after more than 2,100 automated test cases in Cypress and Selenium. Today most of that work is started, analysed and reported by an AI agent that lives on one dedicated Mac mini.
This is how it came to be, what it does, and why the hardware choice was deliberate.
It started with 1,792 broken tests
A mandatory security fix removed Bootstrap from the whole PerfectApps codebase. The page structure changed everywhere at once, and 1,792 test cases broke on the same day, across more than 50 areas of the product.
Nobody estimated the manual repair in detail, because it was never done by hand. The rough judgement was the whole team, four people, on nothing else for up to two months.
That is when the agent stopped being an idea.
Repair, then cover, then judge
Repair. Instead of fixing 1,792 tests one by one, the agent found each root cause once and applied the fix across every affected spec. Login was moved into a single shared command, so one change reached every test.
Cover. With repair working, the same approach went after areas that had never been tested. The suite grew from 1,400 to 1,955 spec files. That included a visual diagram designer drawn on a canvas, which offers nothing for a test to click on. The answer was to stop testing the canvas and check the saved data instead: 51 new specs, all green on the first full run.
Judge. After every regression, someone had to go through the failures and decide which were broken tests, which were real bugs and which were noise. That took 12 hours across three people per release. Now it is the agent's job. On one release it went through 1,748 test results and found exactly one real product bug among roughly 300 failures. The rest was migration debt.
What the agent does
The agent has 24 tools and decides for itself which ones to call and in what order. The team talks to it in plain English, in Microsoft Teams or on the web.
A release run goes through a fixed pipeline:
One release run
- 1SanityA smoke test on production. If it fails, everything stops.
- 2RegressionMore than 2,100 test cases in five parallel lanes, in about 90 minutes.
- 3New testsSpecs for areas without coverage, generated while regression runs.
- 4TriageEvery failure classified as a test issue, a real bug, a flaky test or a known blocker.
- 5ReportA GO or NO-GO verdict, posted to Teams and to the GitHub pull request.
A few examples of what changed:
| Task | By hand | With the agent |
|---|---|---|
| Triage a full regression run | 12 hours, 3 people | Minutes |
| Write a new test from a Jira ticket | 2 to 4 hours each | Minutes |
| File a bug after regression, with evidence | 30 to 60 minutes each | Automatic |
| Sign off a hotfix release | Half a day | Minutes |
The value is not the time saved on any single line. It is that weeks of manual work no longer appear in the release cycle at all.
Why a Mac mini, and not a Linux server
The agent runs natively on a dedicated Mac mini. No Docker, no Kubernetes, no cluster. It reaches the outside world through a Cloudflare Tunnel.
That was a decision, made after comparing it with a Linux VPS:
- Browsers run faster. On Apple silicon, Chrome and Cypress ran three to five times faster than on the VPS.
- The agent works on the real repository. It reads and writes the test files directly, so generating a new spec needs no extra API layer.
- Nothing to fake. A Mac has a real display stack, so there is no virtual display server to keep alive just to open a browser.
- Room for local models. Small models on the Mac's Neural Engine can handle routing and simple classification, and the larger cloud model is kept for reasoning that needs it.
The VPS would have cost 43 dollars a month less. That is less than the engineering day it would take to move.
What this means if you are building an agent
- Give the agent its own machine. It needs a browser, a file system and the freedom to run for hours without anyone logging it out or restarting it.
- Start with the work nobody wants. Triage and test repair were the bottleneck, not writing new features.
- Keep a person on the verdict. The agent classifies and recommends. The team decides whether a release ships.
- Pick hardware for the workload. If your agent drives a browser or builds for Apple platforms, Apple silicon pays for itself quickly.
The PerfectApps QA agent was built for internal use and runs on a dedicated Mac mini at MacDuty.
Next