diff --git a/templates/zerver/integrations/codebase.html b/templates/zerver/integrations/codebase.html
deleted file mode 100644
index 8a15e6422a..0000000000
--- a/templates/zerver/integrations/codebase.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
- First, create the streams you'd like to use for Codebase notifications. There will be two types of
- messages: commit-related updates and issue-related updates. After creating these streams (we suggest naming
- them codebase commits
and codebase issues
), make sure to subscribe all interested
- parties.
-
-
-
- Next, download and install our
- Python bindings and example scripts on the computer you'd like to run this mirroring script from.
-
-
-
- You will need your Codebase API Username. You can find it in the settings page of your account, under
- API Credentials
.
-
-
- Edit the Codebase and Zulip credentials in integrations/codebase/zulip_codebase_config.py
using
- your favorite editor:
-
-
-
-
-
CODEBASE_API_USERNAME = "zulip-inc/leo-franchi-15"
-CODEBASE_API_KEY = 0123456789abcdef0123456789abcdef
-
-ZULIP_USER = "codebase-bot@example.com"
-ZULIP_API_KEY = "0123456789abcdef0123456789abcdef"
-{% if api_site_required %}ZULIP_SITE ="{{ external_api_uri_subdomain }}"{% endif %}
-
-
-
- Before your first run of the script, you may optionally choose to
- configure it to mirror some number of hours of prior Codebase activity:
-
-
-
-
CODEBASE_INITIAL_HISTORY_HOURS = 10
-
-
-
- Now, simply run the api/integrations/codebase/zulip_codebase_mirror
script.
- If needed, this script may be restarted, and it will automatically resume from when
- it was last running.
-
-
-
- Congratulations! You're done!
Whenever you create a new project,
- commit, issue, deployment, or more, you'll get notifications in your selected streams
- with the associated information.
-
-
diff --git a/templates/zerver/integrations/codebase.md b/templates/zerver/integrations/codebase.md
new file mode 100644
index 0000000000..887ac50a47
--- /dev/null
+++ b/templates/zerver/integrations/codebase.md
@@ -0,0 +1,41 @@
+First, create the streams you’d like to use for Codebase notifications. There
+will be two types of messages: commit-related updates and issue-related updates.
+After creating these streams (we suggest naming them `codebase commits` and
+`codebase issues`), make sure to subscribe all interested parties.
+
+{!download-python-bindings.md!}
+
+You will need your Codebase API Username. You can find it in the settings page
+of your account, under `API Credentials`.
+
+Edit the Codebase and Zulip credentials in `integrations/codebase/zulip_codebase_config.py`
+using your favorite editor:
+
+```
+CODEBASE_API_USERNAME = "zulip-inc/leo-franchi-15"
+CODEBASE_API_KEY = 0123456789abcdef0123456789abcdef
+
+ZULIP_USER = "codebase-bot@example.com"
+ZULIP_API_KEY = "0123456789abcdef0123456789abcdef"
+{% if api_site_required %}ZULIP_SITE = "{{ external_api_uri_subdomain }}"{% endif %}
+```
+
+Before your first run of the script, you may optionally choose to configure it
+to mirror some number of hours of prior Codebase activity:
+
+```
+CODEBASE_INITIAL_HISTORY_HOURS = 10
+```
+
+
+Now, simply run the `api/integrations/codebase/zulip_codebase_mirror` script.
+If needed, this script may be restarted, and it will automatically resume from
+when it was last running.
+
+Whenever you create a new project, commit, issue, deployment, or more, you’ll
+get notifications in your selected streams with the associated information.
+
+{! congrats.md !}
+
+
+![](/static/images/integrations/codebase/001.png)
diff --git a/tools/check-templates b/tools/check-templates
index 15494a048c..25b4a49fea 100755
--- a/tools/check-templates
+++ b/tools/check-templates
@@ -105,7 +105,6 @@ def check_html_templates(templates, all_dups):
'templates/zerver/hello.html',
'templates/zerver/home.html',
'templates/zerver/integrations/index.html',
- 'templates/zerver/integrations/codebase.html',
'templates/zerver/login.html',
'templates/zerver/markdown_help.html',
'templates/zerver/register.html',
diff --git a/zerver/lib/integrations.py b/zerver/lib/integrations.py
index 8e6ced6499..36ea437675 100644
--- a/zerver/lib/integrations.py
+++ b/zerver/lib/integrations.py
@@ -256,7 +256,7 @@ WEBHOOK_INTEGRATIONS = [
INTEGRATIONS = {
'asana': Integration('asana', 'asana', doc='zerver/integrations/asana.html'),
'capistrano': Integration('capistrano', 'capistrano', display_name='Capistrano', doc='zerver/integrations/capistrano.md'),
- 'codebase': Integration('codebase', 'codebase', doc='zerver/integrations/codebase.html'),
+ 'codebase': Integration('codebase', 'codebase', doc='zerver/integrations/codebase.md'),
'email': EmailIntegration('email', 'email', doc='zerver/integrations/email.html'),
'git': Integration('git', 'git', doc='zerver/integrations/git.md'),
'google-calendar': Integration(