Squire

screenshot of Squire

The rich text editor for arbitrary HTML.

Overview

Squire is a lightweight HTML5 rich text editor that provides a robust solution for email composition and other applications requiring rich text formatting. At just 16KB after minification and gzip, it offers powerful cross-browser normalization without the overhead of dependencies. Designed with flexibility in mind, Squire preserves arbitrary HTML, allowing users to forward or quote emails while maintaining their original formatting—a feature that sets it apart from many contemporary editors.

With support for multiple levels of blockquotes and seamless integration into your own UI framework, Squire is ideal for developers looking for a customizable editing experience without the bloat of built-in toolbars or overlays. Its current use in leading applications like Fastmail, ProtonMail, and more illustrates its reliability and versatility in various settings.

Features

  • Lightweight Design: At only 16KB after minification and gzip, Squire is quick to load and does not burden your application with unnecessary dependencies.

  • Preserves HTML Formatting: Handles arbitrary HTML proficiently, allowing for the forwarding and quoting of emails without losing original formatting.

  • Flexible Integration: Easily integrated into your own UI framework, allowing you to replace a <textarea> and utilize a fully customizable interface.

  • Cross-Browser Support: Compatible with all reasonably recent browsers, though it does not support any version of Internet Explorer.

  • Multiple Instances: You can instantiate multiple Squire editors on the same page without issues, perfect for single-page applications.

  • Security Considerations: Offers guidelines to safely convert raw HTML into DOM nodes, helping to mitigate potential security risks.

  • Widely Used: Currently employed in production by various renowned services, showcasing its reliability and effectiveness in real-world applications.

  • Easy Setup: Installation via npm and simple usage instructions make it accessible for developers looking to implement a rich text editor quickly.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.