← All Articles

Engineering NotesXML: How We Build, Test, and Ship Quality Software

IWV Digital Solutions LLC

By IWV Digital Solutions — April 2026


NotesXML is a cross-platform note-taking application with integrated on-device AI. It runs on Android, Windows, and Linux — all from the same codebase. We build it to the standard we’d want from the tools we use ourselves: reliable, private, and thoroughly tested before it reaches your device.

This article describes how we approach software quality at IWV Digital Solutions — from how we structure our builds and manage error diagnostics, to how we verify that every release works correctly across all three platforms.


One Codebase, Three Platforms

NotesXML is built from a single source tree. The same application logic, the same AI engine integration, the same editor — all shared across Android, Windows, and Linux. Platform-specific code exists only where the operating system requires it: file system access, native menus, hardware-specific optimizations. Everything else is shared.

This matters because it means a bug fix or a new feature is written once and tested everywhere. There is no “Windows version” maintained separately from an “Android version” that drifts out of sync. When we ship a release, all platforms receive the same capabilities at the same time.

Our build system produces all platform artifacts — Android APKs, Windows installers and portable executables, and Linux AppImages — from a single build invocation. The system automatically synchronizes version numbers across every build target so that the version you see in the app always matches what was tested and released.


Build Phases: Development, Beta, and Production

Every NotesXML build is tagged with a build phase that controls how the application behaves:

Development builds are what our engineering team uses day-to-day. They include full diagnostic output, developer tools, and internal test harnesses. These builds are never distributed outside the development team.

Beta builds are distributed to our beta testing program. They include enhanced diagnostic logging that helps testers provide useful feedback, while removing developer-only tools that aren’t relevant to real-world use. Beta builds also carry a time window — they’re designed to be replaced by the next beta or by the production release, ensuring testers always run current software.

Production builds are what you download from Google Play, the Microsoft Store, or our website. They are hardened: diagnostic output is minimized to what’s needed for support troubleshooting, developer tools are removed entirely, and the application is optimized for performance and stability.

This phased approach means that features are exercised first in development, then validated by real users in beta, and only then promoted to the production channel. Nothing reaches your device without passing through both gates.


Error Logging: Diagnostic Without Exposure

Software logging is a balancing act. Too little, and support issues become unsolvable. Too much, and you risk exposing sensitive information or degrading performance. NotesXML takes a deliberate approach to both sides.

What we log. NotesXML records operational events — application startup, feature activation, AI model loading, file operations — at a level of detail appropriate to the build phase. Development builds are verbose. Production builds record only what’s necessary to diagnose a problem if something goes wrong.

What we never log. NotesXML includes a log sanitization layer that actively prevents sensitive information from appearing in diagnostic output. Credentials, authentication tokens, file contents, and personal data are filtered before they reach the log. This is enforced at the infrastructure level, not by individual developers remembering to be careful — the sanitizer runs automatically on every log entry.

Where logs stay. All diagnostic logs are stored locally on your device. NotesXML has no telemetry, no crash-reporting service, and no analytics backend that receives your data. If you contact support with an issue, you choose what to share. We never collect it automatically.

Platform-aware routing. Because NotesXML runs on three platforms, the logging system is aware of each platform’s diagnostic capabilities and routes output appropriately. On desktop, logs are written to a local file in a standard location. On Android, logs integrate with the platform’s own diagnostic system. On all platforms, the same information is captured — only the routing differs.


Testing: Automated, Thorough, and Multi-Layered

We test NotesXML using a combination of automated scripts that run inside the application, external testing tools, and focused manual verification. Each layer catches different categories of issues, and the combination gives us confidence that releases are solid across all platforms.

Built-In Self-Test Suite

NotesXML includes an embedded automated test suite that runs inside the application itself — on the same rendering engine, the same platform bridges, and the same file system that real users interact with. This is not a separate test harness running in a simulated environment; it exercises the actual application.

The self-test suite covers core functionality: note creation and editing across all supported note types, file operations (save, load, import, export), platform detection, the editor engine, and foundational UI behavior. It runs without any user interaction and produces a structured test report — saved as a NotesXML notebook — that documents every check and its result.

Because the self-test runs inside the application, it catches a category of bugs that external testing tools miss: issues that only appear when the full application stack is assembled and running on a specific platform. A function might pass a unit test in isolation but fail when a different rendering engine processes it on a different platform. The self-test catches that.

Feature-Specific Test Scripts

Beyond the core self-test, NotesXML maintains a catalog of standalone test scripts that target individual subsystems in depth. Each script exercises one area of the application thoroughly:

These scripts are maintained alongside the application source code and updated with every release. When a new feature ships, a corresponding test script ships with it.

AI Model Benchmarking

NotesXML ships with 16 AI models spanning multiple capability tiers, from lightweight models that run on phones to desktop-class models for advanced document analysis. Each model is benchmarked on real hardware using an automated benchmark suite that measures load time, inference speed, response quality, and memory consumption.

The benchmark suite runs the same workload across every supported model on every target device — from a Samsung Galaxy S24 Ultra to a desktop with a dedicated GPU. This ensures that the model catalog accurately represents what each model can do on real hardware, and that the RAM and storage estimates shown in the app are trustworthy.

Manual Testing

Some things resist automation. We manually test every release on physical hardware across all three platforms, with particular attention to:

Time-Efficient Testing

The combination of built-in self-tests, feature-specific scripts, and targeted manual testing gives us broad coverage without requiring weeks of manual QA for every release. The automated layers handle the repetitive verification — hundreds of checks across all platforms in minutes — while manual testing focuses on the judgment-intensive scenarios that automation handles poorly. This lets us release frequently without compromising quality.


The Result

Every NotesXML release that reaches you has been:

We build NotesXML this way because we believe the tools you rely on should be built with care. Your notes, your documents, your work — they deserve software that’s been thoroughly tested before it reaches your hands.


NotesXML is developed by IWV Digital Solutions LLC. Learn more at iwvdigitalsolutions.com.


© 2026 IWV Digital Solutions LLC. All rights reserved.

← Back to Articles