Skip to content

innovinitylabs/free-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

181 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Free Notes

Free Notes is an iPad-first notebook app focused on permanence and paper-like constraints.

Current Architecture (V2)

The app now uses a layered page engine with explicit input channels:

  • Finger channel: PDF text selection/copy and rich-text block editing.
  • Pencil channel: active-layer stroke input only.

This removes the previous conflict where PDF selection and Pencil drawing could not reliably work together.

Layer model

Each page has:

  • Base layer (original notes)
  • Optional revision layers (timestamped, toggleable, lockable)

Persistence

Notebook pages now persist a V2 layered payload (layerData) while keeping compatibility with legacy fields.

Migration

Older .nbk files are opened and migrated automatically:

  • legacy strokes -> base layer
  • legacy text annotations -> base text blocks
  • legacy images -> base image blocks
  • PDF page data -> PDF background reference

Key Features

  • Fixed-size notebook pages (A4/B5/A5)
  • Portrait single-page and landscape spread view
  • PDF page import into notebook timeline
  • PencilKit writing
  • Rich text paste with formatting preservation (RTFD/RTF/HTML/plain fallback)
  • Revision layer workflow for reading/revision passes
  • Stroke-only undo (no redo), configurable depth 1...5 (default 3)
  • Local-first .nbk document storage

Project Layout

  • /Users/valipokkann/Developer/free-notes/free_notes – iPad app project
  • /Users/valipokkann/Developer/free-notes/cursor_notebook_bootstrap.md – canonical product + architecture spec

Build

cd /Users/valipokkann/Developer/free-notes/free_notes
xcodebuild -project free_notes.xcodeproj -scheme free_notes -destination 'generic/platform=iOS Simulator' build

Roadmap

  1. Harden layered text/image lock UX
  2. Add explicit reading-mode timeline tools
  3. Zone-based manual indexing for memory workflows
  4. Optional sync phase (post-local-first maturity)

Notes

  • Target today: iPadOS 17+ (optimized for iPad 6 baseline)
  • Designed to remain compatible with newer iPad hardware and iPadOS releases

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages