diff --git a/opentech/apply/funds/blocks.py b/opentech/apply/funds/blocks.py
index d89b2c3187ca1632b87e37737bb70ddda45be479..0cbf96ae8a819c842fae22fc4a749b1a7e57c292 100644
--- a/opentech/apply/funds/blocks.py
+++ b/opentech/apply/funds/blocks.py
@@ -7,8 +7,10 @@ from django.utils.translation import ugettext_lazy as _
 from django.utils.text import mark_safe
 
 from wagtail.wagtailcore.blocks import StaticBlock
-from opentech.apply.stream_forms.blocks import FormFieldsBlock, FormFieldBlock
 
+from tinymce.widgets import TinyMCE
+
+from opentech.apply.stream_forms.blocks import FormFieldsBlock, FormFieldBlock, TextFieldBlock
 from opentech.apply.categories.blocks import CategoryQuestionBlock
 
 
@@ -20,7 +22,19 @@ def find_duplicates(items):
     return duplicates
 
 
+class RichTextFieldBlock(TextFieldBlock):
+    widget = TinyMCE(mce_attrs={
+        'elementpath': False,
+        'branding': False,
+    })
+
+    class Meta:
+        label = _('Rich text field')
+        icon = 'form'
+
+
 class CustomFormFieldsBlock(FormFieldsBlock):
+    rich_text = RichTextFieldBlock(group=_('Fields'))
     category = CategoryQuestionBlock(group=_('Custom'))
 
     def __init__(self, *args, **kwargs):
diff --git a/opentech/apply/funds/templates/funds/fund_type.html b/opentech/apply/funds/templates/funds/fund_type.html
index 4d3a7bbf85264de9a0cfb14f79cfa5970c8071e1..76ac0ea2b0fcc515d6b24fa6aa7b7a2da055fe87 100644
--- a/opentech/apply/funds/templates/funds/fund_type.html
+++ b/opentech/apply/funds/templates/funds/fund_type.html
@@ -1,10 +1,11 @@
 {% extends "base.html" %}
-{% load wagtailcore_tags %}
+{% load wagtailcore_tags static %}
 
 {% block content %}
     <h1>{% block title %}{{ page.title }}{% endblock %}</h1>
 
     <form action="" method="POST">
+        {{ form.media }}
         {% csrf_token %}
 
         {% if form.errors or form.non_field_errors %}
diff --git a/opentech/apply/stream_forms/blocks.py b/opentech/apply/stream_forms/blocks.py
index f3b0906e6770e5246c6487cdcb9ac760c6ae7e43..00ac5026f87581a245ec0fba0982fcd3ed656d24 100644
--- a/opentech/apply/stream_forms/blocks.py
+++ b/opentech/apply/stream_forms/blocks.py
@@ -230,6 +230,7 @@ class FileFieldBlock(OptionalFormFieldBlock):
 
 
 class FormFieldsBlock(StreamBlock):
+    text_markup = RichTextBlock(group=_('Other'), label=_('Paragraph'))
     char = CharFieldBlock(group=_('Fields'))
     text = TextFieldBlock(group=_('Fields'))
     number = NumberFieldBlock(group=_('Fields'))
@@ -242,7 +243,6 @@ class FormFieldsBlock(StreamBlock):
     datetime = DateTimeFieldBlock(group=_('Fields'))
     image = ImageFieldBlock(group=_('Fields'))
     file = FileFieldBlock(group=_('Fields'))
-    text_markup = RichTextBlock(group=_('Other'), label=_('Paragraph'))
 
     class Meta:
         label = _('Form fields')
diff --git a/opentech/settings/base.py b/opentech/settings/base.py
index 7405abda9515029499f8bded1239684cda298dbe..928d6dd05ef1158a90226ab773580689a1ca11de 100644
--- a/opentech/settings/base.py
+++ b/opentech/settings/base.py
@@ -55,6 +55,7 @@ INSTALLED_APPS = [
     'taggit',
     'django_extensions',
     'captcha',
+    'tinymce',
     'wagtailcaptcha',
     'django_tables2',
 
diff --git a/opentech/urls.py b/opentech/urls.py
index 9048a2eedac7677a8273b30a5ec743eb795a84b8..77fbcf1c9c77288cb42263b35e7a100a76c694b7 100644
--- a/opentech/urls.py
+++ b/opentech/urls.py
@@ -23,6 +23,7 @@ urlpatterns = [
     url('^', include(public_urls)),
     url('^', include(apply_urls)),
     url('^', include('social_django.urls', namespace='social')),
+    url(r'^tinymce/', include('tinymce.urls')),
 ]
 
 
diff --git a/requirements.txt b/requirements.txt
index 5399a07ac8b3ca01941552afeb116640eba3cff2..1921779a9b06174f743dc5f66270d8a6abec7506 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,11 +5,14 @@ Pillow==4.3.0
 django-extensions==1.7.4
 Werkzeug==0.11.11
 stellar==0.4.3
+django-tinymce4-lite==1.7.0
 wagtail-django-recaptcha==0.1
 uwsgidecorators==1.1.0
+
 mypy==0.550
 factory_boy==2.9.2
 wagtail_factories==0.3.0
+
 flake8
 
 social_auth_app_django==2.1.0