7.6 KiB
data-peek Release Guide
This document covers everything needed to ship data-peek for macOS, Windows, and Linux.
TL;DR — Can I Ship for Free?
Yes. Here's the reality:
| Platform | Free Option | Paid Option | User Experience Difference |
|---|---|---|---|
| Linux | ✅ No signing needed | N/A | No difference |
| macOS | ✅ Ad-hoc signing | $99/year Apple Developer | Warning dialog vs no warning |
| Windows | ✅ Unsigned | ~$200-400/year certificate | SmartScreen warning vs trusted |
Most open-source Electron apps ship unsigned. Users can bypass warnings.
Platform-Specific Details
Linux — No Signing Required ✅
Linux doesn't require code signing. Your current setup is ready:
- AppImage: Works out of the box
- Snap: Works out of the box
- Deb: Works out of the box
Action needed: None. Just build and distribute.
macOS — Options
Option 1: Unsigned/Ad-hoc (Free) ✅
Users will see: "data-peek can't be opened because Apple cannot check it for malicious software"
Workaround for users:
- Right-click the app → Open (first time only)
- Or:
xattrs -cr /Applications/data-peek.app
Pros: Free, works fine for developer tools Cons: Scary warning, extra step for users
Current config already supports this — just build and distribute.
Option 2: Apple Developer Program ($99/year)
Users will see: No warning, app opens normally.
What you get:
- Developer ID certificate for signing
- Notarization (Apple scans your app)
- No Gatekeeper warnings
When to consider: If you want a polished user experience or plan to distribute via Mac App Store.
Windows — Options
Option 1: Unsigned (Free) ✅
Users will see: "Windows protected your PC — Microsoft Defender SmartScreen prevented an unrecognized app from starting"
Workaround for users:
- Click "More info"
- Click "Run anyway"
Pros: Free Cons: SmartScreen warning scares users, some corporate machines block unsigned apps
Note: SmartScreen builds reputation over time. After enough users download and run your app without issues, warnings may reduce.
Option 2: Code Signing Certificate ($200-600/year)
Traditional EV (Extended Validation) certificates from:
- DigiCert (~$400-600/year)
- Sectigo (~$200-400/year)
- SSL.com (~$200/year)
Pros: Immediate SmartScreen trust (EV certs), professional appearance Cons: Expensive, annual renewal
Option 3: Azure Trusted Signing (~$10/month) 💡
Microsoft's newer, cheaper alternative:
- Pay-as-you-go pricing
- Works with electron-builder
- Builds SmartScreen reputation faster than unsigned
Pros: Cheap, modern, Microsoft-backed Cons: Requires Azure account, slightly more setup
Option 4: SignPath (Free for Open Source) 💡
SignPath.io offers free code signing for open-source projects.
Requirements:
- Public GitHub repository
- OSS license (MIT qualifies)
- Apply and get approved
Pros: Completely free Cons: Approval process, builds must go through their CI
Recommended Approach
For Initial Release (v1.0)
Ship unsigned on all platforms:
- Linux — No changes needed
- macOS — Users right-click → Open (one time)
- Windows — Users click "More info" → "Run anyway"
Include clear installation instructions in README.
For Future Releases
Consider signing when:
- You have paying users (Pro tier)
- Download volume justifies the cost
- Corporate users need signed apps
Release Checklist
Pre-Release
- Update
electron-builder.yml:- Change
appIdtocom.datapeek.app - Remove
electronDownload.mirrorline - Update
publishconfig (see below)
- Change
- Update
package.json:- Set proper
author - Set
homepageto GitHub repo
- Set proper
- Add LICENSE file (MIT)
- Add README with screenshots and install instructions
- Test builds on each platform
electron-builder.yml Updates
appId: com.datapeek.app
productName: data-peek
# ... keep existing config ...
# For GitHub Releases (recommended)
publish:
provider: github
owner: Rohithgilla12
repo: data-peek
# Remove this line:
# electronDownload:
# mirror: https://npmmirror.com/mirrors/electron/
Building Releases
# From apps/desktop directory
# macOS (builds for current architecture)
pnpm build:mac
# macOS universal (Intel + Apple Silicon)
# Add to electron-builder.yml under mac:
# target:
# - target: dmg
# arch: [x64, arm64]
# Windows
pnpm build:win
# Linux
pnpm build:linux
Creating a GitHub Release
-
Tag your release:
git tag v1.0.0 git push origin v1.0.0 -
Go to GitHub → Releases → Draft new release
-
Upload build artifacts:
data-peek-desktop-1.0.0.dmg(macOS)data-peek-desktop-1.0.0-setup.exe(Windows)data-peek-desktop-1.0.0.AppImage(Linux)data-peek-desktop-1.0.0.snap(Linux)data-peek-desktop-1.0.0.deb(Linux)
-
Write release notes and publish
CI/CD (Optional but Recommended)
Automate builds with GitHub Actions. Create .github/workflows/release.yml:
name: Release
on:
push:
tags:
- 'v*'
jobs:
build:
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install
- name: Build
run: pnpm --filter @data-peek/desktop build
- name: Build Electron app
run: |
cd apps/desktop
pnpm exec electron-builder --publish never
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.os }}
path: apps/desktop/dist/*.{dmg,exe,AppImage,snap,deb}
Installation Instructions for Users
Include this in your README:
macOS
-
Download
data-peek-desktop-x.x.x.dmg -
Open the DMG and drag to Applications
-
First launch: Right-click the app → Click "Open" → Click "Open" again
(This is required because the app is not notarized)
Windows
- Download
data-peek-desktop-x.x.x-setup.exe - Run the installer
- If you see SmartScreen warning: Click "More info" → "Run anyway"
Linux
AppImage:
chmod +x data-peek-desktop-x.x.x.AppImage
./data-peek-desktop-x.x.x.AppImage
Snap:
sudo snap install data-peek-desktop-x.x.x.snap --dangerous
Deb:
sudo dpkg -i data-peek-desktop-x.x.x.deb
Cost Summary
| Approach | Cost | Notes |
|---|---|---|
| Ship unsigned | $0 | Users see warnings |
| macOS only signing | $99/year | Apple Developer Program |
| Windows only signing | $10-400/year | Azure TS or traditional cert |
| Both platforms signed | $109-500/year | Combined |
| SignPath (Windows) | $0 | Free for OSS, requires approval |
Future Considerations
Auto-Updates
Current config uses electron-updater. For unsigned apps:
- macOS: Auto-updates work but user must approve
- Windows: Auto-updates work
- Linux: AppImage supports auto-updates via
electron-updater
Mac App Store
Requires Apple Developer Program + additional review process. Consider only if:
- You want discoverability
- You're okay with Apple's 15-30% cut
- Your app meets their guidelines
Windows Store
Possible but requires Microsoft Partner account. Similar considerations to Mac App Store.