diff --git a/.gitignore b/.gitignore
index 7c0007dc9..230acae6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,6 +62,7 @@ plugins/*
!plugins/talk-plugin-toxic-comments
!plugins/talk-plugin-viewing-options
!plugins/talk-plugin-rich-text
+!plugins/talk-plugin-rich-text-coral
!plugins/talk-plugin-rich-text-pell
**/node_modules/*
diff --git a/plugins/talk-plugin-rich-text-coral/README.md b/plugins/talk-plugin-rich-text-coral/README.md
new file mode 100644
index 000000000..f953a65cd
--- /dev/null
+++ b/plugins/talk-plugin-rich-text-coral/README.md
@@ -0,0 +1,47 @@
+---
+title: talk-plugin-rich-text-coral
+permalink: /plugin/talk-plugin-rich-text-coral/
+layout: plugin
+plugin:
+ name: talk-plugin-rich-text-coral
+ depends:
+ - name: talk-plugin-rich-text
+ provides:
+ - Client
+---
+
+Enables rich text support client-side by using a simple RTE.
+
+## Installation
+
+Add `"talk-plugin-rich-text-coral"` to the `plugins.json` in your Talk
+installation. Remember to add this in the `client` property since this plugin
+only covers the client side. To add server support, please use
+[talk-plugin-rich-text](/talk/plugin/talk-plugin-rich-text).
+
+_Note: Ensure that you don't have any other plugins utilizing the
+`commentContent` slot, as it would result in duplicate comments._
+
+## How does this work?
+
+This plugin contains 2 important components:
+
+- The Editor (`./components/Editor.js`)
+- The Comment Content Renderer (`./components/CommentContent.js`)
+
+The editor component uses [contentEditable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Editable_content).
+
+If you check our `index.js` you will notice that we inject this editor in the
+`commentBox` slot. We do this to replace the core comment box with this one.
+
+Now, in order to render the new styled comments we need a comment renderer. For
+this task we will have to replace our core comment renderer by using the
+`commentContent` slot.
+
+If you are not familiar with GraphQL `client/index.js` will look complicated,
+but fear not! With those functions we specify what to expect from the server
+schema, how to perform optimistic updates and how keep the client store updated
+with the latest changes.
+
+We encourage you to see the files and check how easy is to build plugins! If you
+have any feedback, please let us know.
diff --git a/plugins/talk-plugin-rich-text-coral/client/.eslintrc.json b/plugins/talk-plugin-rich-text-coral/client/.eslintrc.json
new file mode 100644
index 000000000..c8a6db18a
--- /dev/null
+++ b/plugins/talk-plugin-rich-text-coral/client/.eslintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": "@coralproject/eslint-config-talk/client"
+}
diff --git a/plugins/talk-plugin-rich-text-coral/client/components/Button.css b/plugins/talk-plugin-rich-text-coral/client/components/Button.css
new file mode 100644
index 000000000..f9f1ba186
--- /dev/null
+++ b/plugins/talk-plugin-rich-text-coral/client/components/Button.css
@@ -0,0 +1,20 @@
+.button > i {
+ vertical-align: middle;
+}
+
+.button {
+ background-color: transparent;
+ padding: 3px;
+ border: none;
+ color: #4e4e4e;
+ margin-right: 3px;
+}
+
+.button:hover{
+ cursor: pointer;
+ border-radius: 3px;
+ background-color: #eae8e8;
+}
+.icon {
+ font-size: 20px;
+}
diff --git a/plugins/talk-plugin-rich-text-coral/client/components/Button.js b/plugins/talk-plugin-rich-text-coral/client/components/Button.js
new file mode 100644
index 000000000..330e3d993
--- /dev/null
+++ b/plugins/talk-plugin-rich-text-coral/client/components/Button.js
@@ -0,0 +1,29 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import styles from './Button.css';
+import { Icon, BareButton } from 'plugin-api/beta/client/components/ui';
+import cn from 'classnames';
+
+class Button extends React.Component {
+ render() {
+ const { className, icon, title, onClick } = this.props;
+ return (
+
/g, '
instead of
instead of