The advantage a local LLM has over ChatGPT or Claude is not that it is smarter. It is that the prompt never has to leave the machine. For a solo founder handling customer text, invoices and unpublished drafts, that is a product requirement rather than a preference — and it is the only category where a 8B model on your own hardware genuinely beats a frontier model you rent.
This is not a model arena post. It is the honest version of the trade: what running locally actually protects, what it costs, where it is the wrong answer, and how to move one workflow across in a week without turning the decision into an identity.
What "local" actually protects
The concrete guarantee is narrow and worth stating precisely. The weights sit on your disk. Inference happens in a process you started. The text you send in does not traverse a vendor's network, does not land in a vendor's request log, and cannot be swept into a training set by a checkbox in a settings page you did not read.
That matters for a specific list: support macros containing customer names and addresses, invoice and payment context, internal notes about staff, contract drafts, and unpublished editorial work that would be embarrassing to leak early. If your automation touches any of those, "where does this text go" is a question you will eventually be asked in writing.
It also removes a category of dependency. A vendor cannot deprecate the model you validated, change its refusal behavior overnight, or suspend your account mid-quarter. You pinned a tag; the tag does what it did last month.
Note what is not in that list. Local does not mean encrypted, does not mean audited, and does not mean compliant with anything in particular. If the orchestrator running next to the model is exposed on the public internet with a default password, you have moved the leak, not closed it. Privacy of prompts is worthless if the thing holding the prompts is open.
It does not make the output true
A small local model will invent a tax rate, a CLI flag, and a citation with exactly the same confidence a large one does — usually more often. Local is a location, not a fact-checker.
This trips people up because the privacy win feels like a quality win. It is not. Anything the model produces that will be shown to a customer or used to make a money decision needs the same review it would have needed from a hosted model, and probably more. Checkout copy, tax display, refund language: those stay human-owned regardless of where inference happens. We wrote the checkout side of that separately in Stripe tax display for US SaaS.
The correct framing is that local models are good at bounded transformations — classify this, extract those fields, summarize this thread for a colleague — and mediocre at open-ended generation where being wrong is expensive.
What you give up
Quality on long-form writing, first. A frontier model still writes better prose and holds a longer argument together. If your task is a two-thousand-word draft that a person will lightly edit, you will feel the gap immediately.
Tool use and structured output reliability, second. Hosted models have had a lot of work put into producing valid JSON and calling functions correctly. Local models can do it, but you will write more retry and validation code to get the same hit rate.
Uptime and on-call, third, and this is the one people underestimate. A hosted API is someone else's GPU, someone else's capacity planning and someone else's pager. Local is your RAM, your thermal throttling, your Restart=on-failure line, and your Saturday when a driver update breaks the runtime. When the laptop sleeps, the workflow sleeps.
The bill is real, it is just not an invoice
"Free forever" is as false here as it is on any free hosting tier. The costs are simply denominated differently.
Disk for weights, which grows every time you try a new tag and forget to prune. RAM you cannot use for anything else while a model is loaded. Electricity, which is not nothing when a GPU is warm for hours a day. And the largest line item: your time, spent on pinning, upgrading, testing, and diagnosing the runtime instead of on the product.
Do the arithmetic honestly before you switch. Buying a graphics card to avoid a modest monthly API bill takes a long time to pay back, and the payback assumes your time is worth zero. The case for local is strong when privacy is a requirement; it is weak when the only argument is cost.
When the hosted model is still the right call
Public marketing copy. SEO outlines you were going to paste into a shared document anyway. Long drafts where a better model saves you an hour of editing. Anything where the input contains no customer data and the output is going to be published in public regardless.
Being deliberate about this split is what separates an engineering decision from a religious one. There is no prize for running every task locally, and a workflow that produces worse public copy to protect data that was never private is a bad trade that only looks principled.
This site does not need five "ChatGPT vs Claude" comparisons to make that point. Those pages were unpublished here for the same reason we are not writing another one now.
Draw the threat model before you migrate
One sentence, written down: who are you protecting this text from?
If the answer is "a vendor's training pipeline and its request logs", local solves it directly. If the answer is "a competitor", the risk is probably your access control and not your model host. If the answer is "a regulator", the requirement is documentation, retention limits and a data map, and moving inference to your closet is only one paragraph in that document. If the answer is "I feel uneasy", that is a real signal but it will not tell you where to stop, and you will end up self-hosting things that did not need it.
The sentence also tells you when you are done. Without it, migrating is an open-ended project.
No silent cloud fallback
The most common way the advantage evaporates is a fallback nobody documented. The runtime is down, the workflow has an error branch that calls a hosted API, and customer text quietly goes over the wire at three in the morning.
Either forbid the fallback and let the job queue for a human, or declare it: a flag in the configuration, a field on the stored result recording which path answered, and a line in the privacy note. A user who picked local and got vendor inference without being told has been misled, whatever the intention was.
Label it in the product too. If a textarea can produce either a locally generated draft or a vendor one, badge which is which. A mixed surface with no label is the screenshot that ends up on social media.
Switching one workflow in a week
Do not migrate everything. Migrate one thing and learn what it costs.
Day one, pick a workflow whose output is internal — summarizing inbound support mail into a staff note is the usual choice, because a bad output costs you a re-read and nothing else. Explicitly do not pick the workflow that drafts customer-facing replies, and do not pick the marketing blog generator, which is exactly the task that wants a stronger hosted model and has no privacy requirement.
Day two, pin a model tag, write a fixture prompt with a few substrings the answer must contain, and set a real timeout on the call. The wiring details are in connecting local LLMs to automation workflows.
Day three, label the surface. "Drafted on this machine" is one line of UI and it is what makes the whole exercise honest.
Day four, reboot the machine on purpose. If the runtime does not come back on its own and the queue does not drain, you have a lab setup and not a service. Fix that before you add a second workflow.
Day five, decide. Keep it, or revert and write down why. Both are acceptable outcomes; drifting for a month is not.
Record the model tag in the runbook next to your DNS records. That is the level of operational seriousness this deserves — it is infrastructure now, not an experiment.
Signs you switched for the wrong reason
Quality complaints that arrive from people who did not know anything changed. Latency that pushed a customer-facing route over its budget. A GPU purchase justified after the fact. A growing set of workflows running locally where the input was already public.
And the clearest one: you cannot state, in a sentence, what the local requirement is for a given workflow. If nobody can, move that workflow back. Reverting a task to a hosted model is not a defeat, it is the same decision made with better information.
FAQ
Is local always cheaper? No. Count hardware, electricity and your hours. If those exceed the API bill you were avoiding, you switched for privacy, which is fine — but say so instead of calling it savings.
What hardware do I actually need? Enough RAM or VRAM to hold the tag you pinned with room for context. Start with the smallest model that passes your fixture, and only move up when it fails a task you actually run.
Can I run this on a gaming PC? As a lab, yes. As production, only if it does not sleep, restarts unattended, and is not the machine you also reboot for games. Otherwise the runtime lives on a box that stays up.
Does local mean I can skip a privacy policy? No. You still collect and store the input somewhere. Local changes who else sees it, not whether you have to describe what you keep and for how long.
Nine years in software — backend and frontend with equal weight, not a slogan. I also spent a year in IT operations, the kind of work that makes you respect uptime.
The same hands that ship APIs come from graphic design through modeling, 2D and 3D. I care how a thing looks and how it holds together.
Favokres is my personal digital hub: AI-assisted publishing, SEO, a forum, and a shop. An autonomous brain keeps the site moving so pages stay useful, not frozen.