Skip to content

Conversation

@a6iyyu
Copy link

@a6iyyu a6iyyu commented Dec 7, 2025

Description

This PR introduces an Interactive CLI Wizard to significantly improve the onboarding experience for new users.

Unlike standard scaffolding tools that enforce a single structure, this wizard adopts a Design Engineering approach, allowing developers to choose their stack based on project needs. It reduces "analysis paralysis" for beginners while offering robust tools for advanced users.

Key Features 🚀

  • Interactive Wizard: Built with Typer and Rich for a guided, user-friendly experience.
  • Flexible Architecture:
    • Simple: Flat layout for microservices/prototypes.
    • Advanced: Laravel-style MVC (app/controllers, app/models, views) for scalable apps.
  • Stack Selection:
    • ORM: SQLModel, SQLAlchemy, or None.
    • Linter: Ruff (configured via .ruff.toml), Classic, or None.
    • Frontend: Optional Views support (HTML/CSS/JS + Jinja2).
  • Auto-Configuration:
    • Generates .env with secure defaults.
    • Updates .gitignore automatically.
    • Generates clean requirements.txt (via uv export).

Screenshots 📸

image

Why this approach?

Instead of forcing a heavy structure (like MSSR) by default, this wizard respects the developer's choice. It keeps fastapi-new lightweight for simple tasks but powerful enough for full-stack applications.

Type of change

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update (README updated automatically)

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@github-actions
Copy link
Contributor

This pull request has a merge conflict that needs to be resolved.

@github-actions
Copy link
Contributor

This pull request has a merge conflict that needs to be resolved.

Copy link
Member

@tiangolo tiangolo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! We'll gradually add new features here, one by one, after careful consideration for each one.

It will also be done in independent small PRs.

For now, I'll pass on this. ☕

@tiangolo tiangolo closed this Dec 29, 2025
@a6iyyu a6iyyu deleted the feat/interactive-wizard branch December 29, 2025 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants