Skip to content

Commit 68e2581

Browse files
committed
feat: add SSR worker for public notes SEO
Fixes #47 - Add Cloudflare Worker for server-side rendering of /p/* routes - Generate full HTML with content for search engine indexing - Include SEO meta tags, Open Graph, Twitter Cards, JSON-LD schema - Strip sensitive data attributes (note IDs) from rendered content - Edge caching: 1hr browser, 24hr CDN - Update main README with SSR documentation reference
1 parent 3405c6a commit 68e2581

File tree

7 files changed

+1483
-3
lines changed

7 files changed

+1483
-3
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,12 @@ Available on iOS and Android with the same powerful features and encryption.
9898
- 🔄 **Auto-sync** - Changes to your note automatically update the public version
9999
-**Instant unpublish** - Remove public access at any time (hard delete)
100100
- 🛡️ **Security hardened** - DOMPurify sanitization, rate limiting, no internal IDs exposed
101+
- 🔍 **SEO optimized** - Server-side rendering for search engine indexing and social previews
101102

102103
> ⚠️ **Important:** Publishing a note bypasses end-to-end encryption. An unencrypted copy is stored on our servers and anyone with the link can view it. Use this feature only for content you intend to share publicly.
103104
105+
> 💡 **Optional:** For improved SEO on public notes, you can deploy the SSR worker. See [`worker/README.md`](./worker/README.md) for setup instructions.
106+
104107
### ⚡ Executable Code Blocks
105108

106109
![Execute Code Demo](https://github.com/typelets/typelets-app/blob/main/assets/execute-code-demo.gif)
@@ -418,6 +421,9 @@ typelets/
418421
│ │ └── encryption/ # Client-side encryption
419422
│ ├── types/ # TypeScript definitions
420423
│ └── App.tsx # Main App component
424+
├── worker/ # Cloudflare Worker for SSR (optional)
425+
│ ├── src/ # Worker source code
426+
│ └── README.md # SSR setup instructions
421427
├── public/ # Static assets
422428
├── nginx.conf.template # Nginx configuration
423429
├── vite.config.ts # Vite configuration with proxy

0 commit comments

Comments
 (0)