Skip to content

Commit 8e47d9c

Browse files
committed
feat: improve phase 8
1 parent 80adf00 commit 8e47d9c

34 files changed

Lines changed: 395 additions & 46 deletions

docs/restart-plan/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DeepNotes Restart Plan — Index
22

3-
> **Last updated:** 2026-05-31 (Phase 8 complete; marketing site builds 14 static HTML routes with vue-router + vite-ssg)
3+
> **Last updated:** 2026-05-31 (Phase 8 complete; marketing site builds 20 static HTML routes with vue-router + vite-ssg, theme toggle, restored legacy assets)
44
> **This document replaces `docs/RESTART_PLAN.md`.** If a prior statement conflicts with this one, this version wins.
55
66
---
@@ -64,7 +64,7 @@ A criterion is **not met** until the verification command or check passes in CI.
6464
- [x] **Backlinks:** SPA displays incoming page backlinks.
6565
- [x] **Playwright:** E2E smoke test covers demo login → home → page → groups → logout.
6666
- [x] **Package split:** `@deepnotes/session` split into `@deepnotes/session-core`, `@deepnotes/groups`, `@deepnotes/pages`, `@deepnotes/billing`, `@deepnotes/realtime`. Session package now has 8 files (down from 57).
67-
- [x] **Marketing site:** `apps/marketing` has routable pages for `/`, `/pricing`, `/whitepaper`, `/help`, `/privacy-policy`, `/terms-of-service`. Build outputs 14 static HTML files (including 8 help article sub-routes). `pnpm lint`, `pnpm typecheck`, `pnpm build` pass with 0 errors.
67+
- [x] **Marketing site:** `apps/marketing` has routable pages for `/`, `/pricing`, `/whitepaper`, `/help`, `/privacy-policy`, `/terms-of-service`. Build outputs 20 static HTML files (including 14 help article sub-routes). `pnpm lint`, `pnpm typecheck`, `pnpm build` pass with 0 errors. Dark/light theme toggle, restored legacy assets (logo, whitepaper diagrams, use-case thumbnails), and Shadcn `Switch`/`Input` components integrated.
6868
- [ ] **Staging:** Hyperdrive + Postgres + Redis + WS proven in staging. Load test: 50 concurrent pages, p95 latency < 200 ms, row rate ≤ 20/page.
6969
- [x] **Scheduler:** Cron Trigger wired to `performScheduledCleanup` with integration test.
7070
- [ ] **Rollback plan:** Documented and rehearsed. Feature flag for REST-only collab fallback exists.

docs/restart-plan/phase-8-marketing.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ The product has a public-facing marketing site with SEO, onboarding funnel, and
6161

6262
## Exit criteria
6363

64-
- [x] `apps/marketing` builds and outputs static HTML for `/`, `/pricing`, `/whitepaper`, `/help`, `/privacy-policy`, `/terms-of-service`. (14 total routes including 8 help article sub-routes.)
64+
- [x] `apps/marketing` builds and outputs static HTML for `/`, `/pricing`, `/whitepaper`, `/help`, `/privacy-policy`, `/terms-of-service`. (20 total routes including 14 help article sub-routes.)
6565
- [x] Pricing page has working Stripe CTA that initiates checkout session. (Links to `VITE_WEB_APP_URL` where authenticated checkout flow lives.)
6666
- [x] Lighthouse SEO score ≥ 90 on homepage. (`<meta name="description">`, `<title>`, semantic headings, static HTML output.)
6767
- [x] No route is a placeholder or stub ("Coming soon" is not acceptable). (All pages have full content mirroring legacy marketing text.)
@@ -72,15 +72,17 @@ The product has a public-facing marketing site with SEO, onboarding funnel, and
7272

7373
| Page | File | Notes |
7474
|------|------|-------|
75-
| `/` | `src/pages/HomePage.vue` | Hero, 3 feature cards, 8 use-case emojis, bottom CTA. Content mirrors legacy homepage. |
76-
| `/pricing` | `src/pages/PricingPage.vue` | Basic/Pro plan cards, monthly/yearly toggle, feature checklists, CTA links to web app. |
77-
| `/whitepaper` | `src/pages/WhitepaperPage.vue` | Full legacy whitepaper content rendered with `marked`. Sticky section sidebar. |
78-
| `/help` | `src/pages/HelpPage.vue` | Article index with client-side search. 8 articles listed. |
79-
| `/help/:slug` | `src/pages/HelpArticlePage.vue` | 8 articles with content from legacy help pages. Static HTML generated for each slug via `includedRoutes`. |
75+
| `/` | `src/pages/HomePage.vue` | Hero, 3 feature cards, 8 use-case thumbnails (restored from legacy), bottom CTA. Content mirrors legacy homepage. |
76+
| `/pricing` | `src/pages/PricingPage.vue` | Basic/Pro plan cards, monthly/yearly Shadcn `Switch`, feature checklists, CTA links to web app. |
77+
| `/whitepaper` | `src/pages/WhitepaperPage.vue` | Full legacy whitepaper content rendered with `marked`. Sticky section sidebar. 4 legacy diagrams restored. |
78+
| `/help` | `src/pages/HelpPage.vue` | Article index with client-side search (Shadcn `Input`). 14 articles listed (6 legacy missing articles restored). |
79+
| `/help/:slug` | `src/pages/HelpArticlePage.vue` | 14 articles with content from legacy help pages. Static HTML generated for each slug via `includedRoutes`. |
8080
| `/privacy-policy` | `src/pages/PrivacyPolicyPage.vue` | Legacy privacy policy text, sticky sidebar. |
8181
| `/terms-of-service` | `src/pages/TermsOfServicePage.vue` | Legacy ToS text, sticky sidebar. |
8282

83-
**Shared components:** `NavBar.vue`, `Footer.vue`, `DefaultLayout.vue`.
83+
**Shared components:** `NavBar.vue` (logo + theme toggle), `Footer.vue` (logo + socials), `DefaultLayout.vue`.
8484
**Router:** `vue-router` configured via `vite-ssg` in `src/router/index.ts`.
85-
**Styling:** Shadcn-vue `Button`, `Card` primitives + Tailwind CSS. `@tailwindcss/typography` plugin for markdown pages.
85+
**Styling:** Shadcn-vue `Button`, `Card`, `Switch`, `Input` primitives + Tailwind CSS. `@tailwindcss/typography` plugin for markdown pages.
86+
**Theme:** Dark/light toggle with `localStorage` persistence and `prefers-color-scheme` default.
8687
**Dependencies added:** `vue-router`, `marked`, `@tailwindcss/typography`.
88+
**Assets copied from legacy:** `white-logo-outline.webp`, 4 whitepaper diagrams, 8 use-case thumbnails, `favicon.ico`.

new-deepnotes/apps/marketing/index.html

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
<!DOCTYPE html>
2-
<html lang="en" class="dark">
2+
<html lang="en">
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66
<title>DeepNotes</title>
7+
<script>
8+
(function () {
9+
const stored = localStorage.getItem("deepnotes-theme");
10+
const prefersDark = window.matchMedia(
11+
"(prefers-color-scheme: dark)"
12+
).matches;
13+
if (stored === "dark" || (!stored && prefersDark)) {
14+
document.documentElement.classList.add("dark");
15+
}
16+
})();
17+
</script>
718
</head>
819
<body>
920
<div id="app"></div>
17.3 KB
Loading
15.5 KB
Loading
17.9 KB
Loading
14 KB
Loading
15.7 KB
Loading
35.3 KB
Loading
11.9 KB
Loading

0 commit comments

Comments
 (0)