Product blog

Product blog

Product updates, field guides, and field notes—each with links to docs and the hub where relevant. High-level milestones also appear on the changelog.

  1. One large app bundle split into a small initial shell plus many per-route chunks that load only when a tool is opened, with the AI model deferred until first use

    Field guide · Jun 16, 2026

    Code-splitting a large web app: how lazy routes keep it fast

    How the NSS Background Remover stays fast to open despite many tools: route-level code-splitting so each tool is its own chunk, lazy boundaries that defer the heavy parts, deferring multi-megabyte AI models until a tool actually needs them, and the measurements that tell you whether any of it worked.

    • Each tool is its own chunk
    • Models load only on demand
    • Measure first-load JS, not total

    NSS Background Remover

    Read
  2. A memory-over-time chart where a naive export climbs past a tab-crash ceiling while a tiled, streaming export stays under the memory budget by processing one chunk at a time

    Field guide · Jun 10, 2026

    Browser memory management: not crashing the tab on a 4K export

    How to keep a heavy in-browser export from crashing the tab: where the memory actually goes (decoded pixels, not file size), why peak usage is what kills you, tiling and streaming so you never hold the whole thing at once, releasing buffers and bitmaps explicitly, and degrading honestly when a device cannot do the job.

    • Decoded pixels dwarf file size
    • Peak memory is what crashes
    • Stream and tile; release early

    Novus Visualizers

    Read
  3. Two swimlanes — a main thread that stays smooth handling UI events and a worker thread doing heavy AI inference — connected by postMessage and a transferred buffer

    Field guide · Jun 9, 2026

    Web Workers and OffscreenCanvas: keeping the UI smooth during heavy AI work

    A practical tour of moving heavy work off the main thread: why a single blocked thread freezes everything, what a Web Worker is and how data crosses to it without being copied, how OffscreenCanvas lets a worker draw directly, and the honest trade-offs in complexity that decide when it is worth doing.

    • One blocked thread freezes all
    • Move heavy work to a worker
    • Transfer data, do not copy it

    NSS Background Remover

    Read
  4. A blog post represented as a typed code object passing through a type-check gate and a build step into a rendered page, with a struck-through database to signal no CMS

    Field guide · Jun 8, 2026

    Content as code: running a 250-post blog without a CMS

    Why the product blog stores all ~250 posts as typed TypeScript objects instead of in a CMS: the post shape is enforced by the compiler, the whole catalog is versioned and reviewable in git, broken posts cannot ship, and the same tools that build the app build the content — plus an honest account of where this approach stops scaling.

    • Posts are typed objects, not rows
    • The compiler is the editor
    • No half-published states

    Novus Stream Solutions (hub)

    Read
  5. How we standardized on Claude Code and Claude to build our apps

    Field notes · Jun 7, 2026

    How we standardized on Claude Code to build our apps

    Our path through AI coding tools and LLMs, and why an agentic flow won out for a small business.

    • Copilot → Cursor → Claude Code
    • One model: Claude
    • Agentic flow for business

    Novus Stream Solutions (hub)

    Read
  6. Reliability layers: device detection, integrity checks, canonical queue, result guards, and honest errors

    Field guide · Jun 7, 2026

    Reliability hardening: device lifecycle, model integrity, and honest failures

    An engineering note on the unglamorous guarantees that make a tool trustworthy — and why honest failures beat silent wrong answers.

    • WebGPU device + quality detection
    • Model-asset integrity checks
    • Honest errors, no [object Object]

    Stack & engineering

    Read
  7. A bug reported in one tool traced to a shared pattern present across the whole suite, fixed everywhere at once

    Field guide · Jun 6, 2026

    Audit every tool, not just the broken one: the "all-tools" doctrine behind our refactors

    Why a bug reported in one place is almost always a pattern that lives in several, and the discipline of fixing the pattern everywhere at once.

    • One report, many instances
    • Fix the pattern, not the example
    • Prevents whack-a-mole regressions

    Engineering

    Read
  8. Parallel investigation agents mapping different facets of a problem before any implementation begins

    Field guide · Jun 5, 2026

    Running a multi-agent research sprint before touching code

    How to use parallel agents to understand a problem completely before changing anything, and why that front-loaded research pays for itself on large work.

    • Research as its own sprint
    • Parallel investigation agents
    • Research-first beats patch-first

    Engineering

    Read
  9. A large refactor decomposed into self-contained units backed by durable artifacts rather than held in working memory

    Field guide · Jun 5, 2026

    Managing the context window on a large refactor: what broke and how we fixed our sessions

    A workflow lesson, not model marketing: how to structure a large refactor so it survives the limits of what can be held in working context at once.

    • The whole problem won't fit at once
    • Structure work into self-contained units
    • Durable artifacts over live memory

    Engineering

    Read
  10. A human approver directing and reviewing AI agent execution across a build pipeline

    Field guide · Jun 4, 2026

    The approver model: running a build pipeline where AI writes and you review

    The operating model for one person directing AI execution: what the human keeps, what the agent takes, and how to keep the review meaningful.

    • Human as approver, agent as executor
    • Where it works and where it breaks
    • Review discipline that scales

    Engineering

    Read