Skip to content
SimplyPagesDemosDocumentationJava APIGitHub
Browse demos · Markdown publishing
Explore the demos

Components

Text & structureForms & inputDisplay & dataNavigationMediaPage layout

Composed modules

Reading & contentData & insightsInteraction & feedbackStorytelling & mediaShells & builders

Working features

Typed templatesHTMX & fragmentsEditing & proposalsMarkdown publishing
Content pipeline
Forum & discussionsChat & finite SSESafe rendering
Sandbox recovery
Content pipeline examplePublication index

By Module Guild on 2026-03-09 14:10

moduleslifecycledesign

Module Lifecycle Contracts That Scale

SimplyPages modules are built lazily and idempotently through the module lifecycle contract.

Structure in buildContent

buildContent() should describe structure and composition, not request-time mutation logic.

Keep Dynamic State External

If values change per request, favor templates and context values over rebuilding module internals.

Integration Benefit

This keeps modules reusable across full-page render and HTMX partial render paths.

Layout Owns Width Decisions

Module width methods are intentionally blocked; layout containers handle sizing.

Back to SimplyPages Blog
Page navigation
On this page
Structure in buildContentKeep Dynamic State ExternalIntegration BenefitLayout Owns Width Decisions

SimplyPages · Java-first server-rendered interfaces.

Security boundariesBuild & support