Yuvi GD
YUVI

ProBill

ProBill compiles a web-based billing UI (HTML/CSS/JS) into a standalone C++ executable using BinWeb. Web assets are hex-encoded into the binary's code segment. WebView2 serves them over a sandboxed file:// protocol that preserves HTML5 storage APIs without running a local HTTP server.

Technologies Used

BinWebC++CMakeWebView2HTMLCSSJavaScriptPDF GenerationEncryption

Software Info

Completed
startDate: 2025-10-01
endDate: 2025-10-07
platform: Desktop (Windows)

Gallery

image
1 / 5
ProBill main billing interface

User-friendly billing interface

ProBill is a production validation of the BinWeb framework deployed against a real-world billing workflow for local shopkeepers and wholesalers.

The core packaging approach encodes the entire web frontend into C++ char arrays during a CMake pre-build step. These arrays are compiled directly into the .text segment, meaning the application carries its entire UI as read-only machine code with no loose asset files to manage or tamper with.

At runtime, a WebView2 instance intercepts all file:// requests through a custom URI scheme handler. The handler extracts the requested asset from the in-memory arrays and returns it to the WebView2 renderer. By using file:// rather than data: URIs, the renderer assigns the app a proper origin, which unlocks localStorage, IndexedDB, and the Cache API for persistent billing data.

PDF bill generation is handled by a native library called through the WebView2 message bridge. The web UI posts a JSON payload describing the bill; the C++ side receives it, formats it, and writes the PDF to disk without any round-trips to a server.

Software Specifications

System Requirements

Windows 10+
2GB RAM minimum
15MB binary size (including BinWeb runtime)
WebView2 runtime (pre-installed on modern Windows)

Supported Formats

PDF bill export
Local billing data via localStorage
Offline operation with full app functionality

Key Features

Web assets hex-encoded into binary code segment at compile time

Sandboxed file:// URI scheme handler preserving full HTML5 storage APIs

PDF bill generation via native C++ library called through WebView2 message bridge

Billing history with persistent localStorage-backed data

Zero external dependencies and zero loose asset files at runtime

Real-time billing calculations with sub-100ms response

Architectural Implementation

Asset Embedding Pipeline

A CMake pre-build script scans the web source directory, compresses assets, and generates a C++ header containing each file as a static const unsigned char array keyed by path. The main binary includes this header. At runtime, the WebView2 URI handler resolves requests by looking up the path in a std::unordered_map built from these arrays, returning the bytes directly without any filesystem access.

Origin Preservation via file:// Interception

Serving assets as data: URIs assigns a null origin and breaks localStorage. BinWeb registers a custom URI scheme with WebView2 that remaps all internal requests to file:// URLs pointing to a sandboxed virtual path. The WebView2 renderer treats this as a real origin, enabling full storage API access while still serving assets entirely from memory.

Outcomes

Deployed to production use by real shopkeepers for daily billing operations

Binary footprint under 15MB including the BinWeb runtime

Validated BinWeb's storage APIs and offline operation in a production environment

Performance Benchmarks

Sub-second startup using BinWeb embedded assets

Under 50MB memory during operation

Instant PDF generation

Real-time calculation response under 100ms

Yuvi GD

Game Developer & 3D Artist crafting immersive digital experiences. Pushing the boundaries of interactive technology.

Services

  • Game Development
  • Technical Art & Pipeline
  • Full-Stack Web Development
  • Custom Software Solutions
  • Utilities & Network Systems

Get In Touch

Email:
Yuvi_GD@outlook.com

Discord:
yuvi_gd

© 2026 Yuvi GD. All rights reserved.

Built with Next.js, Three.js & Tailwind CSS