Build1 distinct publisher2 min readPublished
A dev.to writeup swaps a prompt for a pure function. The interesting part is not the token bill, it is the validator: templates force you to decide which fields are mandatory.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Two hundred lines across nine configurations is about twenty two lines per kind-and-tone pair [1], and they are not spread evenly. The greeting function asks only whether the tone is warm, so a brief letter and a formal letter open with the same "Dear X,"; the sign off splits all three ways, into "With thanks,", "Regards," and "Sincerely," [17][18][2]. Tone is thinner than the type signature implies, and that thinness shows up in a diff instead of hiding in a prompt string someone will quietly edit next quarter.
The part worth stealing is not the string assembly. It is `missingFields`. A template cannot paper over an absent value, so the author had to decide what is mandatory, and the required set came out different per document kind: a recommendation needs the subject's name and their role, while a resignation or notice needs the writer's role and a last working day [14]. In his own words, a single prompt would have blurred those together [16]. That is the fair accounting of what a model call buys on a feature like this. It buys permission to defer the product question until a user hits the gap.
The failure surface that never got built is the other line item. No spinner, no timeout, no retry logic, no "the service is busy" copy to write and then translate [13]. Each of those is a state, a screen and a string in every locale you ship.
The shape generalises past letters. Anything with a form on one side and a document on the other is a candidate, because the sections are fixed [3] and the only real variation is which pre-written sentence appears in which slot. The author's recommendation body is one ternary on whether the writer said how they know the subject [c15b], repeated maybe fifteen times [15].
The boundary is in the author's own criterion, not in any argument about model quality: generation earns its keep when the space of good outputs is large enough that you cannot enumerate it, and here it was small enough to write down [4]. Three kinds by three tones [9] is enumerable. A free-text box where the user explains an unusual situation is not, and the day that box appears in the form, the switch statement reasoning expires with it. Until then, every specific sentence in the output traces back to a form field or to a line the author wrote and can be held to [6], which is a property no evaluation harness will give you.
Ranked by verification strength, evidence, and original report placement.
The feature was a letter generator: a user fills in a few fields and gets a finished letter of recommendation, resignation letter or notice letter in plain text, ready to paste into an email.
Instead of a prompt and a model call, the author wrote a deterministic version: a pure function of about two hundred lines, with no network, no key and no tokens.
The output shape is fixed: a recommendation letter is a date block, a greeting, three or four paragraphs, a sign off and a name, with no structural variation to discover.
The author's stated criterion: generation is valuable when the space of good outputs is large and cannot be enumerated; here the space was small enough to write down, so the model was an expensive approximation of a switch statement.
The document is legal-adjacent and goes into an employment record: a resignation letter that invents a notice period, or a reference that invents a fact about a person, is a real problem for the person who sent it.
Templates cannot hallucinate; everything specific in the output either came from a form field or is a sentence the author wrote and can be held to.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Code-level detail, but one self-reported source and nothing inspectable
The post publishes real artefacts — the LetterKind/LetterTone unions, generateLetter's signature, the complete greeting() and signOff() bodies, the paras.push ternary and the full missingFields() function — which is well above the usual standard for an opinion piece and makes the design claims checkable on their face. Against that: it is a single publisher, first-person, with no repository, deployed URL, commit or test output linked, and the comparative assertions (per-CI cost of testing model calls, 'nine strings per tone, translated once, correct forever', the cost of the removed model call) carry no figures at all.
No adoption signal in the supplied material
The cluster contains no release, deployment, usage, traffic, download or third-party-uptake evidence: the post never links a live tool or repository, gives no user numbers, and no other publisher reports anyone adopting the pattern. Inferring adoption from a personal writeup would be guesswork.
Punchy headline, deliberately scoped body
The headline framing ('I removed the LLM call') and the cluster dek are attention-shaped, but the body understates rather than overstates: the author caps the claim with a criterion for when generation genuinely wins, concedes the generated paragraphs are generic and that the load-bearing sentence must come from a human free-text field, says arbitrary prose rewriting is a real model task, and flags that around thirty letter kinds would force a rethink. No performance, cost or quality superlatives are asserted, so the rhetoric sits slightly below what the published code supports.
Self-authored craft post with mild contrarian-engagement upside
This is a developer's own writeup on a community publishing platform about their own free tool, so there is reputational and audience-building upside and an anti-default framing ('just call a model is the default now') that reliably attracts engagement. The countervailing signals are that the argued design choice removes a revenue path rather than creating one — the tool stays free with no signup and no business case — and that no vendor, sponsor, model provider or paid product is being promoted in the supplied text.
Internally consistent and specific, but unverified and single-sourced
Confidence is lifted by internal coherence: the type unions, helper functions, validator branches and the nine-assertion cross-product all line up arithmetically and with each other, and the claims are narrow enough to be self-contained. It is capped by there being one publisher, no independent corroboration, no linked code or test run, no adoption dimension at all, and unquantified comparative assertions about model cost, CI expense and localisation effort.
build
Allow-list the closed set, block-list the open one: 193 thin geo pages, one gate1 distinct publisher
build
A GAN beauty filter is a device budget allocation, not a feature toggle1 distinct publisher
build
Agent memory rots by accumulation, and the missing primitive is a supersession key1 distinct publisher
build
Your inference bill is an architecture defect: declare the task before you call the model1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 25, 2026