Great Basin Software

Software that doesn’t claim more than it knows.

Great Basin Software is an independent software company. It builds and runs its own products — a maintenance engine for houses, a screener for regulated documents, and a dosing tracker — and every one of them is built on the same discipline: the software asserts only what somebody actually told it.

Entity Great Basin
Software LLC
Location Salt Lake City
Utah, USA
Products live 3

The work

Three products, shipped and running.

Each one is live, each one has real users, and each one draws a line it will not cross — stated here in the words it was built with.

WellKept

wellkeptonline.com Live

The manual your house never came with.

A slot — “there is a furnace” — is created by the property record or by you. A unit — “this Carrier, installed 2016” — is only ever created by you.

No fabricated equipment, and no claims about the age of a house whose build year is unknown.
Built with KotlinNodePostgres Android (WebView)Railway

Home maintenance for people who just got the keys and have no idea what a water softener wants from them. Behind it is a real rules engine: fifty-nine tasks with steps and safety notes, seasonal scheduling, renter routing, and regional modifiers — hard water shortens a flush cadence, freeze risk gates winterisation. Alongside it, an inventory of what is actually in the house: one page per thing, holding its make, model, age and jobs.

The task catalog is authored in Kotlin, validates itself on construction under roughly a hundred tests, and is exported to JSON by a test — so a change to a task’s wording shows up in a diff as a change to wording, and nothing else. The scheduling engine exists twice, in Kotlin and in JavaScript, and a fixture test proves the two agree rather than assuming it.

One implementation serves every surface. The phone layout and the desktop layout are the same file responding to width, and the Android app is a WebView onto that page plus the things only native can do — reminders, the camera, location.

Ludus Ready

ludusready.com Live

Inspection-readiness screening for regulated documents.

This tool triages. It never clears.

If someone skipped their own review because the tool said “looks good,” and the tool was wrong, it would be worse than useless — and the liability would be real.
Built with NodeExpressAnthropic API PostgresWorkOSStripe

Its product, Dry Run, reads a quality or regulatory document, evaluates it against a fixed set of inspection-readiness criteria, and returns per-criterion findings with evidence. It catches the mechanical problems fast — inconsistent dates, a missing version identifier, a “root cause” that only restates the symptom — so that a reviewer’s scarce attention goes to the judgment calls instead of to proofreading.

There is no overall verdict, no score, no readiness percentage: per-criterion output only. The model never generates regulatory citations — every criterion carries a static, human-written source that the server attaches after the fact. Criteria are versioned files in the repository rather than rows in a database, so the audit trail is the commit history. Stateless by default, and the API key never reaches the browser.

Built with input from a QC manager at a small biologics company working through a BLA submission — though the likely first buyer is not that company. It is the inspection-readiness consultancies who do this review by hand, at volume, under time pressure, on every engagement.

Yolovial

yolovial.com Live

Playful voice, serious engine.

Every row of the verification table passes, or the build does not ship.

Dosing math is not a place for “probably right.”
Built with Node (zero dependencies)PWA Installable AndroidRailway

Peptide dose and reconstitution tracking. Mix a vial with BAC water and get the concentration and the draw volume back; plan a day as morning, noon and night rather than as a checklist; and see where you are in a protocol in plain words — day 6 of 10 · ends Aug 8.

The math lives in one module of pure functions shared by the browser and the tests, checked against a verification table in which every row must pass before anything ships. The whole thing runs on zero npm dependencies: a plain Node server, static files, and a small JSON API.

It installs as a PWA with an offline cheat-sheet cache, for the moment you are standing at the counter with a vial in your hand and no signal.

Approach

Restraint is the feature.

Three products in three unrelated markets ended up sharing one habit, because in each case the same thing was true: software that overstates what it knows is worse than software that admits the gap. These are the rules that fell out of building them.

Say only what somebody declared

WellKept will not invent equipment nobody entered, will not show a room card for a room you may not have, and will not call a house old when its build year is unknown. Replacing a unit resets its schedule, because the new one is new.

Keep the deterministic part deterministic

A language model is good at reading a document and poor at being an authority. Dry Run lets the model screen the text and never lets it produce the citation — those are human-written, static, and attached by the server.

The audit trail is the repository

The criteria that decide a finding live in version-controlled files, not in a database table someone can quietly edit. What changed, when, and why is a diff.

Prove it rather than assert it

WellKept’s engine was ported from Kotlin to JavaScript and proven identical against fixtures rather than assumed equivalent. Yolovial’s dosing math ships with a verification table where every row must pass.

One implementation, not two

WellKept’s phone layout and desktop layout are the same file responding to width, and the Android app is a WebView onto that page. There is no second implementation to keep in sync. That decision has scars behind it.

Label what is simulated

Dry Run’s demo mode returns canned findings and says so, every time, in the interface. A convincing demo that a buyer mistakes for live output is a lie with a delay on it.

Practice

What that looks like in a codebase.

Product engineering

Whole products end to end — the domain model, the engine, the interface, the deploy, and the copy on the buttons.

Languages & data

Kotlin, JavaScript and Node, Python, Postgres. Android delivery. Docker and Railway for hosting.

LLM features with a brief

Model calls that stay server-side, return structured output, and are boxed in by rules the model cannot talk its way past.

Regulated and safety-adjacent domains

Work where being wrong has a cost: quality documentation, dosing math, home systems that can freeze or flood.

Contact

Questions about the products, or about working together.

Either is welcome. Mail reaches a person, and a real reply comes back.

contact@gbsoft.dev