Streamlit is an open-source Python framework (Apache-2.0) that converts Python scripts into interactive web applications. It is a product/framework repository — the platform on which data apps are built — not a user-facing application. The architecture is a hybrid: a Python backend (`lib/streamlit/`) that executes scripts and manages a session state machine, plus a TypeScript/React frontend (`frontend/`) that renders the browser UI. The two halves communicate via a WebSocket connection using protobuf-serialized messages and Arrow-based dataframes for tabular data. Key entry points include `streamlit run` (CLI in `lib/streamlit/web/cli.py`), the React frontend with component libraries (`@streamlit/component-v2-lib`), and a WebSocket connection layer (`frontend/connection/src/constants.ts`). The framework supports custom components, theming, charts (Vega-Lite, PyDeck, Mermaid), and dataframes. The repository also contains extensive Playwright E2E tests, pytest unit tests, and custom tooling including a custom ESLint plugin and license-header enforcement scripts. Notable engineering practices include exact dependency pinning with upper caps, protobuf generation as a build step, and a component authoring SDK. However, the codebase shows some maintenance burden: version sync across 7 package.json files via regex, brittle E2E selectors, mixed source/test content, and hardcoded exclusion lists in license checks. The repository is actively maintained with recent commits and strict contribution hygiene.
NotebookLlaMa is a full-stack, open-source alternative to Google's NotebookLM, built on LlamaCloud and the LlamaIndex ecosystem. It provides a Streamlit-based web interface for uploading PDF documents, processing them through a multi-step workflow (parsing, extraction, summarization, Q&A generation, mind map creation), and optionally generating a podcast conversation using ElevenLabs TTS. The system uses an MCP server (FastMCP) to expose tools for document processing, mind map generation, and index querying, orchestrated by a LlamaIndex Workflow. Observability is handled via OpenTelemetry with traces exported to Jaeger and stored in PostgreSQL, with an export-to-Parquet capability. The codebase is well-structured, async-first, and includes comprehensive tests, a CLI setup wizard for embedding providers, and Docker Compose for infrastructure dependencies. It is actively maintained and demonstrates strong engineering practices.
MoneyPrinterTurbo is a production short-video generation platform. Given a topic or script, it orchestrates LLM-based script/keyword generation, multi-provider TTS (Edge, Azure, Gemini, ElevenLabs, etc.), video material sourcing (Pexels, Pixabay, Coverr, several AI video generators), subtitle generation (Whisper or TTS timestamps), background music, and final video composition via moviepy/FFmpeg. It exposes three consistent interfaces: a FastAPI REST API, a Streamlit WebUI, and a CLI. All three share the same underlying task pipeline in `app/services/task.py`, which manages state, progress, and cross-posting to YouTube/TikTok/Instagram. The architecture is a service-oriented monolith: the core pipeline is a linear sequence of stages (script → terms → audio → subtitles → materials → video → optional BGM/cross-post). External integrations are abstracted behind provider-specific modules (e.g., `voice.py`, `material.py`, `bgm.py`). A Redis-backed or in-memory state manager tracks task progress. The configuration is runtime-editable and stored in a TOML file. The WebUI is a large Streamlit single-page application with dozens of provider-specific controls, billing confirmations, and i18n support for 12+ languages. The codebase demonstrates strong engineering practices: extensive test coverage (200+ test files), structured error handling with per-provider error classes, atomic file writes, path traversal protection, and security-conscious API key handling. However, it also shows signs of rapid growth: the WebUI is a monolithic 1300+ line script, provider integration logic is occasionally duplicated, and the dependency list is large (many third-party APIs). The repository is actively maintained with recent commits and good issue triage. It is not a research project; there are no datasets, model training, or analytical queries.
HomeTube is a Streamlit-based web application for downloading and managing media from YouTube and 1800+ other platforms via yt-dlp. It provides a rich UI for URL analysis, quality profile selection (AV1/VP9/H.264), subtitle embedding, video cutting (keyframe/precise), SponsorBlock ad removal, and playlist synchronization with full diff-based state management. The architecture is a monolithic Streamlit app with heavy subprocess orchestration of yt-dlp and ffmpeg, backed by a typed configuration system, JSON-based workspace state files, and a comprehensive test suite with mocked Streamlit dependencies. Designed for homelab deployment, it includes Docker multi-arch builds, Nginx reverse proxy config, and daily automated rebuilds to stay current with yt-dlp updates. Core data flows: URLs are analyzed via yt-dlp (with client fallback chain default → ios → web), metadata is cached in url_info.json, download strategies are computed using format profile matching (codec priorities, audio language detection), and final files are moved to a configurable destination with optional hardlinking. Playlists are handled via a dedicated sync module that computes rename/archive/delete plans and applies them with dry-run support. The system emphasizes resilience through generic file naming, temporary workspace preservation, and intelligent caching that refuses to overwrite premium AV1/VP9 metadata with lower-quality data. The application is not a data research project; it is a production-ready media downloader and manager with no ML or analytical components. Its complexity lies in data integrity patterns (metadata caching, state machines, filesystem mutations) rather than data science.
This repository curates and distributes Maxar Open Data satellite imagery for disaster response events. It provides a structured catalog of pre- and post-event high-resolution imagery (WorldView, GeoEye) in multiple formats: GeoJSON footprints, union geometries, MosaicJSON tile indices, and TSV metadata tables. The core pipeline (`maxar_data_catalog.py`) fetches the official Maxar STAC catalog, iterates over event collections, and generates these derived files, which are then committed to the repository. A Streamlit web app (`streamlit_app.py`) offers interactive browsing of footprints and mosaics. The repository is primarily a data asset with a supporting ETL pipeline and a thin frontend, making it a hybrid of data curation and a lightweight application. The data is organized by disaster event (e.g., hurricanes, earthquakes, floods) and includes rich acquisition metadata (platform, GSD, cloud cover, viewing angles) suitable for geospatial analysis and machine learning.
This repository is a community-driven collection of Streamlit 'extras' — custom components and utilities that extend Streamlit's functionality. It is a Python library (package `streamlit-extras`) that provides over 40 self-contained subpackages, each implementing a specific UI widget, layout helper, or data exploration tool. The architecture is modular: each extra is a subpackage under `src/streamlit_extras/` with a standardized metadata convention (`__title__`, `__desc__`, etc.) and a central `@extra` decorator for registration. Some extras are pure Python wrappers around Streamlit's native APIs (e.g., `grid`, `stateful_button`, `stoggle`), while others are full Custom Components v2 (CCv2) with React/TypeScript frontends built with Vite (e.g., `three_viewer`, `json_editor`, `sigma_graph`). The build system uses Hatch with a custom build hook to compile React frontends during wheel packaging. The gallery app (`gallery/streamlit_app.py`) serves as a demo and documentation explorer. The codebase is well-organized but has several deprecated extras that rely on private Streamlit APIs, and test coverage is limited to metadata validation. Overall, it is a solid, actively maintained library with reusable patterns for Streamlit component development.
This repository is a vast curated collection of over 100 open-source AI agent application templates and tutorials, spanning multiple frameworks (Agno, Google ADK, OpenAI SDK, LangGraph, CopilotKit, CrewAI) and deployment patterns (Streamlit, Next.js, FastAPI, CLI). It serves as a living portfolio of AI agent patterns: single-agent assistants, multi-agent teams, generative UI (CopilotKit + AG-UI), RAG pipelines with various vector stores (Qdrant, Chroma, LanceDB, FAISS), voice agents, always-on scheduled agents, and agent skills (code analysis, dependency health). The architecture is a monorepo of independent sub-projects, each with its own requirements, entry point, and often a README. External dependencies are heavy: nearly every app requires API keys for LLMs (OpenAI, Google, Groq, Together) and tools (Tavily, Firecrawl, SerpAPI, E2B), plus optional services (PostgreSQL, Qdrant, ElevenLabs). While the codebase is not a single integrated application, it provides a rich set of reference implementations for developers building AI agents.
This repository is a comprehensive educational resource for linear algebra and matrix computations, serving as the companion code for the book "Book 4: The Power of Matrices" from the "Iris Flower Book" series. It contains Jupyter notebooks and Streamlit apps that visualize core concepts from vectors and matrices to eigenvalue decomposition, SVD, and data projections. The code is pedagogical, using synthetic data and the Iris dataset to illustrate mathematical ideas through interactive plots and heatmaps. It is not a production application or data pipeline but a teaching tool. The repository is well-organized by chapter, though code is duplicated across notebooks rather than modularized, reflecting its educational nature.
This repository is a curated collection of 93+ production-ready AI engineering projects, spanning beginner to advanced levels. It serves as a practical resource for building AI applications, with a strong emphasis on agent orchestration (CrewAI, AutoGen, OpenAI Swarm), Retrieval-Augmented Generation (RAG) pipelines, Model Context Protocol (MCP) servers, and LLM evaluation frameworks. The dominant character is application development: most projects are deployable apps using Streamlit, Next.js, FastAPI, or as standalone MCP servers. Notable sub-projects include a full visual workflow builder (open-agent-builder) with Convex backend, a multi-modal RAG pipeline (notebook-lm-clone), and a comprehensive audio analysis toolkit. While primarily application-focused, the repository also contains data/research elements such as model fine-tuning scripts (GRPO, DPO, SFT), synthetic data generation (SDV), and LLM comparison dashboards with Opik/DeepEval evaluation. The codebase is heterogeneous in quality: some projects exhibit clean architecture and reusable patterns, while others are simple demos with boilerplate code and hardcoded dependencies. Overall, it is an excellent educational resource for AI engineers seeking practical, runnable examples, but not a single cohesive product.
This repository is a curated collection of over 30 independent Streamlit in Snowflake (SiS) demo applications, each self-contained in its own folder. The demos span a wide range of use cases including business intelligence dashboards, LLM-powered chatbots (Cortex, DeepSeek-R1, RAG), geospatial H3 visualizations, custom UI components (AgGrid, ECharts, Slickgrid), CI/CD pipelines with Snowflake CLI, and embedding SiS into external portals via Next.js. Each app includes a `streamlit_app.py` entry point, a `data/creation_script.sql` for Snowflake object setup, and sample data. The code is educational, heavily commented, and demonstrates patterns like caching, dynamic page navigation, and local/cloud-aware connections. While the apps are not production-grade (some hardcoded values, duplication), they serve as excellent reference implementations for building SiS applications.
This repository is a comprehensive collection of over 1000 Python GUI example applications and tutorials, spanning multiple frameworks: PyQt5, PyQt6, PySide2, PySide6, Tkinter, Kivy, DearPyGui, Flet, NiceGUI, and Streamlit. It serves as an educational resource for developers learning desktop GUI programming, with step-by-step tutorials and full demo applications like calculators, media players, web browsers, games (Minesweeper, Solitaire), paint programs, and data-driven apps (weather, currency, crypto). The codebase is organized by framework, with each framework containing tutorials, demos, and reusable custom widgets. While the examples are functional and well-documented, the repository suffers from massive duplication across Qt bindings (identical logic replicated four times with minor API adaptations), some deprecated API usage (e.g., QWebEnginePage.NavigationType in Qt6, fixer.io API endpoints), and occasional cross-binding import errors. The most valuable parts are the self-contained custom widgets in the widgets/ directories, which demonstrate clean signal-based design and can be extracted into other Qt projects with minimal modification.
This repository is a collection of educational tutorials demonstrating various Python web frameworks and data analysis techniques. The majority of content consists of self-contained Streamlit applications showcasing features like QR code generation, form handling, session state, file-based routing, and multipage apps. It also includes examples of other frameworks such as FastAPI (with JWT authentication), Reflex, Marimo, NiceGUI, H2O Wave, Dash, and Fasthtml. A notable data research component is the Jupyter notebook analyzing pandas usage patterns across 1.2 million notebooks from UCSD Library archives. Architecture-wise, each tutorial is independent with no overarching system. Streamlit apps range from single-file scripts to multipage applications using st.navigation or custom file-based routing. Backend services like the FastAPI server in the authentication tutorial are paired with Streamlit frontends. The pandas analysis notebook follows an end-to-end pipeline: extracting notebooks from archives, parsing code via AST, filtering results, and visualizing API usage statistics. Key entry points are streamlit_app.py files in each tutorial directory, framework-specific server files (e.g., fastapi_server.py), and the pandasmostused.ipynb notebook. The repository exhibits moderate craftsmanship with several reusable patterns: a file-based routing system for Streamlit, a JWT authentication mechanism securing Streamlit via FastAPI backend, and parallel AST processing for bulk notebook analysis. However, it shows signs of technical drift including mixed use of deprecated and current Streamlit caching methods, hardcoded secrets in plaintext, and inconsistent dependency management. Maintenance is active based on recent commits, but the tutorial nature means some examples prioritize clarity over production best practices.
DemoGPT is an open-source Python framework that provides two core capabilities: (1) an automatic Streamlit application generator that converts natural language descriptions into complete, runnable Streamlit apps through a multi-stage LLM pipeline (planning, task decomposition, code generation, assembly), and (2) the DemoGPT AgentHub, a modular library for building AI agents with built-in tools (web search, code execution, Wikipedia, weather, etc.), two agent types (ToolCallingAgent for single-step tasks, ReactAgent for multi-step reasoning), and a RAG (Retrieval Augmented Generation) system supporting Chroma, FAISS, and Pinecone vector stores. The codebase is primarily a library/application hybrid, with the Streamlit app acting as both a user interface and a demonstration of the generation pipeline. The architecture separates concerns into chains, prompts, task definitions, and controllers, but many components are tightly coupled to the specific generation pipeline. The AgentHub portion is more modular and reusable. Technical drift is medium: the code uses deprecated LangChain APIs (LLMChain, Chain.run), hardcodes older models like gpt-3.5-turbo-16k in some generated code, and has a broad dependency range. Maintenance appears active with recent commits and responsive issue triage, but the codebase would benefit from modernizing to LangChain's new LCEL syntax and updating default models.