Skip to main content

🔥 DevForge

Universal project scaffolder for modern frameworks

DevForge is a powerful CLI tool that scaffolds production-ready projects with feature-based architecture for React, FastAPI, Flutter, and more. Built with extensibility in mind, adding new frameworks is as simple as creating a single file.

✨ Features

  • 🎯 Feature-Based Architecture: Organizes code by features, not file types
  • 🔌 Highly Extensible: Add new frameworks in minutes
  • 🎨 Best Practices: Follows industry standards for each framework
  • 🚀 Zero Configuration: Works out of the box
  • 💡 Interactive CLI: Friendly prompts guide you through setup
  • 📦 Multiple Frameworks: React, FastAPI, Flutter (and growing!)

🚀 Quick Start

Installation

pip install -e .

Create a New Project

# React project with TypeScript
devforge init --react

# FastAPI backend
devforge init --fastapi

# Flutter mobile app
devforge init --flutter

📋 Available Commands

devforge init --<framework>

Create a new project for the specified framework

Options:

  • --react: Create a React + Vite project
  • --fastapi: Create a FastAPI backend project
  • --flutter: Create a Flutter mobile app

devforge list

Show all available frameworks

devforge version

Display DevForge version

🎯 Supported Frameworks

Framework Command Description
⚛️ React --react Vite + React with feature-based architecture
🐍 FastAPI --fastapi FastAPI backend with modular features
💙 Flutter --flutter Flutter with Clean Architecture

🏗️ Project Structure

React Projects

project-name/
├── src/
│   └── features/
│       ├── auth/
│       │   ├── components/
│       │   ├── hooks/
│       │   ├── pages/
│       │   ├── services/
│       │   ├── utils/
│       │   └── types/         # TypeScript only
│       └── [feature-name]/
│           └── ...
├── package.json
└── vite.config.js

FastAPI Projects

project-name/
├── app/
│   ├── main.py
│   └── features/
│       ├── auth/
│       │   ├── models/
│       │   ├── services/
│       │   └── routers/
│       └── [feature-name]/
│           └── ...
└── requirements.txt

Flutter Projects

project-name/
├── lib/
│   ├── main.dart
│   └── features/
│       ├── auth/
│       │   ├── domain/         # Business logic
│       │   ├── data/           # Data sources
│       │   └── presentation/   # UI components
│       │       ├── screens/
│       │       └── widgets/
│       └── [feature-name]/
│           └── ...
└── pubspec.yaml

🎨 Usage Examples

Creating a React Project

$ devforge init --react
🧱 Project name: my-awesome-app
Use TypeScript? (y/n) [y]: y
Enter features (comma separated) [core]: auth,profile,dashboard

⚙️  Creating Vite project...
✅ React project 'my-awesome-app' forged successfully!

📦 Next steps:
   cd my-awesome-app
   npm install
   npm run dev

Creating a FastAPI Project

$ devforge init --fastapi
🧱 Project name: my-api
Enter features (comma separated) [core]: auth,users,posts

✅ FastAPI project 'my-api' forged successfully!

📦 Next steps:
   cd my-api
   pip install -r requirements.txt
   uvicorn app.main:app --reload

Creating a Flutter Project

$ devforge init --flutter
🧱 Project name: my_flutter_app
Enter features (comma separated) [core]: auth,profile,settings

⚙️  Creating Flutter project...
✅ Flutter project 'my_flutter_app' forged successfully!

📦 Next steps:
   cd my_flutter_app
   flutter pub get
   flutter run

🔧 Requirements

For All Projects

  • Python 3.8 or higher
  • pip

Framework-Specific Requirements

React:

FastAPI:

  • No additional requirements (Python only)

Flutter:

🧩 Extending DevForge

DevForge is designed to be easily extensible. See ARCHITECTURE.md for detailed documentation on adding new frameworks.

Quick Overview:

  1. Create a scaffolder in devforge/scaffolders/your_framework.py
  2. Extend FrameworkScaffolder base class
  3. Register it in scaffolders/__init__.py
  4. Add CLI option in cli.py

That's it! Your new framework is ready to use.

Example minimal scaffolder:

from .base import FrameworkScaffolder

class MyFrameworkScaffolder(FrameworkScaffolder):
    def get_framework_name(self) -> str:
        return "MyFramework"
    
    def get_emoji(self) -> str:
        return "🎯"
    
    def prompt_user(self) -> Dict[str, any]:
        # Prompt for configuration
        pass
    
    def create_base_project(self, config: Dict) -> Optional[Path]:
        # Create project structure
        pass
    
    def create_feature_structure(self, project_path: Path, 
                                features: List[str], 
                                config: Dict) -> None:
        # Create feature folders
        pass

🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. Add New Frameworks: Create scaffolders for other popular frameworks
  2. Improve Existing Scaffolders: Enhance templates and structure
  3. Fix Bugs: Report and fix issues
  4. Documentation: Improve docs and examples

📚 Documentation

🐛 Troubleshooting

Command Not Found

If you get "command not found" after installation, make sure Python's Scripts directory is in your PATH:

Windows:

C:\Users\<username>\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.x\LocalCache\local-packages\Python3xx\Scripts

Linux/Mac:

export PATH="$HOME/.local/bin:$PATH"

npm/flutter Not Found

DevForge checks for required tools before scaffolding. If you see errors about missing tools:

  1. Install the required tool (Node.js, Flutter, etc.)
  2. Restart your terminal
  3. Try the command again

📄 License

MIT License - feel free to use this in your own projects!

👨‍💻 Author

Isaka Mtweve

🌟 Show Your Support

If you find DevForge helpful, consider:

  • ⭐ Starring the repository
  • 🐛 Reporting bugs
  • 💡 Suggesting new features
  • 🤝 Contributing code

Happy Forging! 🔥

Metadata

Release files for devforge-cli 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for devforge-cli 1.0.1
File Size Uploaded
devforge_cli-1.0.1.tar.gz 37.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for devforge-cli 1.0.1
File Interpreter ABI Platform
devforge_cli-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 67.8 kB

Release files / devforge_cli-1.0.1.tar.gz

Download URL devforge_cli-1.0.1.tar.gz
Size 37.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c69f3b57eb89fc1c241cfcbc09f5ca558b863d93de35be870a4f1f7bbc80a0b4
BLAKE2b-256 checksum
How to use checksums
db3bdf36ca0b55f5527f87c8a103c87293441d67cc1bd3f72a5be42ad1552f5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / devforge_cli-1.0.1-py3-none-any.whl

Download URL devforge_cli-1.0.1-py3-none-any.whl
Size 30.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df48af98c4426cb3077526786c9510ae37dae7fd5911a0c987b76fa8466e9c3e
BLAKE2b-256 checksum
How to use checksums
2a1673e8e48cfdf1af0e36536e4fca5194f0d45d69ee2eedaa9d85088381101d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page