Sheet 01 — native macOS app starter
Mac Kit: Your next Mac app, already drawn up.
A Swift and SwiftUI foundation for selling your own Mac app. Activation, Settings, components, offline licensing and the scripts that ship a DMG are built. You start on the part that’s yours.
A drawing of the first screen an app built with Mac Kit shows: its icon, its name and tagline, a License Key field and an Activate License button. One side is drawn as a blueprint with notes, the other as the finished macOS window.
It goes on the window, and into the command further down.
Buy Mac Kit
Product
Built with
Price
With your YoIndie code
Delivery
Drawn by
Sheet 02 — mac-kit init
One command makes it yours.
Your name, bundle ID and product ID go into every file that needs them. Nothing is overwritten and your git remote is left alone. This is what it prints.
$ npx github:YoIndie/mac-kit init --name "Pomodoro" --bundle-id com.yourcompany.pomodoro --product-id pomodoro
Mac Kit 0.1.0 project created in ~/pomodoro
App name: Pomodoro
Xcode project: Pomodoro.xcodeproj
Bundle ID: com.yourcompany.pomodoro
Product ID: pomodoro (licensing)
94 file(s) created. .mac-kit.json records the version and identity.
Next steps:
1. Scripts/validate.sh (builds, tests and audits; needs Xcode 16+)
2. Scripts/build.sh && open "build/Build/Products/Debug/Pomodoro.app"
3. Build your UI in Pomodoro/Product/ProductRootView.swiftSheet 03 — bill of materials
Everything a Mac app needs before it’s yours.
- MK-01App shellAn activation screen, a sidebar whose screens get ⌘1–⌘9 menu items, a Settings window (⌘,), menus, and a main window that opens centred.
- MK-02MacKitUITheme tokens and components: buttons, TextInput, SearchField, ToggleRow, SelectableCard, Card, Panel, pages, sheets, alerts, and loading, empty and error states. Light, dark and Increase Contrast.
- MK-03MacKitLicensingOnline activation, Ed25519-signed entitlements verified with CryptoKit, Keychain storage and offline launches. When anything is off, it fails closed.
- MK-04MacKitCoreApp info, typed preferences that work with @AppStorage, and unified logging that keeps error details private.
- MK-05Scriptsbuild, test, validate, verify-app, package-dmg, notarize and set-app-icon. Bash and the tools that ship with macOS and Xcode, nothing to install.
- MK-06TestsSwift Testing for every module, app tests for startup and licensing that run inside the app, and tests for the scripts themselves.
- MK-07mac-kit initStarts a new app in an empty repository with your name, bundle ID and product ID. It never overwrites a file.
- MK-08DocsArchitecture, customizing, licensing, releasing, scaffolding and UI, each written for the next step you take.
App Sandbox and Hardened Runtime on · Swift 6 · no third-party dependencies
Sheet 04 — licensing
Activate once. Then it works offline.
A license is for one Mac and never expires. Mac Kit is the app side: your backend issues the keys, to the contract in Docs/LICENSING.md, with a Node.js reference for signing. Selling something that needs no key? Turn it off with one setting.
MACKIT_LICENSING_ENABLED = NO
Sheet 05 — release
From Debug to a notarized DMG.
Every build is local and needs no Apple account until you add your Developer ID. Then the same scripts sign, notarize and package what you sell.
- 01
Check
validate.sh
Builds, tests and audits Debug and Release, and that no development-only code ships.
- 02
Build
build.sh -c Release
One universal app, for Apple silicon and Intel.
- 03
Package
package-dmg.sh
A clean Release build, then a verified disk image in build/dist/.
- 04
Notarize
notarize.sh
Notarizes, staples and checks it with Gatekeeper. Needs an Apple Developer account.
- 05
Publish
GitHub Releases
Docs/RELEASING.md walks through putting the DMG online.
Sheet 06 — price
$20, once. Build as many apps as you like.
Buy Mac Kit
First-purchase price
$20USD · paid once
Tax included: this is what you pay, wherever you are.
- Secure checkout on the payment provider’s page
- Private GitHub repository, by email
- No account needed
Everyone
$20
Your first YoIndie purchase? Paid by 31 December 2026, it makes you an early supporter, and we email you a YoIndie code.
With your YoIndie code
$15
Bought from YoIndie by 31 December 2026? Enter the code we emailed you.
Notes
- Prices in US dollars, tax included. You can pay in your local currency, including by UPI in India; the payment page shows the converted amount, with a 2–4% conversion fee, before you pay.
- Not working as described, and we can’t fix it? Email us within 14 days for a refund. A refund ends access to the repository.
- Full details in our Terms.
The license
The line is between an app built with Mac Kit, which is yours to sell, and Mac Kit itself.
- You may: Use it in unlimited personal and commercial projects
- You may: Build, sign, distribute and sell the Mac apps you make with it
- You may: Build apps for clients and hand over their source
- You may not: Resell, redistribute or publish Mac Kit itself, modified or not
- You may not: Offer it, or something substantially derived from it, as a competing starter
- You may not: Put its source in a public repository
Sheet 07 — after you buy
From payment to your first build.
- 1
Name your GitHub account
After payment we email you a link. Tell us which GitHub username should get access.
- 2
Accept the invitation
That account gets a read-only invitation to the private repository.
- 3
Run mac-kit init
In an empty repository, with your app's name. Then Scripts/validate.sh, and you're building.
Sheet 08 — questions
Before you build.
Something else? Email us.
01What do I need?
A Mac with macOS 14 or later and Xcode 16 or later. To run the initializer, Node.js 18 or later and git signed in to GitHub. You don't need an Apple Developer account until you sign and notarize for public release.
02Can I sell the apps I build with it?
Yes, as many as you like, personal or commercial, and for clients with their source. What you can't do is resell or publish Mac Kit itself.
03Does it include a licensing backend?
No. Mac Kit is the app side: it activates against your backend once and verifies the answer on the Mac. The API contract is in Docs/LICENSING.md, with a Node.js reference for generating keys and signing entitlements.
04Can I ship an app without a license key?
Yes. Set MACKIT_LICENSING_ENABLED = NO and the app opens straight to your product, with no activation screen and no License tab.
05What about the Mac App Store?
Mac Kit's scripts and licensing are for selling outside the App Store, as a signed, notarized DMG. The App Sandbox is on by default, so the App Store stays an option, but App Store purchases aren't built in.
06How do I take a newer version later?
Run mac-kit init into a separate empty folder (npx fetches the latest from the repository each time), compare it with your app, and copy across what you want. You need access to the repository to do this.
07Is it a subscription?
No. You pay once and nothing renews. Once your app starts from it, the code is yours.
08Is anything real built on it?
MacDrop is. YoIndie's notch app uses Mac Kit's packages and its licensing, end to end.