Case study 02 · 2026 · Technotonin Industries · private beta

Create OS. Give your idea a place to take shape.

Forge, the built-in AI engineer, helps turn an idea into a connected project: requirements, parts research, system diagrams, firmware, and a plan to build and test it. Each output records what has been checked and what needs review.

17,304 lines Python kernel · Next.js 16 / React 19 site · measured, not claimed

createos.tech landing page, September 2026

Demo recorded September 15, 2026

From an idea to a first engineering plan.

A live run using web research and vendor pages.

01 speak it

Name the project

Click the mic or hold Space and describe the thing. Forge names it and says one line back.

3.7 s
02 structure it

Brief, requirements, decisions

Goal, editable assumptions, out-of-scope, requirements with traceability, open decisions, a parts list.

~25 s
03 engineer it

Research, price, diagram, code

Every source page fetched and its quote looked for. Every part priced from the vendor's own page. System diagram, gated build plan, bench tests, firmware.

84 s
04 change it

“Swap the controller for an ESP32-C3 and keep parts under $50”

One spoken sentence. Decision reopened, changed parts re-priced, firmware, diagram and plan redone in the background.

16 sto answer

That run: 10 of 10 parts priced, all 10 prices seen on the vendor's own page · 7 sources · a 253-line Arduino sketch. Measured by tests/test_forge_live.py.

The product

Nine artifacts, one project. Click through a real session.

The example project is a tabletop greenhouse monitor. Every screen below is a capture of the running desktop product, not a mockup.

Create OS project overview

Overview. Artifacts reviewed, open decisions, build tasks, the next decision to make, and Forge's spoken summary in the dock. The banner says exactly what the model did and when — and that nothing has been built on hardware.

Forge filling artifacts in the background

Forge working. Four jobs run in parallel; each artifact shows what Forge is doing until its job lands, instead of a stale version.

Change-impact view showing affected artifacts

Change impact. Edit one requirement and everything downstream — parts, diagram, cost, tests, firmware — is flagged for review and its tasks reopened.

Project brief

Project brief. Goal, assumptions the user can edit, and what is out of scope. Everything downstream depends on it, so editing it sends the rest back to review.

Requirements

Requirements. Each one traceable to the brief, and forward to the components, tests and code it affects.

Decisions

Decisions. Recommendation, alternatives, why, trade-off, confidence, the evidence it cites, and which artifacts change if you pick differently.

Bill of materials

Parts & BOM. Every row carries a price_check — on_page means the fetched vendor page actually prints that price; page_blocked, not_on_page, no_price and not_found are all distinct and all shown.

Sourcing

Sourcing. Where each part comes from, with the vendor page it was read from.

System diagram

System diagram. Power, signals and interfaces between the chosen parts. Regenerated when a part changes.

Firmware

Firmware. Python is syntax-checked locally; other languages are labelled “not compiled on this computer”. The product never claims the code ran.

Build plan

Build plan. Phased tasks with day offsets, owners, and the artifact and decision dependencies that gate them.

Test plan

Test plan. Bench tests derived from the requirements.

Research and evidence

Research & evidence. Each source carries a check: quote_on_page, page_read, file_not_read (a PDF), or page_blocked. Same discipline as the evidence tags in the PAWE repository, applied to a product surface.

Architecture

How Forge keeps the project connected.

read → plan → ┬ structure
               ├ research     four jobs in parallel
               ├ sourcing
               └ code

POST /turn  one model call returns:
  say        spoken, ≤ ~30 words
  reply      on screen
  actions[]  note · brief · requirements · decision · parts
             research · code · structure · build

workspace.json  schema_version 1 · atomic write under one lock
  artifacts[]    id · kind · version · depends_on · decision_ids
                 review status · provenance · prior versions
  decisions[]    recommendation · alternatives · confidence · evidence
  tasks[]        phase · owner · artifact + decision deps
  jobs[]         running · done · failed(reason) · interrupted
  conversation[] said · applied[]
  • Kernel. The OpenAI Responses API with a strict JSON schema on every reply and the hosted web-search tool for research and sourcing. Retries on 429/5xx. A failed call marks its job failed with the reason and offers Retry — there is no silent fallback that invents an answer.
  • Typed actions. The kernel applies each action and starts heavy ones in the background. Until a job finishes, the artifact shows what Forge is doing rather than a stale version. A job left running by a closed app is marked interrupted on the next read.
  • Review workflow. New artifacts are drafts. Review needs reviewed inputs and approved decisions. An edit sends everything downstream back to review and reopens affected tasks. Picking an alternative is changes_requested.
  • Voice. Cloud STT and TTS with local faster-whisper and the OS voice as fallbacks, so a session still closes when the network flakes. Typing or talking cuts Forge off.
  • Adapters. Pluggable subsystems for design (template-parametric, OpenSCAD, mesh, freeform), fabrication (Bambu over LAN, manual drop), research, sourcing, code authoring, planning, documents, STT and TTS.

The website

Next.js 16, React 19, TypeScript, Tailwind 4 — and nothing else in the runtime.

The marketing site at createos.tech is 3,720 lines with zero additional runtime dependencies. CSS/SVG planes assemble as the page scrolls, driven by one passive listener and requestAnimationFrame updating three decorative elements without a React re-render. Reduced-motion users get a static presentation; the mobile menu and the dependency demo work by keyboard.

The inquiry form posts to /api/interest with server-side validation, delivery through Resend then an optional webhook, seven-second timeouts per attempt, and an explicit 503 with a prefilled mail link if nothing delivers — it never pretends an undelivered request succeeded.

verify-interest.mjs

Nine offline checks on the API

Malformed payloads, validation and length limits, missing delivery config, provider success and failure, HTML escaping, and fallback — every network call mocked.

verify-marketing.mjs

Front-end behaviour under mocks

Form loading, success, errors, repeat submissions, draft preservation, scroll progress and reduced-motion.

Scale

83 Python files · 17,304 lines · 14 TS/CSS files · 3,720 lines

Plus an investor package with an architecture map, financial model and risk register — and an explicit list of claims the company has banned itself from making.