Files
pulse/app/changelog/page.tsx
Usman Baig a3c1af7c95 fix: frontend consistency audit — 55 files cleaned up
Consistency fixes:
- Extract getThisWeekRange/getThisMonthRange to shared lib/utils/dateRanges.ts
  (removed 4 identical copy-pasted definitions)
- Add error boundaries for behavior, cdn, search, pagespeed pages
  (4 new error.tsx files — previously fell through to generic parent error)
- Add "View setup guide" CTA to empty states on journeys and behavior pages
  (previously showed text with no actionable button)
- Fix non-lazy useState initializer in funnel detail page
- Fix Bot & Spam settings header from text-xl to text-2xl (matches all other sections)
- Add useMinimumLoading to PageSpeed skeleton (consistent with all other pages)

Cleanup:
- Remove 438 redundant dark: class prefixes (app is dark-mode only)
  text-neutral-500 dark:text-neutral-400 → text-neutral-400 (206 occurrences)
  text-neutral-900 dark:text-white → text-white (232 occurrences)
- Remove dead @stripe/react-stripe-js and @stripe/stripe-js packages
  (billing migrated to Polar, no code imports Stripe)
- Remove duplicate motion package (framer-motion is the one actually used)
2026-03-23 19:50:16 +01:00

47 lines
1.6 KiB
TypeScript

import fs from 'fs'
import path from 'path'
import ReactMarkdown from 'react-markdown'
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Changelog - Pulse',
description: 'Release history and notable changes for Pulse, privacy-first web analytics.',
}
/**
* Reads CHANGELOG.md from the project root and renders it on the /changelog page.
* Content is loaded at build time; redeploy to show new releases.
*/
export default function ChangelogPage() {
const changelogPath = path.join(process.cwd(), 'CHANGELOG.md')
const content = fs.readFileSync(changelogPath, 'utf-8')
return (
<div className="mx-auto max-w-3xl px-4 sm:px-6 py-8">
<h1 className="text-4xl md:text-5xl font-bold tracking-tight text-white mb-2">
Changelog
</h1>
<p className="text-neutral-600 dark:text-neutral-400 mb-8 text-sm">
Release history and notable changes. We use{' '}
<a
href="https://keepachangelog.com/en/1.1.0/"
target="_blank"
rel="noopener noreferrer"
className="text-brand-orange hover:underline"
>
Keep a Changelog
</a>{' '}
and <strong>0.x.y</strong> versioning while in initial development.
</p>
<article
className="prose prose-neutral dark:prose-invert max-w-none
prose-headings:font-semibold prose-headings:tracking-tight
prose-a:text-brand-orange prose-a:no-underline hover:prose-a:underline
prose-ul:my-4 prose-li:my-0.5"
>
<ReactMarkdown>{content}</ReactMarkdown>
</article>
</div>
)
}