Customisable application branding (name, logo, favicon, primary colour) for simple_module apps
Project description
simple_module_branding
Customisable application branding for simple_module_python apps.
An administrator can set the application name, logo, favicon and
primary brand colour from the admin UI (/branding), and those values are
applied everywhere the framework would otherwise show the default identity —
the sidebar/header logo and name, the browser tab title, the favicon, and the
primary accent colour.
Screenshots
The admin page at /branding, and the same app rebranded as "Acme Analytics"
(custom logo + name + primary colour) across the sidebar and dashboard:
| Admin page | Branding applied | Across the app |
|---|---|---|
Install
The module ships with the default app. To add it to a custom host, declare it as a dependency and let entry-point discovery pick it up:
# host/pyproject.toml
dependencies = ["simple_module_branding"]
[tool.uv.sources]
simple_module_branding = { workspace = true }
Then uv sync --all-packages. It requires the Settings and FileStorage
modules to be installed too.
Usage
- Sign in as an admin and open Branding in the sidebar (or visit
/branding). - Set the application name, pick a primary colour, and upload a logo and/or favicon. Changes apply immediately across the app.
Programmatically, the current branding is available on every page through the
branding Inertia shared prop (appName, primaryColor, logoUrl,
faviconUrl).
How it works
- Storage. The four values are persisted via the
settingsmodule's store (SYSTEM scope) — there is no branding database table. They hydrate intoapp.state.branding.settingsat boot and hot-swap on save. - Images. Logo and favicon uploads are stored through the
file_storagemodule (referenced by UUID) and served from its download endpoint. - Delivery. A registered Inertia shared-props provider injects a
brandingblock into every page's shared props (authenticated and guest), which the frontend reads for the name, logo, favicon and colour.
Permissions
branding.view— view the branding admin page.branding.manage— change branding (name, colour, logo, favicon).
Dependencies
Depends on the Settings and FileStorage modules.
Notes
- Branding is currently SYSTEM-scoped (one identity per deployment). The settings store already supports tenant/user scope, leaving room for per-tenant branding later.
- The primary colour overrides the
--primary/--sidebar-primaryCSS variables from a single hex; the full OKLCH colour scale is not regenerated.
License: MIT
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
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 simple_module_branding-0.0.24.tar.gz.
File metadata
- Download URL: simple_module_branding-0.0.24.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a46f61554bda0ee3ee8b7cb7b60789b95b105f2c0c7c2cb7363811184a46163
|
|
| MD5 |
a1e3c029b0e191835b28783b699c4ffa
|
|
| BLAKE2b-256 |
ecba3e74774e156bdbb397f1da07109b68c04a7ca20b17327ecbda075e268c76
|
Provenance
The following attestation bundles were made for simple_module_branding-0.0.24.tar.gz:
Publisher:
release.yml on antosubash/simple_module_python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simple_module_branding-0.0.24.tar.gz -
Subject digest:
1a46f61554bda0ee3ee8b7cb7b60789b95b105f2c0c7c2cb7363811184a46163 - Sigstore transparency entry: 2026356165
- Sigstore integration time:
-
Permalink:
antosubash/simple_module_python@35bb8df75943c017d7a7d581859027157488f1d9 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/antosubash
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@35bb8df75943c017d7a7d581859027157488f1d9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file simple_module_branding-0.0.24-py3-none-any.whl.
File metadata
- Download URL: simple_module_branding-0.0.24-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06e2f2867cf9191159f8b0c346251f5e7db2dffdb08dc5aaeae0dad0e065c1f9
|
|
| MD5 |
c63a45c8f0fab4a6a9819fdfa3ce1cf5
|
|
| BLAKE2b-256 |
aa316dc3be0fe8a1c3c13542c9a6192fc3d50d866fbad58d76b4e4bbedfc9ed5
|
Provenance
The following attestation bundles were made for simple_module_branding-0.0.24-py3-none-any.whl:
Publisher:
release.yml on antosubash/simple_module_python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simple_module_branding-0.0.24-py3-none-any.whl -
Subject digest:
06e2f2867cf9191159f8b0c346251f5e7db2dffdb08dc5aaeae0dad0e065c1f9 - Sigstore transparency entry: 2026356276
- Sigstore integration time:
-
Permalink:
antosubash/simple_module_python@35bb8df75943c017d7a7d581859027157488f1d9 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/antosubash
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@35bb8df75943c017d7a7d581859027157488f1d9 -
Trigger Event:
workflow_dispatch
-
Statement type: