Skip to content

Commit 6847dc3

Browse files
committed
chore: v1.4.0 — README refresh + go-live checklist
- Bump version 1.4.0-rc1 → 1.4.0 (drop rc suffix) - README: add Documentation section linking docs/*.md files + reframe as homebrew/affiliate-only project + 3 install paths - docs/go-live-checklist.md: operator playbook for going live (affiliate signups, optional Gumroad, shipping workflow)
1 parent a6a506d commit 6847dc3

3 files changed

Lines changed: 204 additions & 7 deletions

File tree

README.md

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
# Gecko 🦎
22

33
**Your private Netflix at home.** Plug a USB stick into a mini PC, follow a
4-
3-minute wizard, and you have your own streaming server on the TV. No
4+
5-minute wizard, and you have your own streaming server on the TV. No
55
technical skills needed.
66

7-
Two ways to install:
7+
> **Homebrew, free, MIT.** This is a side project. The work is done for
8+
> free, the website runs on a homelab. Funded only by VPN/hardware affiliate
9+
> commissions (you pay the same) and optional donations.
10+
> Landing: <https://gecko.nubul.art>
811
9-
- **Gecko OS** — bootable USB image. Flash, boot a spare PC, done.
12+
Three ways to install:
13+
14+
- **Gecko OS** — bootable USB image. Flash, boot a spare mini PC, done.
1015
*(The recommended path for non-technical users.)*
11-
- **Desktop installer** — Windows + macOS native installer that runs Gecko
12-
as a background service. Best if you want it on an existing PC.
16+
- **Desktop installer (Windows)** — native `.exe` installer that runs Gecko
17+
as a Windows service. Best if you already have an always-on PC.
18+
- **Desktop installer (macOS)** — native `.pkg` (Apple Silicon or Intel)
19+
that runs Gecko as a launchd daemon.
1320

14-
Both share the same web UI and the same Docker stack.
21+
All three share the same web UI and the same Docker stack.
1522

1623
---
1724

@@ -58,6 +65,20 @@ on Windows/macOS.
5865

5966
---
6067

68+
## Documentation
69+
70+
Full guides live in [`docs/`](./docs/) and on the website:
71+
72+
- [Getting Started](./docs/getting-started.md) — from buying to streaming, the 5-minute path
73+
- [Hardware Guide](./gecko-os/docs/HARDWARE.md) — which mini PC to buy + what to avoid
74+
- [Troubleshooting](./docs/troubleshooting.md) — symptom → cause → fix
75+
- [AI Helper Prompt](./docs/ai-helper-prompt.md) ★ — paste into ChatGPT/Claude for Gecko-specific help
76+
- [Extending Gecko](./docs/extending.md) — Home Assistant, Pi-hole, Vaultwarden, Immich…
77+
- [User Journey](./docs/user-journey.md) — the full product flow
78+
- [FAQ](./docs/faq.md)
79+
80+
---
81+
6182
## Hardware
6283

6384
Minimum for a smooth experience:

docs/go-live-checklist.md

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
# Go-live checklist — Gecko v1.0
2+
3+
The complete list of things that need to be true for you to ONLY have
4+
to flash USBs (or do nothing) when orders arrive. Time estimates in
5+
parentheses. Order is roughly fastest → slowest.
6+
7+
## ✅ Already done (CI does this for you)
8+
9+
- [x] Build automation — every tagged release builds Windows .exe,
10+
macOS .pkg (×2 arches), and Gecko OS .img.xz
11+
- [x] All artefacts attached to GitHub Releases automatically
12+
- [x] Landing page live + docs published
13+
14+
## 🟡 5-min tasks for you to click through
15+
16+
### Email — set up `hello@<your-domain>` (5 min, free)
17+
18+
**Easiest path:**
19+
20+
1. Create a **ProtonMail** account: <https://proton.me/mail/pricing>
21+
- Free tier: 1 GB, 1 address. Plenty for now.
22+
- Suggest: `gecko.project@proton.me` or `gecko.os@proton.me`
23+
- 5 min, no card needed.
24+
25+
2. Later, when you have a domain on Cloudflare:
26+
- Cloudflare dashboard → Email → **Email Routing**
27+
- Forward `hello@yourdomain.tld``gecko.project@proton.me`
28+
- 100% free, zero maintenance.
29+
30+
**Alternative if you prefer Gmail**: just register `geckoproject@gmail.com`.
31+
Less private but anyone knows Gmail.
32+
33+
**No need to self-host email.** That's a maintenance trap. Use a free
34+
provider.
35+
36+
### ProtonVPN public affiliate (5 min)
37+
38+
1. Apply: <https://protonvpn.com/affiliate-program>
39+
2. Open to anyone — they accept OSS publishers / small sites
40+
3. Get your unique affiliate URL
41+
4. Update one line on the landing + the email template with it
42+
43+
### Gumroad — payment processor (10 min)
44+
45+
1. Sign up: <https://gumroad.com/> — free, 10% fee on transactions
46+
2. Create a product:
47+
- Name: "Gecko OS — pre-flashed USB"
48+
- Price: €35 (or whatever)
49+
- Type: physical (Gumroad asks shipping address from buyer)
50+
3. Get the product URL (`gumroad.com/l/gecko-usb` or similar)
51+
4. Replace the `alert(...)` on the landing USB button with that URL
52+
53+
**Alternative**: Stripe Checkout (1.4 % + €0.25, lower fees but slightly
54+
more setup). For first 100 sales, Gumroad is fine.
55+
56+
### Domain (10 min, ~€10/year)
57+
58+
If you don't have one:
59+
1. **Cloudflare Registrar** at-cost prices: <https://www.cloudflare.com/products/registrar/>
60+
2. Suggest: `gecko.os` (~€30/yr), `gecko.app` (~€18/yr), `gecko.cat` (~€10/yr, .cat needs Catalan-relevance check)
61+
3. After purchase: point at your Nubul IP via A record
62+
4. Caddy already serves the static files; just add the domain to
63+
`Caddyfile`
64+
65+
Use Cloudflare DNS so you can enable Email Routing for free.
66+
67+
## 🟢 30-min tasks (do once, no recurring work)
68+
69+
### Wire Gumroad → landing button
70+
71+
Edit `gecko-web/index.html` line ~824 (the USB button):
72+
73+
```diff
74+
- <a href="#" onclick="alert('Disponible aviat — escriu-nos un email a hello@gecko.cat'); return false;" class="btn btn-outline" style="width:100%;justify-content:center;">
75+
+ <a href="https://gumroad.com/l/YOUR_PRODUCT_ID" target="_blank" class="btn btn-outline" style="width:100%;justify-content:center;">
76+
```
77+
78+
Then `scp` to Nubul.
79+
80+
### Document your "flash + ship" workflow
81+
82+
When Gumroad emails you "new order":
83+
84+
1. Open Etcher → flash `gecko-os.img.xz` to a USB (3-4 min)
85+
2. Print label (use Gumroad's "Mark as shipped" + Correos web)
86+
3. Padded envelope (~€0.50, supermarket)
87+
4. Postage stamp (~€2.50 Correos for inside-EU)
88+
5. Drop at post box (or pick up from your home if you have it scheduled)
89+
6. Mark as shipped in Gumroad with tracking ID
90+
91+
Per-order time: ~10 minutes, no thinking required.
92+
93+
### Setup auto-email after purchase (Gumroad does this)
94+
95+
Gumroad has built-in receipt emails. You can customise them:
96+
1. Gumroad dashboard → Receipt
97+
2. Paste the contents of `docs/email-templates/welcome.md`
98+
3. Replace `{{purchaser_name}}` and similar with Gumroad's template tags
99+
4. Test by buying your own product (use Gumroad's preview mode)
100+
101+
## 🔵 Optional but high-leverage
102+
103+
### GitHub Sponsors (15 min)
104+
105+
Enables monthly recurring donations alongside Buy Me a Coffee.
106+
<https://github.com/sponsors/Pardo24> → enable.
107+
108+
Cardless donations from the open-source community are real (~€20-100/mo
109+
for medium-active OSS projects). Set tiers €3/€10/€30 monthly.
110+
111+
### Hardware affiliate (Amazon, 10 min)
112+
113+
1. Apply to Amazon Associates (your region): <https://affiliate-program.amazon.com/>
114+
2. After approval, generate affiliate URLs for the mini PCs in
115+
`gecko-os/docs/HARDWARE.md`
116+
3. Replace direct Amazon links with your affiliated ones
117+
4. ~3-8% commission on hardware bought via your link
118+
119+
### Discord server (20 min)
120+
121+
A free Discord server for community support — early users can help each
122+
other, you don't bear all the support burden.
123+
124+
1. Create Discord account if you don't have one (5 min)
125+
2. Make a server "Gecko Community"
126+
3. Channels: #general, #help, #showcase
127+
4. Create an invite link, put it on landing as "Get help on Discord"
128+
129+
## What you DON'T need to set up
130+
131+
- Cloud servers
132+
- Customer database / CRM
133+
- Tax compliance software (Gumroad handles EU VAT automatically)
134+
- Helpdesk (the AI prompt + GitHub issues are enough for v1.0)
135+
- Marketing automation
136+
- Custom paywall infra
137+
138+
## Recurring tasks once live
139+
140+
| Task | Frequency | Time |
141+
|---|---|---|
142+
| Flash + ship USB | Per-order | 10 min |
143+
| Respond to GitHub issues | Weekly | 30-60 min |
144+
| Update Docker images (auto via Recyclarr) | Monthly | 0 min — automated |
145+
| Tag a new release (when you have features) | Quarterly-ish | 5 min (tag + push, CI does rest) |
146+
| Check Gumroad payouts | Monthly | 2 min |
147+
148+
Total ongoing: **~1-2 hours per week** if you have ~10 orders/week.
149+
150+
## When to escalate
151+
152+
If you hit 100+ orders/month:
153+
- Switch from Correos manual drop-off to scheduled pickup
154+
- Bulk-print labels (Correos has API for this)
155+
- Consider hiring someone for €15/hour to handle physical packaging
156+
157+
If you hit 500+ active users:
158+
- Re-evaluate the VPN partnership pitch (you'll have real numbers)
159+
- Consider GitHub Sponsors waitlist for "priority support" tier
160+
161+
If you hit 1000+ active users:
162+
- Hosted version ("Gecko Cloud") becomes a real product
163+
- Hire someone for community / docs
164+
- Negotiate hardware bundle deals (Beelink direct, etc.)
165+
166+
## Bottom line
167+
168+
After the 5-min + 30-min tasks above are done, your operating model is:
169+
170+
```
171+
Email arrives → Flash USB → Drop at post box → Mark shipped
172+
⏱ 10 min
173+
```
174+
175+
Everything else (build, release, docs, support escalation) is either
176+
automated, community-driven, or one-time setup.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "gecko",
33
"productName": "Gecko",
4-
"version": "1.4.0-rc1",
4+
"version": "1.4.0",
55
"description": "Your wild home media server",
66
"main": "dist-server/server.js",
77
"private": true,

0 commit comments

Comments
 (0)