Wikantik Reader UI - Implementation Plan

Status (2026-10-13): Implemented, and the plan's premise has been superseded. The reader is not a separate app beside JSP templates: the JSP templates are gone and one React SPA serves reading, editing and the admin panel from / (see RemoveJspAndAppPrefix). The shipped stack differs from the table below: React 19, plain JavaScript (JSX, no TypeScript), React Router 7, Vite 8, hand-written token-based CSS, and React state and hooks with no Zustand or TanStack Query. docs/developer/FrontendArchitecture.md in the repository describes the current frontend.

A modern, Medium-inspired reading experience built with React.

Reader UI Redesign Architecture and Component Hierarchy

Build a standalone React SPA that consumes Wikantik's existing REST API, providing a modern reading experience while the traditional JSP templates handle editing/administration.

Architecture

Core Concept

Technology Stack

LayerChoiceRationale
FrameworkReact 18Industry standard, large ecosystem
BuildViteFast HMR, modern defaults
LanguageTypeScriptType safety, better DX
StateZustandLightweight, simple API
Data FetchingTanStack QueryCaching, background refetch
StylingVanilla CSSNo runtime cost, maximum flexibility

Component Design

Header (responsive)

Article Header


Wiki Content Processing

To bridge the gap between static HTML and a dynamic React app, the parser must:

  1. Transform Links: Convert standard wiki links to React Router internal links.
  2. Lazy Load: Automatically add loading="lazy" to all images.
  3. Horizontal Scroll: Wrap tables in a scrollable div container for mobile responsiveness.

See Also:


Cluster Hub: Wikantik Platform Development Hub: Architecture, MCP Protocols, and Agent Briefings (wikantik-development)