Commit 536f7b5b authored by James Allen's avatar James Allen
Browse files


parent 6a1a965f
Contributing to ShareLaTeX
Thank you for reading this! If you've found a bug, or have a new feature in mind,
then here are some notes on how to best report issues or implement changes.
Please do not publish security vulnerabilities publicly until we've had a chance
to address them. All security related issues/patches should be sent directly to where we will attempt to address them quickly. If you're
unsure whether something is a security issue or not, then please be cautious and
contact us at first.
Reporting bugs
If you've found a bug then please:
1. Check if there is an existing issue for it. If there is then please add
any more information that you have, or give it a "+1".
2. If there is there is no issue, then please open one.
3. Please describe the issue as clearly as possible, including how to
reproduce the bug, which situations it appears in, what you expected to
happen, and what actually happens.
4. Please include a screenshot for front end issues if you can.
Pull Requests
We love pull requests, so be bold with them! Don't be afraid of going ahead
and changing something, or adding a new feature. If you're setting of to make
a big change then opening an issue (or commenting on an existing one) is the
best way to discuss your ideas first.
ShareLaTeX is a web based collaborative LaTeX editor. There are two versions of it,
the online version that anyone can sign up to at, and this open source
version which allows anyone to run a local installation of ShareLaTeX.
This repository pulls together all of the different services in ShareLaTeX's service
orientied architecture (SOA).
First, check out a local copy of this repository:
$ git clone
$ cd sharelatex
Next run `npm install` to download all of the dependencies and services
(you need Node.js installed, version 0.10.0 or later):
$ npm install
This can take a while, so now would be a good time for a cup of tea.
When that has finished, run ShareLaTeX with
$ grunt run
ShareLaTeX should now be running at http://localhost:3000.
You need a local instance of Redis and Mongodb running on their standard ports.
Other repositories
ShareLaTeX consists of many separate services, each with their own Node.js process
and source code repository. These are all downloaded when you run `npm install` and
they are run when you run `grunt run`.
The different services are:
The front facing web server that serves all the HTML pages, CSS and javascript
to the client. Also contains a lot of logic around creating and editing
projects, and account management.
Process updates that come in from the editor when users modify documents. Ensures that
the updates are applied in the right order, and that only one operation is modifying
the document at a time. Also caches the documents in redis for very fast but persistent
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment