Skip to content

UI: internal navigation does full-page reloads instead of client-side transitions (no next/link) #222

Description

@dmccoystephenson

Surface: components/TopBar.tsx (NavButton) and internal links across pages.

Opportunity. No component uses next/link — every internal destination is a plain <Button href="/..."> (an anchor), so navigating between pages triggers a full page reload: a white flash, fonts/JS re-evaluated, and any in-memory state thrown away. (The color-mode logic in _app.tsx even works around this — its comment notes "navigation triggers a full page load," which is why the mode is re-read from localStorage each time.) On a modern Next.js site, in-site navigation should be instant client-side transitions.

Suggested direction. Route internal links through next/link (e.g. MUI Button component={Link} with the next/link Link, or a small NextLinkButton wrapper) for all same-origin paths; keep plain anchors + target="_blank" for external links and for in-page hash anchors like #plugins. This gives instant navigation, removes the flash, and lets the color-mode (and future client state) persist in memory across pages.

Why it matters (perceived performance / polish). Full reloads make the site feel slower and older than it is; client-side nav is the single biggest "feels modern" win available here. Note this is a broader refactor than the other UI issues — worth scoping as its own PR.

Filed during a UI review; verified there is no next/link import anywhere and TopBar navigates via <Button href>. Drafted by Claude on behalf of Daniel Stephenson.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions