Skip to content
SNOWBROS

Work, shown with its reasoning.

Each project below is live or released. For the larger ones we show the decisions that shaped them, not just the screens.

Vinny's Atelier till: a draft invoice with three line items, a discount, and Razorpay selected as the payment method.

Retail · POS, 2026

Vinny's Atelier

The retail system a working boutique runs its counter on

A keyboard-first till, invoicing, inventory, customers and trade reports for Vinny's Fashion Hub. One Next.js codebase, shipped to the web and as an offline-capable Windows desktop app.

  • The desktop app is a window, not a second application

    Tauri wraps the live deployment. Bundling the server would have shipped the database service key and the Razorpay secrets to a counter PC. A window keeps every secret on the server and one deployment as the source of truth.

  • An offline till numbers its own invoices

    Sales settled without a network are numbered from the device's own shard, and sync adopts that number. The receipt in the customer's bag is never renumbered, and a retried push finds its invoice instead of creating a second one.

Status
Live, v1.5.0
Year
2026
Stack
Next.js 16, React 19, TypeScript, PostgreSQL, Supabase, Drizzle ORM
Accounic dashboard on Windows: net position, receivable and payable totals, and today's debits, credits and settlements.An Accounic account drawn as an instrument: cash in hand certified over an engraving, with the opening balance as a stamped counterfoil.

Finance · Ledger, 2026

Accounic

A multi-currency ledger where the database computes every balance

A fast ledger of who owes whom, across currencies. Three clients (web, Android, Windows) on one Postgres engine, with releases built by CI.

  • The database computes every balance

    Receivables, payables and net positions are views in Postgres. The Next.js and Flutter clients only display them, so three clients can never disagree about a total.

  • Money in minor units, per currency

    Amounts are integers. How many minor units make a major one belongs to the currency: the yen has none, the Kuwaiti dinar has three.

Status
Live, v1.16.1
Year
2026
Stack
PostgreSQL, Supabase, Row-level security, Next.js, TypeScript, Flutter
Atlas HTML report: health scores by category and findings for a dead file, a server-only module reachable from a client component, and a circular import.

Developer tools, 2026

Snowbros Atlas

Static analysis that reports only what it can prove

A Rust engine that maps a JavaScript, TypeScript or Python project into one semantic graph and reports circular imports, dead files, server/client leaks and hardcoded secrets, each with its evidence chain.

  • Deterministic, with no model in the loop

    No AI decides whether an issue exists. Every finding carries the chain of facts that produced it, so a reviewer can check it in seconds.

  • One IR for every language

    Rules are either language-neutral or explicitly scoped. Adding Python meant writing a frontend, not rewriting detectors.

Status
Open source, v0.4.0
Year
2026
Stack
Rust, Tree-sitter, LSP, VS Code, SARIF, npm