Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Beautiful static documentation for your API

Subscribe to updates I use slate

Statistics on slate

Number of watchers on Github 2
Number of open issues 0
Main language JavaScript
Open pull requests 0+
Closed pull requests 0+
Last commit over 3 years ago
Repo Created over 3 years ago
Repo Last Updated about 3 years ago
Size 47.8 MB
Organization / Authorinstacart
Page Updated
Do you use slate? Leave a review!
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating slate for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Slate: API Documentation Generator
Build Status

Slate helps you create beautiful, intelligent, responsive API documentation.

Screenshot of Example Documentation created with Slate

The example above was created with Slate. Check it out at


  • Clean, intuitive design With Slate, the description of your API is on the left side of your documentation, and all the code examples are on the right side. Inspired by Stripe's and Paypal's API docs. Slate is responsive, so it looks great on tablets, phones, and even in print.

  • Everything on a single page Gone are the days when your users had to search through a million pages to find what they wanted. Slate puts the entire documentation on a single page. We haven't sacrificed linkability, though. As you scroll, your browser's hash will update to the nearest header, so linking to a particular point in the documentation is still natural and easy.

  • Slate is just Markdown When you write docs with Slate, you're just writing Markdown, which makes it simple to edit and understand. Everything is written in Markdown even the code samples are just Markdown code blocks.

  • Write code samples in multiple languages If your API has bindings in multiple programming languages, you can easily put in tabs to switch between them. In your document, you'll distinguish different languages by specifying the language name at the top of each code block, just like with Github Flavored Markdown.

  • Out-of-the-box syntax highlighting for almost 60 languages, no configuration required.

  • Automatic, smoothly scrolling table of contents on the far left of the page. As you scroll, it displays your current position in the document. It's fast, too. We're using Slate at TripIt to build documentation for our new API, where our table of contents has over 180 entries. We've made sure that the performance remains excellent, even for larger documents.

  • Let your users update your documentation for you By default, your Slate-generated documentation is hosted in a public Github repository. Not only does this mean you get free hosting for your docs with Github Pages, but it also makes it simple for other developers to make pull requests to your docs if they find typos or other problems. Of course, if you don't want to use GitHub, you're also welcome to host your docs elsewhere.

Getting started with Slate is super easy! Simply fork this repository and follow the instructions below. Or, if you'd like to check out what Slate is capable of, take a look at the sample docs.

Getting Started with Slate


You're going to need:

  • Linux or OS X Windows may work, but is unsupported.
  • Ruby, version 1.9.3 or newer
  • Bundler If Ruby is already installed, but the bundle command doesn't work, just run gem install bundler in a terminal.

Getting Set Up

  1. Fork this repository on Github.
  2. Clone your forked repository (not our original one) to your hard drive with git clone
  3. cd slate
  4. Initialize and start Slate. You can either do this locally, or with Vagrant:
# either run this to run locally
bundle install
bundle exec middleman server

# OR run this to run with vagrant
vagrant up

You can now see the docs at http://localhost:4567. Whoa! That was fast!

Now that Slate is all set up your machine, you'll probably want to learn more about editing Slate markdown, or how to publish your docs.

If you'd prefer to use Docker, instructions are available in the wiki.

Companies Using Slate

You can view more in the list on the wiki.

Need Help? Found a bug?

Read our contribution guidelines, and then submit an issue to the Slate Github if you need any help. And, of course, feel free to submit pull requests with bug fixes or changes.


Slate was built by Robert Lord while at TripIt.

Thanks to the following people who have submitted major pull requests:

Also, thanks to Sauce Labs for helping sponsor the project.

Special Thanks

slate questions on Stackoverflow (View All Questions)
  • Shopify Slate - prevent go to cart page on add to cart
  • Problems adding slick.js on a Slate Shopify theme
  • Slate Editor Plugin Stack Event Handling
  • How to use Slate documentation with Bash shell?
  • Python 3.5.2 pip setuptools installing slate from forked repository
  • How can i add bootstrap 4 scss in slate theme
  • How to change data in input-field for slate-react editor from anywhere
  • Slate: How to find when Editor has fully rendered
  • In installing slate exception: Command "python egg_info" failed with error code 1
  • YoutubeLive API: custom slate image for a scheduled video
  • Test slate-react using enzyme
  • HoloLens DirectX C# app: Is it possible to show some text on the slate?
  • Shopify variant swatches or radio buttons instead of dropdowns in Slate
  • if statement in liquid SCSS file (Slate/Shopfiy)
  • Shopify Slate variant not updating
  • How does one change the Browsersync port value in Shopify's Slate deploy-sync.js file?
  • Refresh syntax highlighting in slate
  • Shopify Slate won't build, zip or start?
  • Python 2.7: Error importing slate
  • Shopify's 'slate' package not running after installation
  • Building Shopify theme with 'slate build' gives Syntax Error
  • swagger widdershins slate html markup issue
  • HP slate 7 in restricted mode android app screen frozen when using View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
  • Shouldn't NSUserDefault be clean slate for unit tests?
  • Kubernetes clean slate
  • Combining Shopify's theme dev framework Slate with the CSS Framework Materialize
  • Using Nokogiri to generate static header list in Slate/Middleman
  • "Wiping the slate clean" in python
  • Which processes do I need to kill in order to get a clean slate with Rails?
  • bootswatch slate theme -- file upload "text" does not work
slate list of languages used
Other projects in JavaScript