Getting Started
Everything you need to go from code to listed on the Kyper marketplace.
What is Kyper?
Kyper is a marketplace for small, independently built applications — think Etsy for software. You build your app, push it with one command, and Kyper handles distribution, payments, and optional managed hosting. Consumers can buy your source code outright or subscribe for a private cloud deployment.
How it works
There are two ways to ship on Kyper. Both use the same build pipeline under the hood.
-
1
Add a
kyper.ymlto your repo — runkyper initfor an interactive wizard that auto-detects your stack, or write it manually. Include aDockerfiletoo — Kyper builds all images from source. This is the only time you need the CLI if you use the GitHub App for releases. -
2
Install the Kyper GitHub App — connect it to your repo from your Developer Portal app page. One-time setup.
-
3
Push a semver tag —
git tag v1.0.0 && git push origin v1.0.0. Kyper receives the webhook, builds your image, and posts a Check Run to the commit. -
4
Complete submission — when the build passes, you'll get an email to add demo credentials and submit for review.
-
5
Listed on the marketplace — once approved, consumers can buy or subscribe. You keep 85% on purchases and 100% of your subscription price.
Alternative — Kyper CLI
-
1
Run
kyper init— auto-detects your stack and generates akyper.ymlconfig file. -
2
Run
kyper push— archives your code, builds a Docker image, and runs a Trivy security scan. -
3
Complete submission & review — same flow as GitHub: add demo credentials, submit, wait for approval.
Marketing your app
Once your app is listed, the Marketing tab in your app dashboard gives you a suite of tools to grow your audience:
-
✓
Promotional checklist — an 8-step guided checklist tracks the most impactful things you can do to improve discoverability and conversion. As you complete steps, your checklist progress updates automatically.
-
✓
Social share widget — pick a screenshot and generate a pre-filled post with UTM-tagged links for Twitter/X or LinkedIn. Use the copy button to paste into any platform.
-
✓
Embeddable widget — paste an
<iframe>snippet into your blog or website. It renders a live app card linking directly back to your Kyper listing. -
✓
Sales — create time-limited discount campaigns (5–80% off) that apply automatically at checkout. No coupon code needed — a "Sale" badge appears on your marketplace listing during the active window. Works for both one-time purchases and subscriptions.
-
✓
Analytics — the Analytics tab shows page views, purchases, and new subscriptions over 7/30/90-day windows. Traffic sources (Direct, Social, Email) are detected from referrer headers. UTM campaign breakdowns appear automatically when you share using the built-in share widget.
Prerequisites
-
✓
A Dockerfile — Kyper builds all images from source. You supply the Dockerfile, we handle the rest.
-
✓
A developer account — developer access is invite-only. Apply with an invite code.
-
✓
Kyper CLI (optional — only needed for the CLI path) — install via Homebrew or download from GitHub Releases.bash
brew tap bitfootco/tap brew install kyper
Quick start — GitHub App
# Step 1 — generate kyper.yml (one-time, then you're done with the CLI) brew tap bitfootco/tap && brew install kyper kyper init git add kyper.yml && git commit -m "Add kyper.yml" # Step 2 — install the Kyper GitHub App and link your repo # https://github.com/apps/kyper-marketplace # Then: Developer Portal → your app → Connect GitHub # Step 3 — every future release is just a tag push git tag v1.0.0 git push origin v1.0.0 # → Kyper builds, scans, and emails you when the build passes
Prefer the CLI? See the Push Workflow docs →
Publisher env vars
You can set key/value pairs in your Developer Portal app page that are silently merged into every consumer deployment — no kyper.yml changes needed, and no visibility to consumers.
Default (unlocked) — your value is the fallback. If a consumer has set the same key themselves, their value wins.
Locked — your value always wins. Consumer and integration values for the same key are ignored at inject time. Use for internal API keys, feature-gate flags, or any value that must be consistent across all instances.
Values are write-once: once saved, they are never shown in the UI again. Leave a field blank on edit to keep the existing stored value.
Changes can optionally be propagated immediately to all running deployments — Kyper queues an env reload for each instance.
Rails apps using Solid Queue can set locked publisher env SOLID_QUEUE_IN_PUMA=true to run jobs inside Puma for single-process deployments.
Manage publisher env vars from your app's page in the Developer Portal.