A production-ready, modular Streamlit template designed for building independently deployable tool suites within the DeveloperOS open-source ecosystem.
π Live Application: https://devos-template.streamlit.app
- Decoupled Architecture: Pure Python business logic in
core/completely isolated from Streamlit UI intools/. - Plug-and-Play Tool Contract: Utilities self-register into
tools/registry.pywith 13 metadata fields. Add or remove tools without breaking the suite. - DeveloperOS Design System: Supported native theme settings in
.streamlit/config.tomlmatching canonical brand tokens (#2563ebprimary,#0f172acanvas,#1e293bsurface). - Zero-Trust Ephemeral Privacy: Strict in-memory processing guarantees; no user payloads or inputs are ever saved to disk or sent to third parties.
- Multi-Tool Automatic Navigation: Category filtering, live search, and related-tool recommendation cards.
- Production-Ready CI & Packaging: Pinned dependencies, pre-configured Ruff linter, Pytest test runner, and GitHub Actions CI.
developeros-streamlit-template/
βββ app.py # Main Streamlit application entrypoint
βββ manifest.yaml # Suite metadata & tool inventory
βββ requirements.txt # Locked runtime dependencies
βββ pyproject.toml # Build & linter configuration
βββ LICENSE # MIT License
βββ CONTRIBUTING.md # Developer guide for adding new utilities
βββ .streamlit/
β βββ config.toml # Native theme & server configuration
βββ .github/workflows/
β βββ ci.yml # Automated GitHub Actions test pipeline
βββ assets/ # Portable branding assets (SVG logos, theme tokens)
β βββ logo.svg
β βββ theme.json
βββ components/ # Reusable DeveloperOS UI components
β βββ header.py # Standard top navigation & branding
β βββ footer.py # Backlinks to developeros.in & MIT notice
β βββ privacy.py # Zero-storage assurance badge
β βββ navigation.py # Sidebar search & category filter
β βββ alerts.py # WCAG AA status banners
β βββ related_tools.py # Recommendation card grid
βββ core/ # Pure business logic (ZERO Streamlit imports)
β βββ text_analyzer.py # Text density, reading time & Shannon entropy
β βββ hash_generator.py # SHA-256, SHA-512, MD5, HMAC & safe compare
β βββ json_validator.py # JSON syntax check, minifier & formatter
βββ tools/ # Tool plugin implementations & views
β βββ registry.py # ToolDefinition contract & singleton registry
β βββ text_analyzer_view.py # UI presentation for Text Analyzer
β βββ hash_generator_view.py # UI presentation for Hash Generator
β βββ json_validator_view.py # UI presentation for JSON Formatter
β βββ __init__.py # Auto-registration bootstrap
βββ pages/ # Optional multi-page Streamlit tabs
β βββ 1_Catalog.py # Searchable suite catalog
β βββ 2_About.py # Architecture & privacy guarantees
βββ tests/ # Automated test suite
βββ test_core_text_analyzer.py
βββ test_core_hash_generator.py
βββ test_core_json_validator.py
βββ test_registry.py
βββ test_manifest.py
- Python 3.12+
piporuv
# Clone or copy the template
cd developeros-streamlit-template
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txtstreamlit run app.pyOpen your browser to http://localhost:8501.
python3 -m unittest discover -s tests -p "test_*.py"- Copy the Template Folder:
cp -r infrastructure/developeros-streamlit-template suites/suite-<your-domain>
- Update Metadata in
manifest.yaml:- Set
suite_id: "suite-<your-domain>" - Set
name: "DeveloperOS <Domain> Suite" - Set
slug: "<your-domain>" - Set
category: "<Category Name>"
- Set
- Customize
pyproject.tomlandREADME.md:- Update project title, package name, and repository URL.
- Scaffold Your Domain Tools into
core/andtools/.
Every utility follows a 3-step registration process:
Strict Rule: Do not import Streamlit in core/.
# core/uuid_generator.py
import uuid
from typing import List
def generate_uuids(count: int = 1) -> List[str]:
"""Generates UUIDv4 identifiers."""
return [str(uuid.uuid4()) for _ in range(min(count, 100))]# tools/uuid_generator_view.py
import streamlit as st
from core.uuid_generator import generate_uuids
from components.privacy import render_privacy_badge
def render_uuid_generator_view():
st.markdown("### π UUIDv4 Generator")
render_privacy_badge("client_side")
count = st.slider("Quantity", 1, 50, 5)
if st.button("Generate UUIDs", type="primary"):
uuids = generate_uuids(count)
st.code("\n".join(uuids), language="text")
st.download_button("Download UUIDs", data="\n".join(uuids), file_name="uuids.txt")# tools/__init__.py
from tools.registry import register_tool, ToolDefinition
from tools.uuid_generator_view import render_uuid_generator_view
register_tool(ToolDefinition(
id="tool-uuid-generator",
name="UUIDv4 Generator",
description="Generate cryptographically secure version-4 UUID identifiers.",
category="Identifiers",
version="1.0.0",
ui_entrypoint=render_uuid_generator_view,
core_module="core.uuid_generator",
input_output_spec={"input": "integer count", "output": "text/plain UUID list"},
privacy_classification="client_side",
dependency_requirements=["streamlit>=1.38.0"],
deployment_support=["streamlit_community_cloud", "docker"],
documentation_link="https://developeros.in/docs/tools/uuid-generator",
related_tools=["tool-text-analyzer"]
))import unittest
from core.uuid_generator import generate_uuids
class TestUuidGenerator(unittest.TestCase):
def test_generate(self):
res = generate_uuids(3)
self.assertEqual(len(res), 3)Run tests to verify:
python3 -m unittest discover -s tests -p "test_*.py"- Push your standalone suite repository to GitHub under
developerOSindia/<repo-name>. - Visit share.streamlit.io.
- Connect your repository, branch (
main), and set Main file path toapp.py. - The
.streamlit/config.tomlwill automatically apply DeveloperOS themes.
When configuring this repository on GitHub, apply these topics:
developer-tools streamlit python open-source design-system template developeros
This project is licensed under the MIT License. Part of the DeveloperOS Open-Source Tools Ecosystem.
- Live Application: https://devos-template.streamlit.app
- Main Website: https://developeros.in
- Central Tools Directory: https://toolkit.developeros.in
- GitHub Organization: https://github.com/developerOSindia