zix - Create your SaaS app quickly by adding plugins!
Project description
zix
FastAPI based web app framework.
Introduction
I wanted to build a web app with frontend, backend, database, login, email services, and paywall very quickly.
Since those are common skeleton for most SaazS apps, I built a plugin framework to build apps quickly.
Prereqs
- Python 3.8 or later is installed
Install
Make and activate a Python environment:
python -m venv venv
source ./venv/bin/activate
pip install -U pip
pip install zixweb
Create an app
zix init -w myapp
cd myapp
pip install -r requirement.txt
pip install -r requirement_dev.txt
requirement.txt contains the modules required for running the app. requirement_dev.txt contains the modules required for developing the app.
The rest of the document assumes your project is in myapp
directory.
Create tables
By default, it will run Sqlite and creates zix.db file in the project root directory.
alembic revision --autogenerate -m "initial models"
alembic upgrade head
Set up env.yml file
From the project root, do:
mkdir .env
cp env.yml .env
Open .env/env.yml at the root project directory.
To use Auth0 login, sign up (should be free) at https://auth0.com
To try the test app,
- Go to Applications from the left menu and select Default App.
- Copy and Domain, Client ID and Client Secret and paste them into env.yml file into the corresponding fields.
- Set Application Type to "Regular Web Application."
- Enter "http://localhost:4000" to Allowed Callback URLs, Allowed Logout URLs, and Allowed Web Origins
- Click Save
Run app
Go to the project root directory and run:
zix -w . -p 4000 -e .env/env.yml serve
Point browser to http://localhost:4000
Frontend and static files
Try modifying myapp/static/compiled/index.html
and run the server again.
Place frontend and static files under myapp/static/compiled
Anything under compiled folder is served under /
as long as the path is not taken by the API endpoints you define.
Vanilla Bootstrap Studio project
Under the myapp directory, you'll find bstudio directory. If you have an active license of Bootstrap Studio, you can open this project.
Go to Export Settings on Bootstrap Studio and set the export path
to myapp/static/compiled
. Then export.
Run the server again. Now you have an (empty) webapp UI.
Add endpoints
Take a look at myapp/plugins/core/routers.py
and myapp/plugins/web/routers.py
.
You can add your service under plugins directory.
Third-party services
In coming release of zix, I'm going to add the complete code to leverage these third-party services:
Auth0 (login)
To be written
Stripe (payment)
To be written
SendGrid (email)
To be written
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file zixweb-0.1.7.tar.gz
.
File metadata
- Download URL: zixweb-0.1.7.tar.gz
- Upload date:
- Size: 207.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6641906962fa9e312eff5310f6edf435cbaecf7751ee40c0f1dd2d804ff06c4a |
|
MD5 | 712011bc62231f86ceca03e36fb1a70a |
|
BLAKE2b-256 | aceb38dfbcec78939bc491fc59de60e6be34ecd94efeaabf0024ba33a3f2563d |
File details
Details for the file zixweb-0.1.7-py3-none-any.whl
.
File metadata
- Download URL: zixweb-0.1.7-py3-none-any.whl
- Upload date:
- Size: 216.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9c23e14bc961f051dede7bb2ba6d1fec80f2b9f0908900de7b0184275861036 |
|
MD5 | f21c7d0479579aa67e70bb18b7f2ca9b |
|
BLAKE2b-256 | 1f4387c386803e65ad566967fd337860cfa3c00e496f65a58b7f9234b47998df |