Skip to content

feat: add Notes app with markdown editor and preview - #164

Open
G4brym wants to merge 3 commits into
mainfrom
feat/notes-app
Open

feat: add Notes app with markdown editor and preview#164
G4brym wants to merge 3 commits into
mainfrom
feat/notes-app

Conversation

@G4brym

@G4brym G4brym commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a Notes app to the dashboard — a markdown note-taking app alongside Files and Email. Notes are plain markdown files stored directly in the bucket under .r2-explorer/notes/, so all state lives in R2 and everything reuses the existing bucket APIs (no new worker endpoints).

  • Note list + editor with rendered markdown preview (marked + DOMPurify sanitized)
  • Create, edit/save (Save button or Ctrl/Cmd+S), and delete notes with unsaved-changes guards
  • Responsive mobile layout: full-width list, full-screen editor with a back button under 600px
  • Can be disabled via server config:
export default R2Explorer({ apps: { notes: { enabled: false } } });

When disabled, the sidebar button is hidden and /:bucket/notes redirects to the Files app. Documented in configuration.md.

Testing

  • 8 new Playwright E2E tests in packages/dashboard/e2e/notes.spec.ts (listing, opening, preview rendering, edit/save, create, duplicate-name rejection, mobile layout, delete) — all passing
  • Manually verified in Chrome on desktop and mobile viewports, including the disabled-config state (config flag flipped locally; not E2E-covered since the suite runs a single worker config)
  • Note: file-browsing and file-preview have 2 pre-existing E2E failures that also fail on clean main — unrelated to this PR

🤖 Generated with Claude Code

G4brym and others added 3 commits July 13, 2026 09:22
Notes are stored as markdown files in the bucket under .r2-explorer/notes/,
using only existing bucket APIs (no new worker endpoints or state stores).

- New Notes app in the sidebar with note list, editor and rendered
  markdown preview (marked + DOMPurify)
- Create, edit/save (Ctrl/Cmd+S) and delete notes
- E2E coverage in packages/dashboard/e2e/notes.spec.ts

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On screens under 600px the note list takes the full width, and opening
a note switches to a full-screen editor with a back button.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New optional config: R2Explorer({ apps: { notes: { enabled: false } } }).
When disabled, the Notes sidebar button is hidden and /:bucket/notes
redirects to the Files app.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
r2-explorer-docs ff5f2b7 Commit Preview URL

Branch Preview URL
Jul 13 2026, 09:12 AM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant