Welcome to Shopyo ================== **Build Large Flask Apps Without Losing Your Sanity** Shopyo is a modular Flask framework designed for maintainability, extensibility, and real-world scale. Why developers choose Shopyo: * **Modular app architecture** with enforced boundaries * **Built-in admin & authentication** system * **Plugin-based module system** * **Structured project layout** that scales * **Production-ready** foundations .. note:: New to Shopyo? Start here: :doc:`usage` Quick Install ------------- .. code-block:: bash pip install shopyo shopyo new myproject --demo Your Flask app is now running at http://localhost:5000 Real-World Use Cases -------------------- 🏢 **SaaS Applications** Build multi-tenant SaaS with modular features: auth, roles, billing, and more. 🔧 **Internal Enterprise Tools** Organize internal tools with multiple modules and role-based access. 🎓 **Educational Platforms** Course management, student progress, content delivery - modular and scalable. Who Uses Shopyo? ---------------- * `Maurilearn.com`_ - Elearning platform * `Linkolearn.com`_ - Learn by links * `FlaskCon.com`_ - Conference software .. _Maurilearn.com: https://maurilearn.com .. _Linkolearn.com: https://linkolearn.com .. _FlaskCon.com: https://flaskcon.com Get Started ----------- .. toctree:: :maxdepth: 2 :caption: Getting Started usage quickstart .. toctree:: :maxdepth: 2 :caption: Core Concepts architecture modules plugins .. toctree:: :maxdepth: 2 :caption: Tutorials auth_tutorial policy_tutorial polls_tutorial shopyo_theme_tutorial .. toctree:: :maxdepth: 2 :caption: Reference commandline shopyoapi models views templates init assets packages .. toctree:: :maxdepth: 2 :caption: Project Maintenance testing existing .. toctree:: :maxdepth: 2 :caption: Deployment shared_hosting .. toctree:: :maxdepth: 2 :caption: Blog blog/index .. toctree:: :maxdepth: 2 :caption: Community contrib education Docs .. note:: Want to contribute? Check out :doc:`contrib`. We have a 100% first-timers friendly policy! Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`