A Flask toolbox for rapidly building SaaS applications.
Project description
Flask-SaaSify
Provides a simple way to create a SaaS application with Python and Flask. It includes the most common features of a SaaS company, such as sign-up, login, payments, and more.
Features
- Single, fully documented
.envconfig - Bootstrap 5 and Bootstrap Icons
- SEO and meta tags
- Server Side Analytics
- Response times
- Sign-up and login
- Magic links
Planned features
- Progressive Web App
- Blog
- Markdown
- Comments
- Admin panel
- Manage users
- View analytics
- Sign-up and login
- Social login (Google, Facebook, X, GitHub)
- Payments
- Subscriptions
- Stripe Checkout API
- Webhooks to update subscription status
- Pricing page
- Email
- SendGrid?
- E-mail templates
- Drip campaigns
- Landing pages
- Landing page
- Waitlist
- Affiliate program page
Tech stack
- Docker
- Python
- Flask/SQLAlchemy
- SQLite
Example
In your .env file:
# Flask
SECRET_KEY=
EXTERNAL_BASE_URL=http://127.0.0.1:5000
ADMINS=youremail@domain.com
# Database locations
DATABASE_URI=sqlite:///database.sqlite
# Default meta title for pages; keep concise for clarity and SEO
META_DEFAULT_TITLE=
# Meta description: Aim for 155-160 characters to provide a concise summary of the page's content
META_DEFAULT_DESCRIPTION=
# Meta keywords: List a few relevant keywords. Note: Most search engines ignore this tag due to past overuse
META_DEFAULT_KEYWORDS=
# Open Graph (Facebook) default type (e.g., website, article); specifies the type of content
META_OG_DEFAULT_TYPE=
# OG title: Aim for 60-90 characters to ensure it displays well on social platforms
META_OG_DEFAULT_TITLE=
# OG description: Keep under 200 characters for optimal display on social media
META_OG_DEFAULT_DESCRIPTION=
# OG image: Use high-quality images, at least 1200 x 630 pixels for best display on high-resolution devices
META_OG_DEFAULT_IMAGE=
# Twitter card type (e.g., summary, summary_large_image); defines the style of card displayed
META_TWITTER_DEFAULT_CARD=
# Twitter title: Keep concise, similar to OG title, for clarity and impact
META_TWITTER_DEFAULT_TITLE=
# Twitter description: Aim for less than 200 characters, focusing on engaging and concise summary
META_TWITTER_DEFAULT_DESCRIPTION=
# Twitter image: Optimal resolution is similar to OG image, with a minimum of 600 x 335 pixels for best display
META_TWITTER_DEFAULT_IMAGE=
from flask import Flask
from flask_saasify import Saasify, login_required
app = Flask(__name__)
saasify = Saasify(app)
@app.route('/public')
def index():
return 'Hello, World!'
@app.route('/private')
@login_required
def protected():
return 'You are logged in!'
if __name__ == '__main__':
app.run()
License
AGPL-3.0, need a different license? Please e-mail me.
Publish to PyPi
python3 setup.py sdist bdist_wheel
twine upload dist/*
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file Flask-SaaSify-0.0.5.tar.gz.
File metadata
- Download URL: Flask-SaaSify-0.0.5.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f942e98d71b890ab0deb494ea97e55f0252ce8c9c72bcd8742172348c15450c
|
|
| MD5 |
2ce63afdcd11c184cdf340b75366e70f
|
|
| BLAKE2b-256 |
42dfcfe950aa01c8f776b57df92aefeed4b368855b13b915c0e878f46415681c
|
File details
Details for the file Flask_SaaSify-0.0.5-py3-none-any.whl.
File metadata
- Download URL: Flask_SaaSify-0.0.5-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc4d7e2343902ba01a64cf2dcbb9e6094eff7ea1c92caf9c5ce540d702f2503e
|
|
| MD5 |
e14dbe1e319265b7e936c9eaa2f67010
|
|
| BLAKE2b-256 |
6bde99f28f8dc099649dc6373460fe334a037a8375eb184dd131c9c629c9804f
|