# firepad **Repository Path**: mirrors_jfromaniello/firepad ## Basic Information - **Project Name**: firepad - **Description**: Collaborative Text Editor Powered by Firebase - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-25 - **Last Updated**: 2026-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Visit [firepad.io](http://www.firepad.io/) for demo, examples, and embedding docs! Join our [Firepad Google Group](https://groups.google.com/forum/#!forum/firepad-io) to ask questions, request features, or share your Firepad apps with the community. Read on if you'd like to contribute to Firepad. ## Setting Up Your Environment Firepad uses [grunt](http://gruntjs.com/) to automate some build tasks (generating / minifying firepad.js, etc.). So before you get started, you'll need [node.js](http://nodejs.org/) installed. Then you can simply clone the repo, install the necessary node modules, and run grunt: git clone https://github.com/firebase/firepad.git cd firepad npm install sudo npm install -g grunt-cli grunt ## Source Code To get started, here are some highlights of the directory structure and notable source files: * `dist/` - output directory for all files generated by grunt (firepad.js, firepad-min.js, firepad.zip, etc.). * `examples/` - examples of embedding Firepad. * `font/` - icon font used for rich text toolbar. * `lib/` * `firepad.js` - Entry point for Firepad. * `text-operation.js`, `client.js` - Heart of the Operation Transformation implementation. Based on [ot.js](https://github.com/Operational-Transformation/ot.js/) but extended to allow arbitrary attributes on text (for representing rich-text). * `annotation-list.js` - A data model for representing annotations on text (i.e. spans of text with a particular set of attributes). * `rich-text-codemirror.js` - Uses AnnotationList to track annotations on the text and maintain the appropriate set of markers on a CodeMirror instance. * `firebase-adapter.js` - handles integration with Firebase (appending operations, triggering retries, presence, etc.). * `test/` - Jasmine tests for Firepad (many of these were borrowed from ot.js).