Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions docs/marketing/hooks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Landing Page Hook Variants

## 1. Save the Line

- Target audience: Busy readers who save long articles.
- Pain: Good lines get lost after the tab is closed.
- Promise: Save the article, mark the best parts, and keep notes beside it.
- CTA: Save your next article.

## 2. Notes While You Read

- Target audience: Students, founders, and curious readers.
- Pain: Notes live in one app. Articles live in another.
- Promise: Read, highlight, and write notes in one place.
- CTA: Try it with one article.

## 3. Build a Reading Trail

- Target audience: People who read for work or study.
- Pain: It is hard to find why an article mattered later.
- Promise: Keep each article with the notes that made it useful.
- CTA: Start a small reading trail.

## 4. Stop Losing Ideas

- Target audience: Readers who learn from the web.
- Pain: A smart idea is easy to forget after lunch.
- Promise: Capture the idea while the article is open.
- CTA: Capture one idea now.

## 5. Read, Mark, Remember

- Target audience: People with many saved links.
- Pain: Saved links pile up, but notes do not.
- Promise: Turn a saved link into a marked-up page with clear notes.
- CTA: Mark up your next link.
2 changes: 1 addition & 1 deletion src/components/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ export function Navbar() {
className="inline-flex items-center gap-2 rounded-lg border border-zinc-800 bg-zinc-900 px-3 py-2 text-sm font-medium text-zinc-100 transition-colors hover:bg-zinc-800"
>
<LogIn className="h-4 w-4" />
Sign in
Sign in to sync
</Link>
)}
</div>
Expand Down
4 changes: 2 additions & 2 deletions src/pages/AboutPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ export default function AboutPage() {
return (
<main className="mx-auto max-w-3xl px-4 py-12 text-sm leading-7">
<Link to="/" className="text-xs text-stone-500 hover:underline">
← Web Annotator
← Library Reader
</Link>
<h1 className="mt-3 text-3xl font-bold tracking-tight">About</h1>
<p className="mt-4">
Web Annotator is a personal research library. Paste any URL or upload a PDF; the article
Library Reader is a personal research library. Paste any URL or upload a PDF; the article
body gets cleaned, indexed, and made annotatable. A Chrome extension does the same with one
click from any page.
</p>
Expand Down
6 changes: 3 additions & 3 deletions src/pages/PrivacyPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default function PrivacyPage() {
return (
<main className="mx-auto max-w-3xl px-4 py-12 text-sm leading-7">
<Link to="/" className="text-xs text-stone-500 hover:underline">
← Web Annotator
← Library Reader
</Link>
<h1 className="mt-3 text-3xl font-bold tracking-tight">Privacy</h1>
<p className="mt-4 text-xs text-stone-500">Last updated: 2026-05-15.</p>
Expand All @@ -24,8 +24,8 @@ export default function PrivacyPage() {
<li>No third-party tracking pixels or marketing tags.</li>
<li>No selling of library data.</li>
<li>
The Chrome extension does not collect telemetry; it only talks to your configured Web
Annotator backend.
The Chrome extension does not collect telemetry; it only talks to the Library Reader app
you connect it to.
</li>
</ul>

Expand Down
10 changes: 8 additions & 2 deletions src/pages/WelcomePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export default function WelcomePage() {
<div className="mx-auto max-w-5xl px-6 py-20 text-center md:py-28">
<span className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-1 text-xs font-medium text-gray-300">
<BookOpen className="h-3.5 w-3.5" />
Web Annotator
Library Reader
</span>
<h1 className="mx-auto mt-6 max-w-3xl text-4xl font-bold tracking-tight text-balance md:text-5xl">
Read, annotate, and chat with everything you save.
Expand All @@ -60,11 +60,17 @@ export default function WelcomePage() {
>
Open your library
</Link>
<Link
to="/sample"
className="inline-flex h-11 items-center rounded-md border border-white/15 px-5 text-sm font-medium text-gray-200 transition-colors hover:bg-white/5"
>
Try a sample doc
</Link>
<Link
to="/extension"
className="inline-flex h-11 items-center rounded-md border border-white/15 px-5 text-sm font-medium text-gray-200 transition-colors hover:bg-white/5"
>
Get the Chrome extension
Chrome extension setup
</Link>
</div>
<p className="mt-4 text-xs text-gray-500">
Expand Down
4 changes: 4 additions & 0 deletions wrangler.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ assets = { directory = "dist", binding = "ASSETS", run_worker_first = ["/api/*",
[placement]
mode = "smart"

routes = [
{ pattern = "reader.sassmaker.com/*", zone_name = "sassmaker.com" }
]

[observability]
enabled = true
head_sampling_rate = 0.1
Expand Down