11import type { ReactNode } from 'react' ;
22import Layout from '@theme/Layout' ;
33import Heading from '@theme/Heading' ;
4- import SponsorshipTiers from '@site/src/components/SponsorshipTiers' ;
4+ // import SponsorshipTiers from '@site/src/components/SponsorshipTiers';
55import styles from './sponsors.module.css' ;
66
77function 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() {
6868function 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