A neutral look at one design choice
Supabase, and a small always-on worker beside it
What the worker is good for, and where you do not need one.
Written for a team that already runs on Supabase and a native Mac app. No sales pitch. Each slide stands on its own.
The question in one picture
Supabase does a lot. A Mac app alone cannot do the rest.
Hosted, always on, looked after
Work that needs something awake
- Run when the lid is closed
- Receive Slack, email or portal messages
- Keep keys safe on every laptop
- Run long jobs, or keep a shared record
Which view fits depends on one thing: what your app does when nobody is looking at it.
The shape
One small worker sits beside Supabase and does the unattended work
Macs talk to Supabase as before. The worker is one more client of Supabase that never sleeps.
An example day
While the laptops sleep, the work still gets done
Illustrative day. Times are examples, not measurements.
What needs something awake
Work that needs a fixed, always-on address
Scheduled jobs
A morning client summary or a weekly report. A cron job is an alarm clock for software, and it needs something awake to hear it.
Incoming webhooks
Slack, email and the client portal push messages to a web address. A laptop has no steady address, so the message needs a fixed one.
Laptops asleep
An agent on one person's Mac stops when the lid shuts, the Wi-Fi drops or the system updates.
One steady owner
One owner for the job queue, and a record the server writes
Safe retries
A failed job goes back in line, up to a set number of tries. Nothing is sent twice.
Long-running agent jobs
A short function stops at its time limit. A worker keeps going and saves progress as it goes.
Audit trail written by the server
Complete and in one place, not on whichever laptop ran it.
Tip: the picture scrolls sideways on a phone.
One place for the sensitive parts
Keys and rules in one place, not on every laptop
Secrets and gateway
A gateway is one doorway that holds the keys and makes outside calls for everyone.
- Change a key once, not on every machine
- A lost laptop leaks none
Same rules for all
The harness is the setup around an AI model: its tools, automatic checks (hooks) and alignment rules.
- Same for every person and agent
- Applies to scheduled work too
Monitoring and health checks
The worker pings "I am alive". If the pings stop, a person is told.
- Also flags stuck jobs and failing runs
- One more small thing to own
Code safety
Tests on every push, and agents on their own copy
Git runners and CI
A runner is a machine that checks the code each time it changes. "It works on my Mac" stops being the end of the discussion.
Agents in isolated branches
A branch is a separate copy of the work. Agents try changes there, and a person approves before anything joins the main version.
Always on duty
Service agents, and a request at 2am that still reaches a person
Another option
Hosted agent services versus a small worker
Claude or OpenAI hosted runs, Edge Functions, cron
Good at
- Quickest way to start
- Nothing to maintain or patch
- The vendor runs and scales it
Trade-offs
- Tied to one vendor and its sandbox
- Time limits, no persistent file system (Edge Functions)
- Keys and rules sit with each vendor
One small server you control
Good at
- Mixing Claude, GPT and local models per job
- Rules and keys kept in one place
- Still able to call hosted agents where they are good enough
Trade-offs
- Someone looks after it
- You set up the health check yourself
These are not rivals. A worker can hand a job to a hosted agent when that is the simplest fit.
Being honest
When you need a worker, and when you can skip it
- Work must run while laptops are closed
- Outside services must reach you at a fixed address
- Jobs run longer than a short function allows
- You want one home for keys, rules and run records
- On-call alerts must not depend on a laptop
- The app only reacts while someone has it open
- All jobs are short and fit Supabase
- Nothing arrives from Slack, email or a portal
- You would rather not own another server
- Hosted agents already cover what you need
If you skip it, Supabase plus the Mac app is a sound choice. You can add a worker later, when a real need shows up.
If you do add one
A suggested minimal starting setup
- Supabase stays the source of truth.Data, sign-in and the queue stay where they are.
- The Mac app stays a client.Nothing changes for people using it.
- One small worker.It picks up jobs from a Supabase table, runs the agent, and writes results and run records back.
- Secrets only on the worker.None on the Macs.
- A health ping and an alert.So a person hears if it stops.