Highly modular web framework built for big apps on top of Flask with Django advantages


Keywords
Flask, Django, web, framework, modular, big, first-timers-friendly, fullstack, javascript, module, modules, python, python3, scale, shopyo
License
MIT
Install
pip install shopyo==4.9.3

Documentation


shopyo

Downloads Codecov Tests PyPI version shields.io Documentation Status CII Best Practices OpenSSF Scorecard

Featured on Weekly Python issue 436 🌟

A 45 mins talk was dedicated to it at EuroPython 🌟

Must watch: Shopyo: Your Mega Flask Machine (short vid)

E-commerce modules transferred to ShopCube

[ DOCS | DISCORD | CONTRIBUTE | TWITTER]

What?

Your next-level modular web framework. Get organisation & scalability from day 1.

Built on top of Flask, it offers most Django features, sometimes a tidbit more with far more flexibility.

Why?

Perk
🥏 No learning Does not get into the way, uses common flask-packages. You only need to know Flask.
🏗️ Architecture Never think about architecture of your app, just build & integrate extensions.
🏢 Scalable As your app grows, Shopyo caters for your codebase with powerful features.
🥢 Good practices Testing, docs etc are covered. Don't make those afterthoughts.
🔧 Ease your life We've been there. Awesome utils to ease development.
🪜 Scaffolding Don't waste time writing boilerplate code. We've got you covered.
🖍️ Theming system You need theme in your apps? We integrate a default theme system.

Features

  • ⚛️ i18n setup
  • 🔐 Login & Auth
  • 📧 Email
  • 📦 2-level modularity
  • 🪐 Designed for really BIG apps
  • 🌅 Assets management

Quick start

pip install shopyo==4.9.3
mkdir blog
cd blog
shopyo new -m # add default modules
cd blog
shopyo initialise
shopyo run
pip install shopyo==4.9.3
mkdir blog
cd blog
shopyo new
cd blog
shopyo run

If errors do (linux, use set <VAR> for Windows):

export SHOPYO_CONFIG_PROFILE=development
export FLASK_ENV=development # < flask 2.2.x
export ENV=development
export FLASK_DEBUG=development # < flask 2.2.x
export FLASK_APP=app.py

SHOPYO_CONFIG_PROFILE is what is defined as keys of app_config in config.py

It is recommended to use a venv in root folder.

python -m venv venv

If for dev install dev_requirements.txt also.

python -m pip install -r requirements/dev.txt

go to http://127.0.0.1:5000/dashboard with credentials admin@domain.com / pass

  • Not framework docs but docs for the project you are building.

First time contributing?

We have a 100% first-timers friendly policy. Check out the testimonials.

Thank you! One of the best onboarding experiences I've had. Learned a lot too (Ramon from Codesee.io)

Glimpse

Who uses Shopyo?

site name description
Maurilearn.com Elearning platform
Linkolearn.com Learn By links
FlaskCon.com Conference soft

Big??

Powered by apps / modules. Add as many as you like.

Apps are not enough, organise them in boxes and get the ultimate order you need.

You need a customised Django? This is the project. You need to build an ERP? This is the project.

Linux??

Hackable to the core. Even the dashboard is but a module.

Don't need our modules? Nuke them. Look boring? modify them

Reliable?

We don't maintain middlewares. We rely on battle tested batteries like:

  • flask_sqlalchemy
  • flask_login & co

Heck remove them if you don't want. Want to use Peewee? You can.

Rich Flask API

Common flask patterns are integrated, the structure is over the moon.

Common flask tasks are provided with an API: custom notifications, bulk form errors

Back office feel & Theme

All looks are 100% customisable with themes ~ Backend, bootstrap included by default.

Again blow it up & use what you want. It's possible

Transparent: Code your own web distro

Everything is clear, not hidden. You can 100% customise whatever you want.

We did not hardcode our choices. Our APIS are incremental. You can always use barebones.

Plug & Play

The modules are put by copy paste. No blueprint codes to write.

Contribute

We follow a 100% first-timers friendly policy.

👉 Get started here

👉 Join the Discord, ask questions & learn about Flask tricks during our dev talks!

📚 Docs

👉 Link: shopyo.readthedocs.io/

📞 Contact (inlcuding in case of vulns)

Support team if you are stuck