Essentials
Everything you need to start shipping.
$99USD, one-time
- Updates upto 1 Year
- All templates included
- Unlimited usage of code & unlimited projects
- Access to Discord community
Pay once, access forever.
Production-ready Jetpack Compose boilerplate
Streamline your Android development with our comprehensive Jetpack Compose Boilerplate. From UI to architecture, we've got you covered. Reduce boilerplate code and bring your app to market sooner.
OnboardingScreen.kt
@Composablefun OnboardingScreen(onFinished: () -> Unit) { val pagerState = rememberPagerState { pages.size } Column( modifier = Modifier.fillMaxSize().padding(24.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { HorizontalPager(pagerState, Modifier.weight(1f)) { OnboardingPage(pages[it]) } PagerIndicator(pagerState) AppButton( text = "Continue", onClick = onFinished, ) }} @Preview@Composableprivate fun OnboardingPreview() = AppTheme { OnboardingScreen(onFinished = {})}@Preview OnboardingPreview
Ship your idea faster
Everything you need to launch is already set up for you.
Inside the project
Feature modules, a themable design system and shared build logic are wired together from the first commit, so your first change is a feature, not configuration.
compose101 — Android Studio
feature/onboarding/build.gradle.kts
plugins { // All Android, Compose and lint setup lives in build-logic alias(libs.plugins.compose101.android.feature) alias(libs.plugins.compose101.android.compose)} android { namespace = "com.compose101.feature.onboarding"} dependencies { implementation(projects.core.designsystem) implementation(projects.core.network)}feature/onboarding/OnboardingScreen.kt
@Composablefun OnboardingScreen( pages: List<OnboardingPage>, onFinished: () -> Unit, modifier: Modifier = Modifier,) { val pagerState = rememberPagerState { pages.size } val scope = rememberCoroutineScope() Column(modifier.fillMaxSize()) { HorizontalPager(state = pagerState, modifier = Modifier.weight(1f)) { OnboardingPageContent(pages[it]) } AppButton( text = stringResource(R.string.onboarding_continue), onClick = { if (pagerState.isLastPage) onFinished() else scope.launch { pagerState.animateScrollToNextPage() } }, ) }}core/designsystem/Theme.kt
// Swap these tokens for your brand and every screen followsprivate val LightColors = lightColorScheme( primary = Color(0xFF1E9E71), secondary = Color(0xFF137F64), surface = Color(0xFFF7FAF8),) @Composablefun AppTheme( darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit,) { MaterialTheme( colorScheme = if (darkTheme) DarkColors else LightColors, typography = AppTypography, shapes = AppShapes, content = content, )}Features
Don't waste time reinventing the wheel. With our Jetpack Compose boilerplate, you'll have a solid foundation to build upon, allowing you to focus on creating the features that make your app unique.
Onboarding is the initial interaction users have with your app. It's the first impression they form, and it's an opportunity to showcase the app's strengths while also gathering valuable insights.
Quickly integrate authentication into your app with our streamlined solution. We manage the user interface, security, and user management, allowing you to focus on perfecting your app's core features.
Sending notifications at the right time can maximize the impact on user retention and activity. Maximize your app's potential by delivering timely, personalized notifications directly to your users' devices.
Expand your reach and cater to users worldwide with our powerful language and per app localization feature.
Easily integrate your design system into the boilerplate by updating just a few lines of code.
Monetize your app with preconfigured integration using RevenueCat.
Apps often struggle to scale due to inconsistent coding practices and lint rule issues. This boilerplate provides lint rules for Kotlin and Jetpack Compose and a robust architecture, helping you scale your app smoothly and efficiently.
Architecture
A feature-based, multi-module architecture with custom Gradle convention plugins. The structure you would set up for a long-lived app, already in place.
Thin shell: navigation graph, DI entry point, app theme.
:app
Wires feature modules together
One module per product feature. Features never depend on each other.
:feature:onboarding
First-run flow
:feature:auth
Sign-in & user management
:feature:paywall
RevenueCat offerings
:feature:settings
Per-app language & preferences
Shared building blocks every feature can reach for.
:core:designsystem
Tokens, theme, components
:core:network
Retrofit + Apollo clients
:core:notifications
Channels & delivery
Custom Gradle convention plugins keep every module's setup to a few lines.
:build-logic:convention
Shared Gradle config
Stack
No proprietary framework to learn. Compose101 is idiomatic Kotlin and Jetpack Compose, pre-wired with the libraries you would have picked anyway.
Language
Kotlin
UI toolkit
Jetpack Compose
Build logic
Gradle convention plugins
Architecture
Multi-module
REST
Retrofit
GraphQL
Apollo Kotlin
Monetization
RevenueCat
Code quality
Kotlin & Compose lint rules
i18n
Per-app localization
Engagement
Push notifications
How it works
Pick a plan and send us a request. Our team will reach out with your access.
Essentials or Ultimate
Set your app's name and swap in your design tokens. The architecture is already in place.
core/designsystem/Theme.kt
Skip the repetitive setup and spend your first day on what makes your app unique.
./gradlew assembleDebug
Pricing
Don't waste time reinventing the wheel, invest in what matters the most. One-time payment, no subscription.
Everything you need to start shipping.
$99USD, one-time
Pay once, access forever.
For teams that want to stay current, forever.
$129USD, one-time
Pay once, access forever.
| Feature | Essentials | Ultimate |
|---|---|---|
| Updates | Up to 1 year | Lifetime |
| All templates included | ||
| Unlimited usage & unlimited projects | ||
| Discord community | ||
| On-demand live support via Discord | ||
| Prioritized feature requests |
FAQ
Have more questions? Don't hesitate to reach out to our support team.
While our boilerplate incorporates advanced features, it's designed to be accessible for developers at all levels. Beginners can use it as a learning tool to understand best practices, while experienced developers can leverage its advanced features to accelerate their workflow.
On average, developers report saving over 90 hours on initial project setup and configuration. This allows you to focus on building your app's unique features rather than spending time on boilerplate code and setup.
Absolutely! Our boilerplate comes pre-configured with Retrofit for REST API integration and Apollo for GraphQL support, giving you the flexibility to choose the best approach for your project.
Yes, you can use this boilerplate for both personal and commercial projects. Please refer to our license agreement for specific terms and conditions.
Yes, we provide comprehensive documentation to help you get started!
This boilerplate comes with feature-based, multi-module architecture with custom gradle conventions plugins.
Save time and focus on innovation rather than setup. One payment, unlimited projects.