Skip to content

Loading skeletons and Suspense boundaries #13

Description

@satsdisco

Summary

Currently the app shows either nothing or a loading spinner while content fetches from relays. Skeleton screens provide a much better perceived performance and feel more polished.

Where needed

  • Press page — article card skeletons while fetching from relays
  • Article reader — content skeleton while loading article + profile
  • Editor — loading state while restoring draft
  • Login — connection status while authenticating with bunker/extension
  • Route transitions — Suspense fallback for lazy-loaded routes (see Add route-level code splitting with React.lazy() #9)

Design

  • Match the warm Samizdat aesthetic (paper/cream tones)
  • Subtle pulse animation, not harsh grey blocks
  • Show structure: title bar, paragraph lines, author avatar placeholder

Acceptance Criteria

  • No blank/white screens during loading
  • Skeletons match final layout structure
  • Smooth transition from skeleton → real content
  • Works on slow relay connections (3G simulation)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions