rustify licensing · checkout · distribution

Stripe / RevenueCat for native Rust desktop apps

Charge for your Rust desktop app.
Skip the plumbing.

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.

Early access + 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.

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.