惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
博客园 - Franky
罗磊的独立博客
G
Google Developers Blog
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
Recent Announcements
Recent Announcements
V
V2EX
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
U
Unit 42
GbyAI
GbyAI
A
About on SuperTechFans
WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
D
DataBreaches.Net
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I compared the licensing tools for my indie Mac app — the...
Nico · 2026-06-27 · via DEV Community

Nico

I needed to license a macOS app I sell outside the App Store. I went down the rabbit hole so you don't have to. Here's the honest breakdown — what each tool is genuinely good at, and where it stops. No tool is "best"; they're good at different things.

The two questions that decide everything

Before the tools, answer these:

  1. Do you need real offline verification? (Desktop apps usually do — see firewalls, planes, air-gapped machines.) This eliminates the "license key is just a string you check over HTTP" options for serious use.
  2. Do you want payments handled too, or do you already have Stripe? Some of these are licensing-only; some are merchant-of-record that also do keys.

The licensing-first tools

Keygen — the one most people name first. Language-agnostic API, deep policy engine, open-source, self-hostable. Genuinely powerful. The cost is that it's primitives: you bring your own payments, wire the webhooks, and write the client code. Pick it when you want maximum control and don't mind assembling the flow.

Cryptolens — classic license-key system with offline verification via signed responses. Strong .NET heritage. Solid if you're on Windows/.NET and want the traditional key + activation-count model.

LicenseSpring — enterprise-leaning. Floating licenses, air-gapped activation, node-locking. Overkill for a solo indie app, right at home if you're selling into companies with offline/dark-site requirements.

The payments-first tools (keys as a feature)

Lemon Squeezy / Polar — merchant of record, so they handle sales tax for you, with a license-key API bolted on (activate / validate / deactivate). Great for getting paid fast across borders. The licensing side is basic — keys are essentially strings with an activation limit; offline verification isn't really their thing.

Gumroad — the simplest possible "sell a thing, get a license key, verify over one endpoint." Fine for a cheap utility where piracy isn't worth fighting. Not infrastructure.

StoreKit — only relevant if you ship through the Mac App Store and want Apple to manage purchases/subscriptions. If you're outside the store, it doesn't apply.

Where Keylight fits

Full disclosure: I now build Keylight, so weigh this accordingly — I'm telling you the seam it's designed for, not that it wins every row.

The gap I kept hitting was the middle: Keygen gives you primitives but makes payments and client code your problem; Lemon Squeezy gives you payments but the licensing is thin. Keylight is the opinionated middle — finished SDKs (Swift, Rust, JS, C#, C++) with offline Ed25519 leases and Stripe wired in, so a payment mints a license with no webhook code and the SDK verifies offline with a checkOnLaunch() call. The tradeoff is the flip side of opinionated: it's hosted (no self-host like Keygen CE), and it's SDK-first rather than a bring-any-language REST API.

How I'd actually choose

  • Want primitives + max control, any language, maybe self-host? Keygen.
  • Selling into enterprises with air-gapped/floating needs? LicenseSpring.
  • Windows/.NET, classic key model? Cryptolens.
  • Just want to get paid across borders, licensing is secondary? Lemon Squeezy or Polar.
  • Cheap utility, piracy not worth fighting? Gumroad.
  • Shipping through the Mac App Store? StoreKit.
  • Swift/Rust/JS/C#/C++ app, want offline licensing + Stripe done for you? Keylight.

The meta-point: match the tool to whether your bottleneck is control, payments, or time. For most indie desktop devs shipping outside the store, the bottleneck is time — you want offline licensing and payments to just work so you can get back to the app.

I went deeper on the desktop-specific tradeoffs in this ranked breakdown if you want the long version.