Scaffold UI
Fastest way to add authentication or in-app purchases to your Nylo Flutter application.
Overview
Scaffold UI is a powerful CLI tool that helps Flutter developers quickly integrate common UI patterns into their Nylo projects. Instead of spending hours building authentication flows or in-app purchase screens from scratch, you can have a complete, customizable implementation in minutes.
Features
🔐 Authentication UI
Generate a complete authentication flow with a single command:
dart run scaffold_ui:main auth
Choose from three authentication backends:
- Supabase - Full authentication service with ready-to-use UI components
- Laravel - Complete integration with Laravel Sanctum, including API services
- Firebase - Integration with Firebase Auth and Firestore with ready-to-use UI components
- Basic - Clean authentication UI templates for custom implementation
💳 In-App Purchases (iOS & Android)
Add subscription flows and paywalls with:
dart run scaffold_ui:main iap
Currently supports:
- RevenueCat - Complete integration with SDK and pre-built UI components for subscription management
IOS Prerequisites
- Open the
ios/Runner.xcworkspace
file in Xcode - Signing & Capabilities > Add the
In-App Purchase
capability
Installation
Add scaffold_ui to your Flutter project:
dart pub add scaffold_ui
This will add the following to your pubspec.yaml:
dependencies:
scaffold_ui: ^1.2.6
Setup Guides
Supabase Authentication
- Create a Supabase account and project at supabase.com
- Run the auth scaffold command:
dart run scaffold_ui:main auth
- Select
supabase
when prompted - Enter your Supabase URL and Anon Key
- The tool will automatically:
- Configure Supabase authentication
- Generate UI components
- Set up necessary services
Laravel Authentication
Prerequisites:
- A Laravel project with Sanctum configured
- Your User model must use the
HasApiTokens
trait
-
Install the Laravel package:
composer require nylo/laravel-nylo-auth
-
Publish the package assets:
php artisan vendor:publish --provider="Nylo\LaravelNyloAuth\LaravelNyloAuthServiceProvider"
-
Run the auth scaffold command:
dart run scaffold_ui:main auth
-
Select
laravel
and enter your project URL -
For additional Laravel configuration options, visit the laravel-nylo-auth repository
Firebase Authentication
- Create a Firebase account and project at firebase.google.com
- Run the auth scaffold command:
dart run scaffold_ui:main auth
- Select
firebase
when prompted - This will:
- Install the Firebase SDK
- Generate UI components
- Set up necessary services
- Install
flutterfire
via https://firebase.google.com/docs/flutter/setup - Run
flutterfire configure
to complete the setup
Basic Authentication
For custom authentication implementations:
- Run
dart run scaffold_ui:main auth
- Select
basic
- The tool will generate UI components that you can customize with your authentication logic
Changelog
See CHANGELOG for recent changes.
License
This project is licensed under the MIT License - see the License file for details.
Libraries
- cli_dialog/cli_dialog
- cli_dialog/src/dialog
- cli_dialog/src/keys
- cli_dialog/src/list_chooser
- cli_dialog/src/services
- cli_dialog/src/stdin_service
- cli_dialog/src/stdout_service
- cli_dialog/src/xterm
- models/ny_laravel_slate_config
- models/ny_revenuecat_slate_config
- models/ny_supabase_slate_config
- scaffold_ui
- stubs/basic/basic_dashboard_stub
- stubs/basic/basic_forgot_password_controller_stub
- stubs/basic/basic_login_controller_stub
- stubs/basic/basic_register_controller_stub
- stubs/firebase/firebase_dashboard_stub
- stubs/firebase/firebase_forgot_password_controller_stub
- stubs/firebase/firebase_login_controller_stub
- stubs/firebase/firebase_logout_event_stub
- stubs/firebase/firebase_provider_stub
- stubs/firebase/firebase_register_controller_stub
- stubs/firebase/firebase_register_page_stub
- stubs/firebase/firebase_user_model_stub
- stubs/forgot_password_page_stub
- stubs/iap/revenuecat/paywall_page_stub
- stubs/iap/revenuecat/revenue_cat_provider_stub
- stubs/landing_stub
- stubs/laravel/laravel_api_service
- stubs/laravel/laravel_auth_api_serivce_stub
- stubs/laravel/laravel_auth_event_stub
- stubs/laravel/laravel_auth_response
- stubs/laravel/laravel_dashboard_stub
- stubs/laravel/laravel_forgot_password_controller_stub
- stubs/laravel/laravel_login_controller_stub
- stubs/laravel/laravel_register_controller_stub
- stubs/laravel/laravel_user_model_stub
- stubs/login_form
- stubs/login_page_stub
- stubs/register_form
- stubs/register_page_stub
- stubs/supabase/supabase_dashboard_stub
- stubs/supabase/supabase_forgot_password_controller_stub
- stubs/supabase/supabase_login_controller_stub
- stubs/supabase/supabase_logout_event_stub
- stubs/supabase/supabase_provider_stub
- stubs/supabase/supabase_register_controller_stub
- stubs/supabase/supabase_register_page_stub