Ship every app faster to your users — Build, package, and publish with one clear configuration. Target popular distribution formats and app stores while fitting naturally into your CI/CD pipeline.
See the codeShip every app faster to your users — Build, package, and publish with one clear configuration. Target popular distribution formats and app stores while fitting naturally into your CI/CD pipeline.
[!WARNING] Rust Migration In Progress: The core of Fastforge is being rewritten in Rust to deliver better performance, a smaller install footprint, and zero runtime dependencies on the Dart SDK. The native CLI lives in
apps/cli/with its core libraries incrates/, and is developed in parallel with the existing Dart packages.What this means for you:
- The current Dart-based CLI (
dart pub global activate fastforge) continues to work and receives bug fixes.- The Rust CLI is released as a native binary — no Dart or Flutter SDK required to run it. See the installation guide.
- APIs and configuration formats are designed to remain compatible; any breaking changes will be clearly announced.
distribute_options.yamland thereleasecommand are deprecated: they keep working for compatibility but get no new features. New configuration goes in.fastforge/(project) or~/.fastforge/(machine), and new automation in local workflows.- Contributions, feedback, and bug reports on the Rust implementation are very welcome — see the Contributing section.
English | 简体中文
direct (the unpacked build output) on Linux, Windows and WebThe native CLI installs as a standalone binary; see the installation guide. The Dart CLI installs with:
dart pub global activate fastforge
Windows users: After activation, ensure the pub cache bin directory is in your PATH:
- Open System Properties → Advanced → Environment Variables
- Under User variables, select
Path→ Edit- Add
%APPDATA%\Pub\Cache\binand click OK- Restart your terminal, then try
fastforge --help
Note: This quick start uses the deprecated
distribute_options.yamlandreleasecommand, which still work in both CLIs. For new projects, see Getting Started and local workflows.
distribute_options.yaml to your project root:variables:
PGYER_API_KEY: "your api key" # Replace with your own API keys
output: dist/
releases:
- name: dev
jobs:
# Build and publish APK to PGYER
- name: release-dev-android
package:
platform: android
target: apk
build_args:
target-platform: android-arm,android-arm64
dart-define:
APP_ENV: dev
publish_to: pgyer
# Build and publish IPA to PGYER
- name: release-dev-ios
package:
platform: ios
target: ipa
build_args:
export-options-plist: ios/dev_ExportOptions.plist
dart-define:
APP_ENV: dev
publish_to: pgyer
Note:
build_argsare parameters supported by theflutter buildcommand. Modify them according to your project requirements.
fastforge release --name dev
fastforge package --platform=android --targets=aab,apk
fastforge publish --path dist/your-app-1.0.0+1-android.apk --targets pgyer
fastforge release --name dev
Fastforge includes several example projects to help you get started:
Fastforge supports using environment variables in your configuration files. This is useful for sensitive information like API keys:
variables:
API_KEY: ${PGYER_API_KEY} # Uses the PGYER_API_KEY environment variable
Fastforge works well in CI/CD environments. For example, with GitHub Actions:
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
- name: Install Fastforge
run: dart pub global activate fastforge
- name: Build and release
run: fastforge release --name production
env:
API_KEY: ${{ secrets.API_KEY }}
Check the documentation for more detailed CI/CD integration examples.
Development and CI use Flutter 3.47.6 stable and its bundled Dart 3.13.5 SDK.
Add the Flutter SDK's bin directory to PATH and run flutter and dart
directly. The CI version is configured in ci.yml.
See AGENTS.md for repository setup and validation commands.
Contributions are welcome! If you'd like to help improve Fastforge:
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)Please make sure to update tests as appropriate and follow the existing code style.
The Studio web client, local server, and shared packages live in this repository under the studio- package prefix. See the Studio development guide for setup and checks.
Agent skills that teach Claude and other Agent-Skills-compatible harnesses how to use fastforge live in skills/. Install them with npx skills add fastforgedev/fastforge; see the skills guide for details.
1,087 followers · starred Oct 2024
90 followers · starred Jun 2022
148 followers · starred Dec 2025
87 followers · starred Nov 2025
Ship every app faster to your users — Build, package, and publish with one clear configuration. Target popular distribution formats and app stores while fitting naturally into your CI/CD pipeline.
See the codeShip every app faster to your users — Build, package, and publish with one clear configuration. Target popular distribution formats and app stores while fitting naturally into your CI/CD pipeline.
[!WARNING] Rust Migration In Progress: The core of Fastforge is being rewritten in Rust to deliver better performance, a smaller install footprint, and zero runtime dependencies on the Dart SDK. The native CLI lives in
apps/cli/with its core libraries incrates/, and is developed in parallel with the existing Dart packages.What this means for you:
- The current Dart-based CLI (
dart pub global activate fastforge) continues to work and receives bug fixes.- The Rust CLI is released as a native binary — no Dart or Flutter SDK required to run it. See the installation guide.
- APIs and configuration formats are designed to remain compatible; any breaking changes will be clearly announced.
distribute_options.yamland thereleasecommand are deprecated: they keep working for compatibility but get no new features. New configuration goes in.fastforge/(project) or~/.fastforge/(machine), and new automation in local workflows.- Contributions, feedback, and bug reports on the Rust implementation are very welcome — see the Contributing section.
English | 简体中文
direct (the unpacked build output) on Linux, Windows and WebThe native CLI installs as a standalone binary; see the installation guide. The Dart CLI installs with:
dart pub global activate fastforge
Windows users: After activation, ensure the pub cache bin directory is in your PATH:
- Open System Properties → Advanced → Environment Variables
- Under User variables, select
Path→ Edit- Add
%APPDATA%\Pub\Cache\binand click OK- Restart your terminal, then try
fastforge --help
Note: This quick start uses the deprecated
distribute_options.yamlandreleasecommand, which still work in both CLIs. For new projects, see Getting Started and local workflows.
distribute_options.yaml to your project root:variables:
PGYER_API_KEY: "your api key" # Replace with your own API keys
output: dist/
releases:
- name: dev
jobs:
# Build and publish APK to PGYER
- name: release-dev-android
package:
platform: android
target: apk
build_args:
target-platform: android-arm,android-arm64
dart-define:
APP_ENV: dev
publish_to: pgyer
# Build and publish IPA to PGYER
- name: release-dev-ios
package:
platform: ios
target: ipa
build_args:
export-options-plist: ios/dev_ExportOptions.plist
dart-define:
APP_ENV: dev
publish_to: pgyer
Note:
build_argsare parameters supported by theflutter buildcommand. Modify them according to your project requirements.
fastforge release --name dev
fastforge package --platform=android --targets=aab,apk
fastforge publish --path dist/your-app-1.0.0+1-android.apk --targets pgyer
fastforge release --name dev
Fastforge includes several example projects to help you get started:
Fastforge supports using environment variables in your configuration files. This is useful for sensitive information like API keys:
variables:
API_KEY: ${PGYER_API_KEY} # Uses the PGYER_API_KEY environment variable
Fastforge works well in CI/CD environments. For example, with GitHub Actions:
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
- name: Install Fastforge
run: dart pub global activate fastforge
- name: Build and release
run: fastforge release --name production
env:
API_KEY: ${{ secrets.API_KEY }}
Check the documentation for more detailed CI/CD integration examples.
Development and CI use Flutter 3.47.6 stable and its bundled Dart 3.13.5 SDK.
Add the Flutter SDK's bin directory to PATH and run flutter and dart
directly. The CI version is configured in ci.yml.
See AGENTS.md for repository setup and validation commands.
Contributions are welcome! If you'd like to help improve Fastforge:
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)Please make sure to update tests as appropriate and follow the existing code style.
The Studio web client, local server, and shared packages live in this repository under the studio- package prefix. See the Studio development guide for setup and checks.
Agent skills that teach Claude and other Agent-Skills-compatible harnesses how to use fastforge live in skills/. Install them with npx skills add fastforgedev/fastforge; see the skills guide for details.
1,087 followers · starred Oct 2024
90 followers · starred Jun 2022
148 followers · starred Dec 2025
87 followers · starred Nov 2025