Free. Lightweight. Developer-first.

A Free, Block-Style Editor with Clean JSON Output

OllowEditor helps JavaScript, MERN, and Python developers build clean, structured content with a simple and powerful editing experience for modern web applications.

npm package pip package JavaScript Python MERN Django Flask FastAPI

Free & Open Source

MIT licensed, lightweight, and easy to use in modern web projects.

Block-Based Editing

Create content using independent blocks like headings, paragraphs, lists, images, code, and embeds.

Clean JSON Output

Store and render structured content without messy HTML parsing.

Developer Friendly

Simple JavaScript API, customizable tools, and easy integration.

Live Demo

Try OllowEditor

Write, format, insert media, and export structured content directly from the demo.

NPM Package

Built for JavaScript & MERN Stack Developers

Install OllowEditor in seconds and use it in modern JavaScript, React, Next.js, Node.js, NestJS, admin dashboards, CMS forms, and publishing workflows.

Install from npm
npm i @codefortify/olloweditor
React usage
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..."
    />
  );
}

React Ready

Use the official React wrapper for controlled editor state and simple integration.

Next.js Compatible

Load OllowEditor on the client side and use it safely in modern Next.js apps.

Backend Friendly

Send HTML output to Express, Node.js, NestJS, Django, Laravel, or any API backend.

CMS & Admin Forms

Use OllowEditor inside dashboards, content panels, blog forms, and publishing systems.

Pip Package

OllowEditor for Python

Use OllowEditor in Django, Django REST Framework, Flask, and FastAPI without managing a separate npm asset pipeline.

Install from pip

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.

Python Django DRF Flask FastAPI pip package
pip install olloweditor
Django
pip install "olloweditor[django]"
Django REST Framework
pip install "olloweditor[drf]"
Flask
pip install "olloweditor[flask]"
FastAPI
pip install "olloweditor[fastapi]"
All integrations
pip install "olloweditor[all]"
Django quick start
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"]
FastAPI helper
from fastapi import FastAPI
from olloweditor.integrations.fastapi import mount_olloweditor

app = FastAPI()
mount_olloweditor(app)

Django Forms & Admin

Use OllowEditorWidget and OllowEditorField in Django forms, models, and admin workflows.

Django REST Framework

Accept OllowEditor-generated HTML through serializer fields and apply your own sanitizer when needed.

Flask Integration

Use the Flask extension, asset blueprint, and Jinja helpers to add OllowEditor to server-rendered forms.

FastAPI Helpers

Mount packaged static assets and use template helpers for FastAPI-powered pages.

Structured Content

Clean JSON Output

OllowEditor is designed for structured publishing workflows. Keep content predictable, portable, and ready for storage or rendering across your application stack.

  • No messy HTML parsing
  • Easy to validate and transform
  • Friendly for APIs, databases, and front-end rendering
{
  "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

API is part of the workflow

Build an editing experience that matches your product instead of bending your product around the editor.

Block Tools

Create custom blocks for headings, paragraphs, images, galleries, embeds, code, lists, and more.

Inline Tools

Format selected text with bold, italic, links, inline code, and custom inline actions.

Block Tunes

Move, delete, convert, align, or configure individual content blocks.

Start building with OllowEditor

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