geyser: modular concepts and construction

The geyser repository demonstrates how to take the classic Faithful Geyser Shiny example and systematically modularize it. It is published as both an R and Python package to illustrate multi-language Shiny module patterns, server/UI component separation, and WebAssembly deployment using Shinylive.

Progressive Modularization Flow

The repository demonstrates a step-by-step transition from monolithic Shiny code to decoupled multi-module architecture:

graph TD
    Monolith[1. Old Faithful Monolith] --> Split[2. UI & Server Function Split]
    Split --> Call[3. Function Call Module]
    Call --> Mod[4. Shiny Module Server/UI]
    Mod --> Conn[5. Connected Modules]

    Conn --> AppPages[appPages: Modules over Pages]
    Conn --> AppRows[appRows: Modules in Grid Rows/Cols]
    Conn --> AppTwin[appTwin: Reused Modules]
    Conn --> AppMain[app: Nested Modules]

    Mod --> Py[5. Python Shiny Modules]

Published Documentation & Interactive Demos

Documentation, live interactive demos, and slide decks are hosted online at https://byandell.github.io/geyser/:

Developer Guides

Interactive Shinylive Demos

Explore live Shinylive applications running directly inside your browser without requiring a backend server:

Presentations & Slide Decks


Source Code & Repository


This site uses Just the Docs, a documentation theme for Jekyll.