Skip to content

[cli scaffold] index.html still hardcodes SimpleModule title — branding_head exists but the scaffold never calls it #249

Description

@antosubash

Follow-up to #175 (closed). Verified against main @ a5d6c12 (v0.0.27).

Symptom

framework/cli/simple_module_cli/templates/host/templates/index.html:6 still ships:

<title>SimpleModule</title>

simple_module_hosting._inertia_setup registers the branding_head Jinja global whose docstring says it exists so "the static <title> and theme-color are already branded before React hydrates" — but no scaffolded host calls it, so every new host renders "SimpleModule" to crawlers, link previews, and history entries until someone finds the global by reading framework source.

Fix

Scaffold template head:

{% set brand = branding_head(request) %}
<title>{{ brand.app_name }}</title>
{% if brand.theme_color %}<meta name="theme-color" content="{{ brand.theme_color }}" />{% endif %}

(Worked as expected when applied in a consuming host: iiasa/globalcanopyatlas#5.)

Related, larger gap (separate decision)

Per-page title / meta_description / og_* props are in every Inertia payload but nothing renders them server-side without enabling SSR, so page-level SEO/social metadata is client-only on non-SSR hosts. fastapi-inertia supports SSR — a docs recipe (or a lightweight "render title/meta props into the template" hook for non-SSR hosts) would close it. Happy to split this into its own issue if preferred.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions