Hi everyone,
Instead of using heavy editor frameworks like Monaco or CodeMirror, I wanted to see how far I could push the native web platform.
So I built a full-featured web notepad entirely with Pure Vanilla JS and native DOM APIs (contenteditable, Selection, Range) with zero external dependencies.
Features built from scratch:
Column / Rectangular Selection: Alt + (shift) +Drag to select rectangular text blocks, type across multiple lines, and safely batch-edit.
Multi-cursor Navigation: Synchronized caret scanning that handles tabs, whitespaces, and line breaks without drift.
Single-container Markdown Preview: Direct inline preview without destroying the raw text or history stack.
Zero-latency: IndexedDB local caching for instant 0ms startup.
Live Demo:
https://app.qlp.jp/vanilla_pad/en/
https://app.qlp.jp/vanilla_pad/demo/
(Please Note: Rectangular selection, multi-cursor, and all keyboard shortcuts are designed for PC / Desktop use only. Also, some operations like saving are disabled in Demo Mode).
Feedback I’m looking for:
Column Selection Feel: Try holding Alt and dragging across text in the demo. Does it feel responsive and intuitive?
Cross-browser Quirks: I’ve worked hard to eliminate contenteditable quirks (like invisible zero-width characters), but I’d love to know if anything breaks on your browser (especially Safari/Firefox).
Edge Cases: Any strange behavior with Undo/Redo or multi-line typing?
Please be brutally honest. Any technical feedback, bug reports, or suggestions would be greatly appreciated!