diff --git a/frontend/src/App.css b/frontend/src/App.css
index 4816e47..b475eab 100644
--- a/frontend/src/App.css
+++ b/frontend/src/App.css
@@ -3354,3 +3354,126 @@ a.app-footer__repo:hover {
gap: 0.3rem;
text-decoration: none;
}
+
+/* ── About page ───────────────────────────────────────────────────────────── */
+
+.about {
+ max-width: 44rem;
+ margin: 0 auto;
+ padding: 2rem 1.5rem 3rem;
+}
+
+.about-hero {
+ text-align: center;
+ margin-bottom: 2.5rem;
+}
+
+.about-hero__title {
+ font-size: 2rem;
+ font-weight: 700;
+ color: var(--color-text-primary);
+ margin: 0 0 0.5rem;
+}
+
+.about-hero__subtitle {
+ font-size: 1.05rem;
+ color: var(--color-text-secondary);
+ margin: 0;
+}
+
+.about-section {
+ margin-bottom: 2rem;
+}
+
+.about-section__heading {
+ font-size: 1.25rem;
+ font-weight: 600;
+ color: var(--color-text-primary);
+ margin: 0 0 0.75rem;
+}
+
+.about-section__text {
+ color: var(--color-text-secondary);
+ line-height: 1.7;
+ margin: 0 0 0.75rem;
+}
+
+.about-pipeline {
+ list-style: none;
+ counter-reset: pipeline;
+ padding: 0;
+ margin: 1rem 0;
+ display: flex;
+ flex-direction: column;
+ gap: 0.75rem;
+}
+
+.about-pipeline__step {
+ counter-increment: pipeline;
+ display: flex;
+ align-items: baseline;
+ gap: 0.75rem;
+ color: var(--color-text-secondary);
+ line-height: 1.6;
+ padding: 0.75rem 1rem;
+ background: var(--color-bg-surface);
+ border-radius: 0.5rem;
+ border: 1px solid var(--color-border);
+}
+
+.about-pipeline__step::before {
+ content: counter(pipeline);
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.5rem;
+ height: 1.5rem;
+ font-size: 0.75rem;
+ font-weight: 700;
+ color: var(--color-accent);
+ background: var(--color-accent-subtle);
+ border-radius: 50%;
+ flex-shrink: 0;
+}
+
+.about-pipeline__step strong {
+ color: var(--color-text-primary);
+}
+
+.about-link {
+ color: var(--color-accent);
+ text-decoration: none;
+ transition: color 0.15s;
+}
+
+.about-link:hover {
+ color: var(--color-accent-hover);
+}
+
+.about-cta {
+ text-align: center;
+ margin-top: 2.5rem;
+}
+
+.about-cta__btn {
+ display: inline-block;
+}
+
+/* Footer about link */
+
+.app-footer__about {
+ color: var(--color-text-muted);
+ text-decoration: none;
+ transition: color 0.15s;
+}
+
+a.app-footer__about:hover,
+.app-footer__about:hover {
+ color: var(--color-accent);
+}
+
+@media (max-width: 600px) {
+ .about-hero__title {
+ font-size: 1.5rem;
+ }
+}
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index e92edb1..c22b061 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -7,6 +7,7 @@ import CreatorDetail from "./pages/CreatorDetail";
import TopicsBrowse from "./pages/TopicsBrowse";
import AdminReports from "./pages/AdminReports";
import AdminPipeline from "./pages/AdminPipeline";
+import About from "./pages/About";
import AdminDropdown from "./components/AdminDropdown";
import AppFooter from "./components/AppFooter";
@@ -43,6 +44,9 @@ export default function App() {
+ A structured knowledge base for music production techniques +
++ Chrysopedia turns long-form music production tutorials into a + searchable, structured knowledge base. Instead of scrubbing through + hours of video looking for the one technique you need, you can search + by topic, creator, or keyword and jump straight to the insight. +
++ The name comes from chrysopoeia — the art of transmutation. + We transmute raw video content into distilled, accessible knowledge. +
++ Videos are processed through a multi-stage pipeline that transcribes + audio, identifies key moments, classifies topics, and generates + structured technique pages — all using a combination of speech + recognition and large language models. +
++ Every technique page links back to its source video and creator, + preserving attribution throughout. +
++ Chrysopedia is built and maintained by{" "} + + xpltd + + . The project is open source on{" "} + + GitHub + + . +
+