Skip to main content

Soseki

A lightweight, batteries-included Flask framework designed for rapidly building internal tools, admin panels, and data-driven web applications.

Soseki takes care of the repetitive infrastructure—authentication, database management, background jobs, API controls, and logging—so you can focus on building the features that matter. Perfect for prototypes, internal dashboards, and production-ready utilities that need to ship fast without sacrificing structure.

Features

  • 🔐 User Management - Complete authentication system with Flask-User
  • 📊 Database Management - SQLAlchemy integration with dual database support (app + logs)
  • ⏰ Job Scheduling - Background job execution with APScheduler
  • 📧 Email Support - Built-in email functionality with Flask-Mail
  • 🔌 API Gateway - API key management and rate limiting
  • 📝 Request Logging - Comprehensive request/response logging
  • 🛠️ Database Versioning - Built-in database migration support
  • 🛠️ CLI - interactive command line for quick feature development and testing
  • 🎨 Customizable - YAML-based configuration system

Requirements

  • Python 3.10 or higher
  • Flask 3.0+
  • SQLAlchemy 2.0+

Installation

From PyPI (coming soon)

pip install soseki

From source

git clone https://github.com/acodingmind/soseki
cd soseki
pip install -e .

Development Installation

pip install -r requirements.txt
pip install -r requirements-dev.txt

Quick Start

  1. Initialize a new soseki like application:
# Create a project folder 
mkdir soseki_app
cd soseki_app

# Install soseki
python3 -m venv venv
source venv/bin/activate
pip install soseki

# Initialize basic soseki app
python3 -m ssk.cli init
  1. Update configuration file (cfg/lite.yaml):
ssk:
  USER_APP_NAME:
    string: 'MyApp'
  SECRET_KEY:
    string: 'your-secret-key-here'
  SQLALCHEMY_DATABASE_URI:
    string: 'sqlite:///myapp.sqlite'
  LOG_DB_CONNSTR:
    string: 'sqlite:///myapp_log.sqlite'
  1. Run your application:
# run the app
./bin/run_app.sh

Documentation

How To

Blanco App

Check the app/ directory for a complete working example application.

The standard folder structure (created by init command):

  • assets/local - Static files (CSS, JS)
  • blueprints/ - Flask blueprints
  • cfg/ - Configuration files
  • html/local - Templates
  • logic/cmd - Custom commands
  • logic/jobs - Background jobs
  • models/ - Database models

Project Structure

soseki/
├── ssk/              # Core framework package
├── app/              # Blanco application
├── bin/              # Utility scripts
├── tests/            # Test suite
├── docs/             # Documentation
└── requirements.txt  # Core dependencies

Running Tests

pytest

With coverage:

pytest --cov=ssk

License

MIT License - see LICENCE file for details.

Author

Michał Świtała - CodingMinds.io

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and questions, please use the GitHub issue tracker.

Metadata

Release files for soseki 0.9.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for soseki 0.9.3
File Size Uploaded
soseki-0.9.3.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for soseki 0.9.3
File Interpreter ABI Platform
soseki-0.9.3-py3-none-any.whl Python 3 none any Details

Total release size: 2.2 MB

Release files / soseki-0.9.3.tar.gz

Download URL soseki-0.9.3.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
bf9250efa61ad7e1537be4eefb015585cb30ec81886be9065eea1e9c37e6ab60
BLAKE2b-256 checksum
How to use checksums
2c9f0fab78614ebc7e77af84f5786930884c1dce92ad646ddaf9b9981ed6f734
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / soseki-0.9.3-py3-none-any.whl

Download URL soseki-0.9.3-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6428e69121ea10745a2b4660aea7d4ab84b9d7f9712f913490a5b41039619ffc
BLAKE2b-256 checksum
How to use checksums
18e671e4ac1e461f07d406f713df047ad50df280bf55f5766cc3ecfc9beecd2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.9.3 This release

2 release files

0.9.2

2 release files

0.8.9

2 release files

0.8.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page