Show HN: Rustify – Stripe and code-signing for native Rust desktop apps

ratsimihah1 pts0 comments

Rustify — charge for your Rust desktop app, skip the plumbing

Stripe / RevenueCat for native Rust desktop apps<br>Charge for your Rust desktop app. Skip the plumbing.

A drop-in licensing crate, Merchant-of-Record checkout, and a scripted codesign →<br>notarize → publish pipeline. Sell your Bevy / egui / winit app without building any of it<br>yourself.

Get the founding license — €149 one-time · own the source · taxes at checkout<br>Prefer the hosted control plane? Join the waitlist:

Company

Email address<br>Join the waitlist

What are you building? (optional)

You’re on the list.

Check your inbox to confirm — early-access invites and the launch playbook go out as it’s<br>ready.

Early access to the hosted plan + the launch playbook. No spam; unsubscribe anytime.

release.sh<br># one command: locked demo → paid, signed product<br>$ rustify ship --release<br>✓ license crate wired (keygen)<br>✓ codesign · Developer ID<br>✓ notarize · staple<br>✓ publish app-1.0.dmg → CDN<br># shipped in ~a day, not weeks

the part nobody tells you about

Every paid native app re-solves the same three problems by hand.

01 Licensing is a security minefield<br>License keys, machine activation, and a fail-closed offline grace window are fiddly to get right — and easy to ship insecure.

02 Payments mean tax compliance<br>Selling worldwide drags in VAT, sales tax, and reporting. Get it wrong and it’s your problem, not your customer’s.

03 Shipping macOS is a gauntlet<br>Developer ID signing, notarization, stapling, and a CDN stand between your build and a download users will actually open.

what you get<br>Three pillars, composed — not three projects.<br>licensing<br>Licensing that just works<br>A Rust crate validates keys, node-locks the machine, and keeps working offline within a grace window. One build runs locked (free demo) and unlocks at runtime when a license validates — no separate demo binary, no recompile.

checkout<br>Get paid, skip the tax<br>Sell through a Merchant-of-Record (you bring Paddle): VAT and sales tax handled worldwide. A webhook mints a license key on purchase and revokes it on refund. You never touch billing or tax.

distribution<br>Ship signed & notarized<br>One command (or a GitHub Action) builds → codesigns → notarizes → staples → publishes your .dmg to a CDN. The Apple gauntlet, scripted.

Scaffold a new monetized app in ~8 config values.

how it works<br>Three steps. One small diff.

The licensing core is a runtime gate — add the plugin, check unlocked(),<br>ship. No second “pro” build to maintain.

// 1. add the crate, gate paid features at runtime<br>app.add_plugins(LicensingPlugin::keygen(config));

if licensed.unlocked() { /* paid feature */ }<br>1 Add the crate, gate paid features<br>Drop in the licensing plugin and guard paid code paths behind a runtime check. One binary ships as a free demo and unlocks when a key validates.

2 Connect your Paddle account<br>Purchases become license keys automatically via webhook; refunds revoke them. You stay the Merchant-of-Record — tax handled, money never touches us.

3 Run release.sh<br>Build → codesign → notarize → staple → publish. Out comes a signed, notarized download. Done.

why trust it<br>Born from a shipping app.

Rustify is extracted from LATTICE , a real macOS Rust app already selling<br>through this exact stack. The gotchas — keygen’s license-auth scheme, fail-closed offline<br>grace, Apple notarization — are already hit, debugged, and shipping. macOS today; Windows<br>& Linux next.

✓ You keep your own Paddle + Apple accounts — Rustify never touches your money or your signing keys.<br>✓ Fail-closed offline grace, keygen license-auth, and Apple notarization are already debugged in production.

shipping today<br>Real, paid apps already run on this stack.

Rustify is the licensing, checkout, and distribution stack pulled straight out of shipping<br>apps — not a prototype. These two take real money on macOS today, on the exact pieces you'd<br>otherwise build by hand.

LATTICE live<br>Fly through your claude.ai export as a neon 3D knowledge graph.<br>macOS · Rust + Bevy · US$29 Visit site →<br>Heft live<br>Open the CSV that crashes Excel.<br>macOS · native Rust · €19 Visit site →

Each one licenses, gets paid, and ships signed on the exact stack Rustify packages — so you<br>don't rebuild it.

who it’s for<br>Indie Rust devs and small studios shipping native apps.<br>Bevy<br>egui<br>winit<br>Slint<br>Iced<br>Dioxus<br>GTK-rs<br>Tauri-adjacent

The licensing core is framework-agnostic — thin adapters wire it into<br>whatever you render with. If it’s a native Rust GUI, it fits.

questions<br>FAQ<br>Which frameworks does it support? Any native Rust GUI. The licensing core is framework-agnostic; thin adapters cover Bevy, egui, winit, Slint and friends.<br>Do you take a cut of my revenue? No. You bring your own Merchant-of-Record (Paddle); Rustify never touches your money. We’re tooling, not a payment processor.<br>What platforms can I ship to? macOS first (Apple Silicon proven, end to end). Windows and Linux are on the roadmap.<br>Do I need my own Apple and Paddle accounts? Yes — you stay the seller and own those...

rust licensing paid rustify license native

Related Articles