sharp-notes

byDheeraj

# βœ… COMPLETE MASTER PROMPT ### Notion Γ— Apple Notes Hybrid (Text + Handwriting on Same Page) ## 🎯 Product Goal Build a **world-class notes application** that combines **Notion-style inline rich text** with **Apple Notes-style handwriting**, where **text and handwriting coexist on the SAME infinite page**. The app must feel natural on **mobile, iPad, stylus, keyboard, and web**, with no mode confusion. --- ## 🧠 Core Editor Architecture (NON-NEGOTIABLE) ### Single Note = Single Page * Each note is **one continuous, infinite vertical page** * There is **no fixed page height** during editing * The page automatically expands as the user types or writes * Pages exist **ONLY during export or print**, not while editing --- ## ✍️ Text System (Notion-Style) ### Inline Rich Text ONLY * Text must be **inline rich text**, NOT canvas text boxes * Keyboard input should **never create draggable or floating text containers** * Text flows naturally line by line in document order ### Text Features * Paragraphs * Headings (H1–H4) * Bullet lists * Numbered lists * Todo / checkbox lists * Inline formatting: * Bold * Italic * Underline * Strikethrough * Highlight * Markdown shortcuts: * `#` β†’ heading * `-` β†’ bullet list * `1.` β†’ numbered list * `[]` β†’ todo * Slash command menu (`/`) for blocks * Cursor-based formatting (format applies while typing) --- ## ✍️ Handwriting System (Apple Notes-Style) ### Ink Layer * Handwriting is drawn on a **transparent ink layer above text** * Ink is **not text** * Ink is **not in boxes** * Ink supports: * Pencil * Pen * Highlighter * Eraser * Lasso select * Pressure sensitivity (if stylus supports it) * Palm rejection ### Anchoring (VERY IMPORTANT) * Every ink stroke is **anchored to the page and nearby text** * When text reflows, scrolls, zooms, or font size changes: * Ink moves and scales correctly with it * Ink and text must always stay visually aligned --- ## 🧩 Text + Handwriting Relationship * Text and handwriting must appear as **ONE unified page** * User should never feel they are switching editors * Typing β†’ creates text * Writing β†’ creates ink * Both can exist between the same lines * Undo/redo must work across both systems --- ## πŸ“œ Infinite Scroll Logic * The note has **no visible end** * When user reaches the bottom: * New vertical space is automatically added * Infinite scroll applies to: * Text * Ink * Templates * No β€œAdd Page” button * No page numbers during editing --- ## πŸ“„ Paper Templates (IMPORTANT) ### Template Behavior * Templates are **background patterns**, NOT fixed pages * Templates repeat infinitely as the note grows ### Supported Templates (minimum) 1. Blank 2. Ruled / Lined 3. Dotted 4. Grid 5. Cornell Notes 6. Checklist paper 7. Music staff 8. Dark paper ### Rules * Selecting a template does NOT limit page height * Template continues seamlessly while scrolling * Switching templates must NOT break existing text or ink --- ## 🧭 Input-Based Auto Switching (NO MANUAL MODES) | Input | Behavior | | ---------- | ------------- | | Keyboard | Inline typing | | Stylus | Handwriting | | Finger (1) | Scroll | | Finger (2) | Undo | | Finger (3) | Redo | User should never manually switch between text and handwriting modes. --- ## 🧰 Toolbar Rules ### Text Toolbar (when keyboard active) * Bold * Italic * Underline * List * Numbered list * Todo * Heading * Font size * Font family * Text color ### Ink Toolbar (when stylus active) * Pen * Pencil * Highlighter * Eraser * Lasso * Stroke size * Color picker ❌ NO β€œCreate Text Box” button ❌ NO draggable text containers --- ## πŸ“€ Export & Download System (CRITICAL) ### Export Formats * PDF (multi-page, paginated during export) * PNG / JPEG (single page snapshot) * Markdown (text only) * ZIP (entire notebook including ink as SVG/JSON) ### Export Rules * During export: * Infinite page is sliced into A4 / Letter pages * Text + ink are flattened together * Paper templates render correctly per page * During editing: * No page boundaries exist --- ## 🧠 Data Model (High Level) * One note document contains: * Rich text blocks (structured) * Ink strokes (anchored with position metadata) * Text and ink are saved together as part of the same note * Offline-first with sync support --- ## πŸ›‘ What is STRICTLY FORBIDDEN * Canvas text boxes * Draggable text objects * Separate handwriting pages * Fixed page height during editing * Manual β€œswitch to text mode” * Whiteboard-style behavior --- ## 🏁 Success Criteria The app should feel like: > β€œI’m writing on a real notebook where typing and handwriting just work together.” If the user ever sees: * An orange text boundary * A movable text box * Separate text/handwriting screens ❌ The implementation is WRONG. --- ## βœ… Final One-Line Guarantee > β€œThe editor renders inline rich text and anchored handwriting on the same infinite page, with paper templates repeating seamlessly and page boundaries applied only during export.”

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirement Document

System Requirements Document (SRD)

Project Name: sharp-notes

1. Introduction

The sharp-notes project is a cutting-edge notes application designed to revolutionize how students at all levels interact with their study materials. By combining the structured clarity of Notion-style inline rich text with the natural fluidity of Apple Notes-style handwriting, sharp-notes creates a seamless, infinite canvas where text and handwriting coexist effortlessly.

This document outlines the system requirements for sharp-notes, ensuring the application meets the needs of its target audience β€” students in India and beyond. The app is designed to feel natural across mobile devices, tablets, styluses, keyboards, and web platforms, with no mode confusion.

Page 1 of 9

2. System Overview

sharp-notes is a hybrid notes application that integrates rich text editing and handwriting on a single infinite page. It is optimized for students who need to take notes during lectures, organize study materials, and export their work in various formats. The app supports a variety of input methods, including keyboards, styluses, and touch gestures, ensuring a smooth and intuitive experience.

Key features include:

  • Infinite scrolling pages with seamless integration of text and handwriting.
  • Auto-switching between input modes based on the device or tool in use.
  • A rich library of paper templates tailored for academic use.
  • Export options for PDF, Markdown, and other formats.
  • Offline-first functionality with sync support for cloud storage.

The system is designed to be lightweight, responsive, and accessible across devices, ensuring students can focus on their learning without distractions.

3. Functional Requirements

Page 2 of 9

As a user, I should be able to:

  • Create a new note with infinite scrolling.
  • Type inline rich text with support for headings, lists, and markdown shortcuts.
  • Write using a stylus with tools like pen, pencil, highlighter, and eraser.
  • Undo and redo actions using touch gestures.
  • Select and switch between various paper templates (e.g., ruled, grid, Cornell Notes).
  • Export notes in PDF, PNG, Markdown, or ZIP formats.
  • Sync notes across devices while retaining offline functionality.
  • Use a slash command menu (/) to insert blocks like headings or lists.
  • Format text using a toolbar with options for bold, italic, underline, and more.
  • Anchor handwriting to text so it scales and moves correctly during edits.
  • Switch seamlessly between typing, handwriting, and scrolling without manual mode changes.

4. User Personas

Page 3 of 9

1. Primary User: Student

  • Description: Students at all levels (school, college, postgraduate) who need a versatile tool for note-taking, organizing study materials, and preparing for exams.
  • Goals:
    • Take quick, organized notes during lectures.
    • Combine typed text with handwritten diagrams or annotations.
    • Export notes for printing or sharing with peers.
  • Pain Points:
    • Switching between apps for typing and handwriting.
    • Losing formatting or alignment when editing notes.

2. Secondary User: Educator

  • Description: Teachers or professors who want to prepare lecture notes or provide annotated feedback on student submissions.
  • Goals:
    • Create structured notes with diagrams and annotations.
    • Share notes or templates with students.
  • Pain Points:
    • Limited tools for combining text and handwriting.

5. Visuals Colors and Theme

Page 4 of 9

Color Palette

The sharp-notes app will use a modern, academic-inspired color scheme that is both calming and conducive to focus.

  • Background: #F9F7F3 (Soft Ivory)
  • Surface: #FFFFFF (Pure White)
  • Text: #2E2E2E (Deep Charcoal)
  • Accent: #4A90E2 (Academic Blue)
  • Muted: #B0BEC5 (Cool Gray)

This palette ensures high readability and a professional yet approachable aesthetic.

6. Signature Design Concept

Page 5 of 9

Interactive Infinite Canvas with Dynamic Anchoring

The homepage of sharp-notes will immediately immerse users in an infinite canvas that feels alive. Imagine opening the app to a subtle animation of a blank sheet of paper extending infinitely downward, with a faint academic grid pattern that adjusts as you scroll.

  • Dynamic Anchoring: As users type or write, their content dynamically anchors to the page, with smooth animations ensuring text and handwriting stay perfectly aligned.
  • Micro-Interactions:
    • When switching tools (e.g., pen to highlighter), the toolbar icons will animate with a subtle bounce.
    • Undo/redo gestures will create a ripple effect on the canvas, visually confirming the action.
  • Paper Templates: Users can swipe horizontally at the top of the screen to preview and select templates, with a live preview of how their content will look.
  • Ambient Background: A soft gradient subtly shifts throughout the day, providing a calming effect for users.

This design ensures that sharp-notes feels like a living, breathing notebook, making it an unforgettable experience for students.

Page 6 of 9

7. Non-Functional Requirements

  • Performance: The app must load within 2 seconds on all supported devices.
  • Scalability: Support up to 10,000 notes per user without performance degradation.
  • Accessibility: Fully compatible with screen readers and other accessibility tools.
  • Security: All data must be encrypted during transmission and at rest.
  • Localization: Support for English and Hindi, with the ability to add more languages.
  • Cross-Platform: Fully functional on iOS, Android, and web browsers.

8. Tech Stack

Frontend

  • React for Web
  • React Native for Mobile App

Backend

  • Python
  • FastAPI

Database

  • MySQL (with Alembic for migrations)
Page 7 of 9

AI Models

  • GPT 5.4 for user-friendly responses
  • Claude 4.6 Opas for academic or coding work

AI Tools

  • LangChain
  • LiteLLM for LLM routing

Orchestration

  • Docker for local development
  • Kubernetes for server-side orchestration

9. Assumptions and Constraints

Assumptions

  • Students will primarily use the app on tablets and mobile devices with stylus support.
  • Users will have access to stable internet for syncing but may work offline temporarily.
  • Exported notes will be used for printing or sharing in academic settings.
Page 8 of 9

Constraints

  • The app must not include features like draggable text boxes or separate handwriting pages.
  • The infinite page must remain seamless during editing, with no visible page boundaries.
  • The app must comply with data protection regulations in India.

10. Glossary

  • Rich Text: Text that includes formatting like bold, italic, and headings.
  • Ink Layer: The transparent layer where handwriting is drawn.
  • Anchoring: The process of linking handwriting to nearby text so they move and scale together.
  • Infinite Canvas: A page with no fixed height that expands as content is added.
  • Paper Templates: Background patterns like ruled or grid paper that repeat infinitely.

This concludes the updated System Requirements Document for sharp-notes.

Page 9 of 9

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

No user flows yet.

The User Flow Agent will generate per-persona navigation diagrams after SRD updates.

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

No user flows yet.

The User Flow Agent will generate per-persona navigation diagrams after SRD updates.