Skip to content

Commit 09b9c32

Browse files
author
Nguyễn Tuấn Việt
committed
Update sponsors page with real libraries and simplified support options
- Add 6 production libraries: flutter_debounce_throttle, native_workmanager, Grant, kmpworkmanager, KRelay, dart_debounce_throttle - Simplify sponsorship to single Buy Me a Coffee button - Add platform badges and GitHub links to libraries - Update descriptions based on actual library features
1 parent 20cbbba commit 09b9c32

2 files changed

Lines changed: 129 additions & 55 deletions

File tree

src/components/SponsorshipTiers/index.tsx

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,50 +16,44 @@ type TierItem = {
1616

1717
const TiersList: TierItem[] = [
1818
{
19-
name: 'Casual Brewer',
19+
name: 'Coffee Mate',
2020
price: '$5',
2121
icon: '☕',
2222
gradient: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
2323
benefits: [
24-
'Supporter badge on Discord',
25-
'Name in CONTRIBUTORS.md',
26-
'Early access to updates',
27-
'Support indie development',
24+
'Access to exclusive posts & updates',
25+
'Supporter Badge on profile',
2826
],
29-
ctaText: 'Buy Me a Coffee',
27+
ctaText: 'Become Coffee Mate',
3028
ctaLink: 'https://www.buymeacoffee.com/brewkits',
3129
},
3230
{
33-
name: 'Silver Partner',
34-
price: '$50',
35-
icon: '🥈',
31+
name: 'Pro Brewer',
32+
price: '$10',
33+
icon: '🚀',
3634
gradient: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
3735
popular: true,
3836
benefits: [
39-
'All Casual Brewer benefits',
40-
'Company logo in README',
41-
'Priority issue response',
42-
'Monthly project updates',
43-
'Feature voting rights',
37+
'All Coffee Mate benefits',
38+
'Priority Issue Review for faster responses on issues/PRs',
39+
'Early access to beta/pre-release versions',
4440
],
45-
ctaText: 'Become Silver Partner',
46-
ctaLink: 'https://github.com/sponsors/brewkits',
41+
ctaText: 'Become Pro Brewer',
42+
ctaLink: 'https://www.buymeacoffee.com/brewkits',
4743
},
4844
{
49-
name: 'Gold Partner',
50-
price: '$100+',
51-
icon: '🥇',
52-
gradient: 'linear-gradient(135deg, #ffd700 0%, #ffed4e 100%)',
45+
name: 'Enterprise Sponsor',
46+
price: '$50',
47+
icon: '🏢',
48+
gradient: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
5349
benefits: [
54-
'All Silver Partner benefits',
55-
'Large logo on brewkits.dev',
56-
'Dedicated support channel',
57-
'Custom feature requests',
58-
'SLA guarantee',
59-
'Annual consultation call',
50+
'All Pro Brewer benefits',
51+
'Logo placement on popular repository READMEs',
52+
'Direct support channel',
53+
'Influence on roadmap priorities',
6054
],
61-
ctaText: 'Contact for Gold',
62-
ctaLink: 'mailto:contact@brewkits.dev',
55+
ctaText: 'Become Enterprise Sponsor',
56+
ctaLink: 'https://www.buymeacoffee.com/brewkits',
6357
},
6458
];
6559

@@ -116,8 +110,8 @@ export default function SponsorshipTiers(): ReactNode {
116110
</div>
117111
<div className={styles.tiersFooter}>
118112
<p className={styles.footerNote}>
119-
💼 <strong>Enterprise solutions?</strong> We offer custom licensing and dedicated support for companies.
120-
<a href="mailto:contact@brewkits.dev"> Contact us</a> for a tailored plan.
113+
☕ All memberships are managed through <strong>Buy Me a Coffee</strong>.
114+
Choose a tier that fits your needs and join our community of supporters.
121115
</p>
122116
</div>
123117
</div>

src/pages/sponsors.tsx

Lines changed: 105 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type {ReactNode} from 'react';
22
import Layout from '@theme/Layout';
33
import Heading from '@theme/Heading';
4-
import SponsorshipTiers from '@site/src/components/SponsorshipTiers';
4+
// import SponsorshipTiers from '@site/src/components/SponsorshipTiers';
55
import styles from './sponsors.module.css';
66

77
function SponsorsHeader() {
@@ -12,7 +12,7 @@ function SponsorsHeader() {
1212
Become a Sponsor
1313
</Heading>
1414
<p className={styles.headerSubtitle}>
15-
Help us maintain and improve world-class libraries for Flutter & Kotlin Multiplatform
15+
Brewing Production-Ready Infrastructure for Mobile Developers
1616
</p>
1717
</div>
1818
</header>
@@ -68,25 +68,58 @@ function WhySponsor() {
6868
function OurLibraries() {
6969
const libraries = [
7070
{
71-
name: 'Throttle & Debounce Universal',
71+
name: 'flutter_debounce_throttle',
7272
icon: '🎯',
73-
description: 'The most comprehensive throttle/debounce solution. Prevents thousands of redundant API calls.',
74-
impact: 'Used in production apps with 1M+ users',
73+
description: 'Traffic Control System for your app. Stop double-taps, spam API calls, and button hammering. Zero dependencies, 500+ tests.',
74+
impact: 'Prevents payment duplicates & saves API costs',
7575
gradient: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
76+
link: 'https://github.com/brewkits/flutter_debounce_throttle',
77+
platform: 'Flutter',
7678
},
7779
{
78-
name: 'HTML Viewer Pro',
79-
icon: '🎨',
80-
description: 'Rendering HTML in Flutter is hell. We solved it with the highest-quality solution available.',
81-
impact: 'Handles complex HTML that others break on',
80+
name: 'native_workmanager',
81+
icon: '',
82+
description: 'Background tasks without Flutter Engine. Native Workers save 90% RAM. Perfect for sync, downloads, and file processing.',
83+
impact: 'Survives app kills, reboots & force-quits',
8284
gradient: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
85+
link: 'https://github.com/brewkits/native_workmanager',
86+
platform: 'Flutter',
8387
},
8488
{
85-
name: 'KMP WorkManager',
86-
icon: '️',
87-
description: 'Best-in-class background task manager for Kotlin Multiplatform. One code, works everywhere.',
88-
impact: 'Unified background jobs for Android & iOS',
89+
name: 'Grant',
90+
icon: '🛡️',
91+
description: 'Headless Permission Manager for KMP. Fixes Android Dead Clicks, validates iOS Info.plist, no Fragment/Activity needed.',
92+
impact: 'Works in ViewModels & Composables',
8993
gradient: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
94+
link: 'https://github.com/brewkits/Grant',
95+
platform: 'KMP',
96+
},
97+
{
98+
name: 'kmpworkmanager',
99+
icon: '⚙️',
100+
description: 'Unified API for background tasks on Android & iOS. One codebase for WorkManager + BGTaskScheduler. Task Chains included.',
101+
impact: '60-86% faster HTTP operations',
102+
gradient: 'linear-gradient(135deg, #ffd700 0%, #ffed4e 100%)',
103+
link: 'https://github.com/brewkits/kmpworkmanager',
104+
platform: 'KMP',
105+
},
106+
{
107+
name: 'KRelay',
108+
icon: '🔗',
109+
description: 'Type-safe bridge from shared KMP code to native platforms. Dispatch UI commands without memory leaks or lost events.',
110+
impact: 'Perfect for Toast, Navigation, Permissions',
111+
gradient: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)',
112+
link: 'https://github.com/brewkits/KRelay',
113+
platform: 'KMP',
114+
},
115+
{
116+
name: 'dart_debounce_throttle',
117+
icon: '🎲',
118+
description: 'Pure Dart traffic control for servers, CLI tools, and backend services. Same power as Flutter version, zero UI dependencies.',
119+
impact: 'Rate limiting for Dart Frog & Shelf servers',
120+
gradient: 'linear-gradient(135deg, #a8edea 0%, #fed6e3 100%)',
121+
link: 'https://github.com/brewkits/flutter_debounce_throttle',
122+
platform: 'Dart',
90123
},
91124
];
92125

@@ -102,16 +135,30 @@ function OurLibraries() {
102135
<div className="row">
103136
{libraries.map((lib, idx) => (
104137
<div key={idx} className="col col--4" style={{marginBottom: '2rem'}}>
105-
<div className={styles.libraryCard}>
106-
<div className={styles.libraryIcon} style={{background: lib.gradient}}>
107-
{lib.icon}
108-
</div>
109-
<Heading as="h3" className={styles.libraryName}>{lib.name}</Heading>
110-
<p className={styles.libraryDescription}>{lib.description}</p>
111-
<div className={styles.libraryImpact}>
112-
<span className={styles.impactBadge}>💪 {lib.impact}</span>
138+
<a href={lib.link} target="_blank" rel="noopener noreferrer" style={{textDecoration: 'none', color: 'inherit'}}>
139+
<div className={styles.libraryCard}>
140+
<div style={{display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start', marginBottom: '0.5rem'}}>
141+
<div className={styles.libraryIcon} style={{background: lib.gradient}}>
142+
{lib.icon}
143+
</div>
144+
<span style={{
145+
fontSize: '0.75rem',
146+
padding: '0.25rem 0.5rem',
147+
borderRadius: '4px',
148+
background: 'var(--ifm-color-primary-lightest)',
149+
color: 'var(--ifm-color-primary-darkest)',
150+
fontWeight: 600
151+
}}>
152+
{lib.platform}
153+
</span>
154+
</div>
155+
<Heading as="h3" className={styles.libraryName}>{lib.name}</Heading>
156+
<p className={styles.libraryDescription}>{lib.description}</p>
157+
<div className={styles.libraryImpact}>
158+
<span className={styles.impactBadge}>💪 {lib.impact}</span>
159+
</div>
113160
</div>
114-
</div>
161+
</a>
115162
</div>
116163
))}
117164
</div>
@@ -128,14 +175,46 @@ function CurrentSponsors() {
128175
Our Amazing Sponsors
129176
</Heading>
130177
<p className={styles.sectionSubtitle}>
131-
Thank you to these individuals and companies who believe in our mission
178+
Thank you to everyone who supports BrewKits
132179
</p>
133180
<div className={styles.sponsorsGrid}>
134181
<div className={styles.sponsorPlaceholder}>
135182
<div className={styles.placeholderIcon}>🚀</div>
136183
<p className={styles.placeholderText}>Be the first sponsor!</p>
137-
<p className={styles.placeholderSubtext}>Your name or logo could be here</p>
184+
<p className={styles.placeholderSubtext}>Join us in building better mobile infrastructure</p>
185+
</div>
186+
</div>
187+
</div>
188+
</section>
189+
);
190+
}
191+
192+
function SupportCTA() {
193+
return (
194+
<section className={styles.supportCTA}>
195+
<div className="container">
196+
<div className={styles.ctaContent}>
197+
<Heading as="h2" className={styles.ctaTitle}>
198+
Support BrewKits Development
199+
</Heading>
200+
<p className={styles.ctaDescription}>
201+
If our libraries save you time and add value to your projects, consider buying me a coffee!
202+
Every contribution helps maintain and improve these tools.
203+
</p>
204+
<div className={styles.ctaButtons}>
205+
<a
206+
href="https://www.buymeacoffee.com/brewkits"
207+
target="_blank"
208+
rel="noopener noreferrer"
209+
className="button button--primary button--lg"
210+
style={{fontSize: '1.2rem', padding: '1rem 2rem'}}
211+
>
212+
☕ Buy Me a Coffee
213+
</a>
138214
</div>
215+
<p className={styles.ctaNote}>
216+
One-time or monthly support - whatever works for you!
217+
</p>
139218
</div>
140219
</div>
141220
</section>
@@ -151,7 +230,8 @@ export default function Sponsors(): ReactNode {
151230
<main>
152231
<WhySponsor />
153232
<OurLibraries />
154-
<SponsorshipTiers />
233+
<SupportCTA />
234+
{/* <SponsorshipTiers /> */}
155235
<CurrentSponsors />
156236
</main>
157237
</Layout>

0 commit comments

Comments
 (0)