Skip to content

Commit cffc52c

Browse files
author
GitLab CI
committed
feat: Add sponsorship info, dual CLI command, fix doctor version detection
- Add Support section to README (GitHub Sponsors, BMAC, Ko-fi, WeChat/Alipay) - Add `flutter-skill` as npm bin alias (both `flutter-skill` and `flutter-skill-mcp` work) - Fix doctor version detection for native binary (use currentVersion constant) - Fix uninstall.sh to clean .pub-cache/bin wrappers
1 parent 832aec5 commit cffc52c

7 files changed

Lines changed: 201 additions & 24 deletions

File tree

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,29 @@ brew upgrade flutter-skill
409409
- [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=ai-dashboad.flutter-skill)
410410
- [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
411411

412+
## Support This Project
413+
414+
If Flutter Skill helps you build better Flutter apps, consider supporting its development:
415+
416+
| Platform | Link |
417+
|----------|------|
418+
| GitHub Sponsors | [Sponsor on GitHub](https://github.com/sponsors/ai-dashboad) |
419+
| Buy Me a Coffee | [buymeacoffee.com/ai-dashboad](https://buymeacoffee.com/ai-dashboad) |
420+
| Ko-fi | [ko-fi.com/flutter-skill](https://ko-fi.com/flutter-skill) |
421+
422+
<details>
423+
<summary>WeChat / Alipay</summary>
424+
425+
| WeChat Pay | Alipay |
426+
|------------|--------|
427+
| <img src="docs/assets/wechat-pay.jpg" width="200"/> | <img src="docs/assets/alipay.jpg" width="200"/> |
428+
429+
</details>
430+
431+
Your support helps maintain the project, add new features, and keep it free and open source.
432+
433+
---
434+
412435
## License
413436

414437
MIT

docs/SPONSORSHIP_SETUP.md

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
# Sponsorship Platform Setup Guide
2+
3+
How to configure each donation/sponsorship platform for Flutter Skill.
4+
5+
---
6+
7+
## 1. GitHub Sponsors
8+
9+
**URL**: https://github.com/sponsors/ai-dashboad
10+
11+
### Setup Steps
12+
13+
1. Go to https://github.com/sponsors and click **"Get started"**
14+
2. Fill in your profile:
15+
- Country/region for tax purposes
16+
- Bank account or Stripe Connect for payouts
17+
3. Create sponsor tiers (suggested):
18+
| Tier | Price | Perks |
19+
|------|-------|-------|
20+
| Supporter | $3/month | Name in README sponsors list |
21+
| Backer | $10/month | Priority issue response |
22+
| Sponsor | $25/month | Logo in README + priority support |
23+
| Gold Sponsor | $100/month | Logo + dedicated support channel |
24+
4. Add a `.github/FUNDING.yml` to the repo:
25+
```yaml
26+
github: ai-dashboad
27+
buy_me_a_coffee: ai-dashboad
28+
ko_fi: flutter-skill
29+
```
30+
This adds a **"Sponsor"** button on the GitHub repo page.
31+
32+
5. Submit for review (GitHub reviews within 1-2 business days)
33+
34+
### Payout
35+
- Stripe Connect: direct to bank account
36+
- Minimum payout: $0 (no minimum)
37+
- Payout schedule: monthly
38+
39+
---
40+
41+
## 2. Buy Me a Coffee
42+
43+
**URL**: https://buymeacoffee.com/ai-dashboad
44+
45+
### Setup Steps
46+
47+
1. Go to https://www.buymeacoffee.com and sign up
48+
2. Choose username: `ai-dashboad`
49+
3. Complete profile:
50+
- Display name: **Flutter Skill**
51+
- Bio: "AI Agent Bridge for Flutter Apps - Open source MCP server for Flutter app automation"
52+
- Profile image: Flutter Skill logo
53+
4. Set up payment receiving:
54+
- Connect **Stripe** (recommended) or **PayPal**
55+
- Stripe supports 135+ countries
56+
5. Configure pricing:
57+
- Default coffee price: $5 (adjustable)
58+
- Enable **memberships** for recurring support (optional)
59+
6. Customize your page:
60+
- Add a thank-you message
61+
- Add supporters wall widget
62+
63+
### Embed Badge in README
64+
```markdown
65+
[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=flat&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/ai-dashboad)
66+
```
67+
68+
### Payout
69+
- Stripe: instant to bank (1-7 days processing)
70+
- PayPal: instant
71+
- Platform fee: 5%
72+
73+
---
74+
75+
## 3. Ko-fi
76+
77+
**URL**: https://ko-fi.com/flutter-skill
78+
79+
### Setup Steps
80+
81+
1. Go to https://ko-fi.com and sign up
82+
2. Choose username: `flutter-skill`
83+
3. Complete profile:
84+
- Display name: **Flutter Skill**
85+
- Bio: "Open source MCP server for Flutter app automation"
86+
- Category: **Software & Technology**
87+
4. Connect payment method:
88+
- **PayPal** (available everywhere) or **Stripe** (recommended)
89+
5. Configure:
90+
- Ko-fi price: $5 per coffee (default)
91+
- Enable **Ko-fi Gold** ($6/month) for membership tiers (optional)
92+
- Enable **Shop** to sell digital goods (optional)
93+
6. Customize page colors to match Flutter Skill branding
94+
95+
### Embed Badge in README
96+
```markdown
97+
[![Ko-fi](https://img.shields.io/badge/Ko--fi-F16061?style=flat&logo=ko-fi&logoColor=white)](https://ko-fi.com/flutter-skill)
98+
```
99+
100+
### Payout
101+
- PayPal/Stripe: instant (no holding period)
102+
- Platform fee: **0%** (Ko-fi takes no cut on donations!)
103+
- Ko-fi Gold: 5% fee on membership payments
104+
105+
---
106+
107+
## 4. WeChat Pay / Alipay (QR Codes)
108+
109+
### Setup Steps
110+
111+
1. **Generate QR codes**:
112+
- **WeChat Pay**: Open WeChat > Me > Services > Money > Receive Money > Save QR Code
113+
- **Alipay**: Open Alipay > Collect > Save QR Code
114+
115+
2. **Save QR images** to the repo:
116+
```
117+
docs/assets/wechat-pay.png (recommended: 500x500px)
118+
docs/assets/alipay.png (recommended: 500x500px)
119+
```
120+
121+
3. **Image optimization** (optional):
122+
```bash
123+
# Resize to 500x500 if too large
124+
sips -Z 500 docs/assets/wechat-pay.png
125+
sips -Z 500 docs/assets/alipay.png
126+
```
127+
128+
4. The README already references these images:
129+
```html
130+
<img src="docs/assets/wechat-pay.png" width="200"/>
131+
<img src="docs/assets/alipay.png" width="200"/>
132+
```
133+
134+
### Security Notes
135+
- QR codes are **receive-only** (safe to publish publicly)
136+
- They cannot be used to withdraw money from your account
137+
- You can regenerate QR codes anytime if needed
138+
139+
---
140+
141+
## 5. Add FUNDING.yml to GitHub
142+
143+
Create `.github/FUNDING.yml`:
144+
145+
```yaml
146+
github: ai-dashboad
147+
buy_me_a_coffee: ai-dashboad
148+
ko_fi: flutter-skill
149+
custom:
150+
- https://raw.githubusercontent.com/ai-dashboad/flutter-skill/main/docs/assets/wechat-pay.png
151+
```
152+
153+
This enables the **"Sponsor"** button on the GitHub repo page with links to all platforms.
154+
155+
---
156+
157+
## Quick Checklist
158+
159+
- [ ] GitHub Sponsors: Submit application at github.com/sponsors
160+
- [ ] Buy Me a Coffee: Create page at buymeacoffee.com/ai-dashboad
161+
- [ ] Ko-fi: Create page at ko-fi.com/flutter-skill
162+
- [ ] WeChat Pay: Save receive QR to `docs/assets/wechat-pay.png`
163+
- [ ] Alipay: Save receive QR to `docs/assets/alipay.png`
164+
- [ ] Create `.github/FUNDING.yml`
165+
- [ ] Verify README sponsorship section renders correctly

docs/assets/alipay.jpg

148 KB
Loading

docs/assets/wechat-pay.jpg

109 KB
Loading

lib/src/cli/doctor.dart

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'dart:io';
22
import 'dart:convert';
3+
import 'package:flutter_skill/src/cli/server.dart' show currentVersion;
34

45
/// Run the doctor command to check installation health
56
Future<void> runDoctor(List<String> args) async {
@@ -182,22 +183,7 @@ void _printInfo(String message) {
182183
}
183184

184185
Future<String?> _getFlutterSkillVersion() async {
185-
// Try to read version from pubspec.yaml in the package
186-
try {
187-
final scriptPath = Platform.script.toFilePath();
188-
final binDir = Directory(scriptPath).parent;
189-
final projectRoot = binDir.parent;
190-
final pubspec = File('${projectRoot.path}/pubspec.yaml');
191-
if (pubspec.existsSync()) {
192-
final lines = pubspec.readAsLinesSync();
193-
for (final line in lines) {
194-
if (line.startsWith('version:')) {
195-
return line.split(':').last.trim();
196-
}
197-
}
198-
}
199-
} catch (_) {}
200-
return null;
186+
return currentVersion;
201187
}
202188

203189
String _detectRuntime() {

npm/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"description": "MCP Server for Flutter app automation - Give your AI Agent eyes and hands inside your Flutter app",
55
"main": "index.js",
66
"bin": {
7-
"flutter-skill-mcp": "./bin/cli.js"
7+
"flutter-skill-mcp": "./bin/cli.js",
8+
"flutter-skill": "./bin/cli.js"
89
},
910
"scripts": {
1011
"postinstall": "node scripts/postinstall.js"

uninstall.sh

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,15 @@ if [ -d "$HOME/.flutter-skill-src" ]; then
4444
removed=$((removed + 1))
4545
fi
4646

47-
# 4. Remove wrapper script
48-
if [ -f "$HOME/bin/flutter-skill" ]; then
49-
printf '%b\n' "${YELLOW}Removing wrapper script...${NC}"
50-
rm -f "$HOME/bin/flutter-skill"
51-
printf '%b\n' "${GREEN} Removed $HOME/bin/flutter-skill${NC}"
52-
removed=$((removed + 1))
53-
fi
47+
# 4. Remove wrapper scripts
48+
for wrapper in "$HOME/bin/flutter-skill" "$HOME/.pub-cache/bin/flutter-skill" "$HOME/.pub-cache/bin/flutter_skill"; do
49+
if [ -f "$wrapper" ]; then
50+
printf '%b\n' "${YELLOW}Removing wrapper script...${NC}"
51+
rm -f "$wrapper"
52+
printf '%b\n' "${GREEN} Removed $wrapper${NC}"
53+
removed=$((removed + 1))
54+
fi
55+
done
5456

5557
# 5. Remove cached binaries
5658
if [ -d "$HOME/.flutter-skill" ]; then

0 commit comments

Comments
 (0)