How jgougerdie/inkforge-website works
Sharpline is a static React site for concise business articles across marketing, tax and compliance, personal growth, and finance. Readers browse featured or categorized articles, filter the article list, then open an article; its body is shown only after login, with reader state persisted in localStorage. Login can optionally send a best-effort Formspree notification. The sampled source shows routing, article gating, and local auth; other README/tree-listed page capabilities are represented at their supported module paths without assuming their internals.
Main entry points: App.tsx App routing · Article.tsx Article page · Home.tsx Home · AuthContext.tsx Auth context
Components 20
Article discovery
- Home
src/pages/Home.tsx - Blog listing
src/pages/Blog.tsx - Video tour
src/components/VideoTourModal.tsx
Content and rendering
- Article page
src/pages/Article.tsx - Article catalog
src/data/articles.ts - Categories
src/data/categories.ts - Article renderer
src/components/ArticleContent.tsx - Article structured data
src/components/ArticleJsonLd.tsx
Reader access
- Login page
src/pages/Login.tsx - Auth context
src/context/AuthContext.tsx - Browser storage
- Login notifier
src/lib/notifyLogin.ts
Site shell
- App routing
src/App.tsx - Header navigation
src/components/Header.tsx - Footer
src/components/Footer.tsx - Analytics
src/components/Analytics.tsx - Page metadata
src/components/PageMeta.tsx - Not found
src/pages/NotFound.tsx
Other components
- Reader
- Formspree
Connections 29
- Reader → App routing: opens site
- App routing → Home: routes to
- App routing → Blog listing: routes to
- App routing → Article page: routes to
- App routing → Login page: routes to
- App routing → Not found: routes to
- App routing → Auth context: provides auth
- App routing → Header navigation: renders
- App routing → Footer: renders
- App routing → Analytics: renders
- Home → Article catalog: selects featured
- Home → Categories: reads categories
- Home → Blog listing: links to browse
- Home → Video tour: opens tour
- Blog listing → Article catalog: browses articles
- Blog listing → Categories: filters by category
- Article page → Article catalog: loads article
- Article page → Categories: loads category
- Article page → Auth context: checks access
- Article page → Article renderer: renders body
- Article page → Login page: links when gated
- Article page → Page metadata: sets page metadata
- Article page → Article structured data: renders structured data
- Login page → Auth context: logs reader in
- Login page → Login notifier: requests notification
- Auth context → Browser storage: reads and writes
- Login notifier → Formspree: posts notification
- Header navigation → Auth context: reads and logs out
- Header navigation → Home: links to sections