diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json
index 6e5d9eac..02e3d67d 100644
--- a/assets/javascripts/news.json
+++ b/assets/javascripts/news.json
@@ -1,4 +1,8 @@
[
+ [
+ "2021-02-26",
+ "New documentation: React Bootstrap"
+ ],
[
"2021-01-03",
"New documentation: OCaml"
diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee
index 0ff146b5..52b97fb7 100644
--- a/assets/javascripts/templates/pages/about_tmpl.coffee
+++ b/assets/javascripts/templates/pages/about_tmpl.coffee
@@ -686,6 +686,11 @@ credits = [
'2013-present Facebook Inc.',
'MIT',
'https://raw.githubusercontent.com/facebook/react/master/LICENSE'
+ ], [
+ 'React Bootstrap',
+ '2014-present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff',
+ 'MIT',
+ 'https://raw.githubusercontent.com/react-bootstrap/react-bootstrap/master/LICENSE'
], [
'ReactiveX',
'ReactiveX contributors',
diff --git a/lib/docs/filters/react_bootstrap/clean_html.rb b/lib/docs/filters/react_bootstrap/clean_html.rb
new file mode 100644
index 00000000..761e9617
--- /dev/null
+++ b/lib/docs/filters/react_bootstrap/clean_html.rb
@@ -0,0 +1,33 @@
+module Docs
+ class ReactBootstrap
+ class CleanHtmlFilter < Filter
+ def call
+ @doc = doc.at_css('main')
+
+ css('.flex-column.d-flex').remove
+ css('header').remove
+ css('.bs-example').remove
+
+ css('.position-relative pre').each do |node|
+ node.content = node.children.map(&:content).join("\n")
+ node.remove_attribute('style')
+ node['data-language'] = 'jsx'
+ node.parent.replace(node)
+ end
+
+ css('div, main, pre, h1, h2, h3, h4, h5, h6, a, p').each do |node|
+ node.delete 'class'
+ end
+ css('h1, h2, h3, h4, h5, h6').each do |node|
+ node.css('a').remove
+ node.content = node.content
+ end
+
+ css('#___gatsby, #gatsby-focus-wrapper').each do |node|
+ node.delete 'id'
+ end
+ doc
+ end
+ end
+ end
+end
diff --git a/lib/docs/filters/react_bootstrap/entries.rb b/lib/docs/filters/react_bootstrap/entries.rb
new file mode 100644
index 00000000..e0cc3d73
--- /dev/null
+++ b/lib/docs/filters/react_bootstrap/entries.rb
@@ -0,0 +1,23 @@
+module Docs
+ class ReactBootstrap
+ class EntriesFilter < Docs::EntriesFilter
+ def get_name
+ name = at_css('#rb-docs-content h1, #rb-docs-content h2').content
+ if name.end_with? '#'
+ name = name[0..-2]
+ end
+ name
+ end
+
+ def get_type
+ type = slug.split('/')[0..-2].join(': ')
+ if type == ''
+ type = slug.split('/').join('')
+ end
+ type.gsub!('-', ' ')
+ type = type.split.map(&:capitalize).join(' ')
+ type
+ end
+ end
+ end
+end
diff --git a/lib/docs/scrapers/react_bootstrap.rb b/lib/docs/scrapers/react_bootstrap.rb
new file mode 100644
index 00000000..80df2312
--- /dev/null
+++ b/lib/docs/scrapers/react_bootstrap.rb
@@ -0,0 +1,35 @@
+module Docs
+ class ReactBootstrap < UrlScraper
+ self.name = 'React Bootstrap'
+ self.slug = 'react_bootstrap'
+ self.type = 'simple'
+ self.release = '1.5.0'
+ self.base_url = 'https://react-bootstrap.github.io/'
+
+ self.links = {
+ home: 'https://react-bootstrap.github.io',
+ code: 'https://github.com/react-bootstrap/react-bootstrap'
+ }
+
+ html_filters.push 'react_bootstrap/entries', 'react_bootstrap/clean_html'
+
+ options[:skip] = %w(
+ react-overlays/
+ )
+
+ options[:replace_paths] = {
+ }
+
+ options[:trailing_slash] = true
+
+ options[:attribution] = <<-HTML
+ © 2014–present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff
+ Licensed under the MIT License (MIT).
+ HTML
+
+ def get_latest_version(opts)
+ doc = fetch_doc('https://react-bootstrap.github.io/', opts)
+ doc.at_css('#t-version>a').content.split()[0].strip[1..-1]
+ end
+ end
+end
diff --git a/public/icons/docs/react_bootstrap/16.png b/public/icons/docs/react_bootstrap/16.png
new file mode 100644
index 00000000..99a688b9
Binary files /dev/null and b/public/icons/docs/react_bootstrap/16.png differ
diff --git a/public/icons/docs/react_bootstrap/16@2x.png b/public/icons/docs/react_bootstrap/16@2x.png
new file mode 100644
index 00000000..368fdaec
Binary files /dev/null and b/public/icons/docs/react_bootstrap/16@2x.png differ
diff --git a/public/icons/docs/react_bootstrap/SOURCE b/public/icons/docs/react_bootstrap/SOURCE
new file mode 100644
index 00000000..1dd0687a
--- /dev/null
+++ b/public/icons/docs/react_bootstrap/SOURCE
@@ -0,0 +1 @@
+https://github.com/react-bootstrap/react-bootstrap/blob/master/www/static/logo.svg