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.
1,144
stars
582
commits
Rust
primary language
Sep 13, 2026
updated
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.
[!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 new implementation lives in the
crates/directory and is being 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 will be released as a native binary — no Dart or Flutter SDK required to run it.
- APIs and configuration formats are designed to remain compatible; any breaking changes will be clearly announced.
- Contributions, feedback, and bug reports on the Rust implementation are very welcome — see the Contributing section.
English | 简体中文
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
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.
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.
Rust
83.0%
Dart
7.5%
TypeScript
5.6%
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.
1,144
stars
582
commits
Rust
primary language
Sep 13, 2026
updated
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.
[!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 new implementation lives in the
crates/directory and is being 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 will be released as a native binary — no Dart or Flutter SDK required to run it.
- APIs and configuration formats are designed to remain compatible; any breaking changes will be clearly announced.
- Contributions, feedback, and bug reports on the Rust implementation are very welcome — see the Contributing section.
English | 简体中文
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
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.
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.
Rust
83.0%
Dart
7.5%
TypeScript
5.6%