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

4 min read Original article ↗

Stripe / RevenueCat for native Rust desktop apps

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

Prefer the hosted control plane? Join the waitlist:

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

the part nobody tells you about

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

  • 01

    Licensing is a security minefield

    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

    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

    Developer ID signing, notarization, stapling, and a CDN stand between your build and a download users will actually open.

what you get

Three pillars, composed — not three projects.

licensing

Licensing that just works

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

Get paid, skip the tax

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

Ship signed & notarized

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

Three steps. One small diff.

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

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

if licensed.unlocked() { /* paid feature */ }
  1. Add the crate, gate paid features

    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

    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

    Build → codesign → notarize → staple → publish. Out comes a signed, notarized download. Done.

why trust it

Born from a shipping app.

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

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

shipping today

Real, paid apps already run on this stack.

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

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

who it’s for

Indie Rust devs and small studios shipping native apps.

  • Bevy
  • egui
  • winit
  • Slint
  • Iced
  • Dioxus
  • GTK-rs
  • Tauri-adjacent

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

questions

FAQ

Which frameworks does it support?

Any native Rust GUI. The licensing core is framework-agnostic; thin adapters cover Bevy, egui, winit, Slint and friends.

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.

What platforms can I ship to?

macOS first (Apple Silicon proven, end to end). Windows and Linux are on the roadmap.

Do I need my own Apple and Paddle accounts?

Yes — you stay the seller and own those relationships. Rustify wires them together; it doesn’t sit between you and your customers.

When can I use it?

Drop your email. Early-access invites go out as it’s ready, newest signups included.

New native Rust app → monetized, licensed, distributable — in ~a day.

Get early access and the launch playbook. No spam; unsubscribe anytime.