Free & Open Source
MIT licensed, lightweight, and easy to use in modern web projects.
Free. Lightweight. Developer-first.
OllowEditor helps JavaScript, MERN, and Python developers build clean, structured content with a simple and powerful editing experience for modern web applications.
MIT licensed, lightweight, and easy to use in modern web projects.
Create content using independent blocks like headings, paragraphs, lists, images, code, and embeds.
Store and render structured content without messy HTML parsing.
Simple JavaScript API, customizable tools, and easy integration.
Live Demo
Write, format, insert media, and export structured content directly from the demo.
NPM Package
Install OllowEditor in seconds and use it in modern JavaScript, React, Next.js, Node.js, NestJS, admin dashboards, CMS forms, and publishing workflows.
npm i @codefortify/olloweditor
import { useState } from "react";
import { OllowEditor } from "@codefortify/olloweditor/react";
import "@codefortify/olloweditor/style.css";
export default function App() {
const [content, setContent] = useState("");
return (
<OllowEditor
value={content}
onChange={setContent}
placeholder="Write your article..."
/>
);
}
Use the official React wrapper for controlled editor state and simple integration.
Load OllowEditor on the client side and use it safely in modern Next.js apps.
Send HTML output to Express, Node.js, NestJS, Django, Laravel, or any API backend.
Use OllowEditor inside dashboards, content panels, blog forms, and publishing systems.
Pip Package
Use OllowEditor in Django, Django REST Framework, Flask, and FastAPI without managing a separate npm asset pipeline.
The Python package ships the compiled OllowEditor browser bundle, stylesheet, and shared initialization script, then adds framework helpers for forms, templates, serializer fields, and static asset serving.
pip install olloweditor
pip install "olloweditor[django]"
pip install "olloweditor[drf]"
pip install "olloweditor[flask]"
pip install "olloweditor[fastapi]"
pip install "olloweditor[all]"
from django import forms
from olloweditor.integrations.django import OllowEditorWidget
from .models import Article
class ArticleForm(forms.ModelForm):
content = forms.CharField(
widget=OllowEditorWidget(
options={
"theme": "auto",
}
)
)
class Meta:
model = Article
fields = ["title", "content"]
from fastapi import FastAPI
from olloweditor.integrations.fastapi import mount_olloweditor
app = FastAPI()
mount_olloweditor(app)
Use OllowEditorWidget and OllowEditorField in Django forms, models, and admin workflows.
Accept OllowEditor-generated HTML through serializer fields and apply your own sanitizer when needed.
Use the Flask extension, asset blueprint, and Jinja helpers to add OllowEditor to server-rendered forms.
Mount packaged static assets and use template helpers for FastAPI-powered pages.
Structured Content
OllowEditor is designed for structured publishing workflows. Keep content predictable, portable, and ready for storage or rendering across your application stack.
{
"time": 1730000000000,
"blocks": [
{
"id": "ollow-title",
"type": "header",
"data": {
"text": "Welcome to OllowEditor",
"level": 2
}
},
{
"id": "ollow-paragraph",
"type": "paragraph",
"data": {
"text": "Create clean block-based content with a simple editor experience."
}
},
{
"id": "ollow-checklist",
"type": "checklist",
"data": {
"items": [
"Block-based editing",
"Clean JSON output",
"Developer-friendly API"
]
}
}
],
"version": "1.0.0"
}
Customization
Build an editing experience that matches your product instead of bending your product around the editor.
Create custom blocks for headings, paragraphs, images, galleries, embeds, code, lists, and more.
Format selected text with bold, italic, links, inline code, and custom inline actions.
Move, delete, convert, align, or configure individual content blocks.
A clean, modern editor experience for your next JavaScript, MERN, or Python project. Install from npm or pip, customize blocks, and ship structured content faster.
npm i @codefortify/olloweditor
pip install olloweditor