Back to all projects
OCRFull-Stack AIActive Development

Kaithi Script Annotation & Labeling Platform (congenial-funicular)

Custom-built annotation tool for Kaithi script document images - polygon-level text region labeling with a Maker-Checker review workflow.

Project Snapshot

Role

Solo Developer

Organization

Multilipi (in-house tool for Kaithi OCR project)

Timeline

2025 - Active Development

Status

Active Development

Deployment

Self-hosted

Tech Stack

Next.jsReact.jsTypeScriptPostgreSQLPrisma ORM

Impact & Results

  • Purpose-built annotation tool for Kaithi OCR dataset creation
  • Maker-Checker quality workflow for annotation accuracy
  • Open source: github.com/HemangTheHuman/congenial-funicular

A custom-built annotation tool (congenial-funicular) for Kaithi script document images. Designed to handle polygon-level text region labeling and character-level transcription with a robust Maker-Checker review workflow.

The Problem

The Kaithi OCR project required custom annotation of historical Kaithi script images, specifically polygon-level text region annotation coupled with character-level labeling. Existing open-source tools (like Label Studio or CVAT) lacked the script-specific customization needed for this workflow.

The Solution

A purpose-built web platform developed from scratch to handle bounding-box/polygon annotations for historical documents, complete with task management, a review pipeline, and role-based access.

Architecture & Implementation

Annotation Interface: Polygon/bounding-box annotation interface for text regions in document images.

Transcription Input: Character/word-level Kaithi script transcription input.

Workflow Management:

Task management system to assign images to annotators.

Maker-Checker review workflow (annotators submit → reviewers verify → approved or sent back).

Batch review and task import system.

Backend & Auth: PostgreSQL backend for storing annotations, task states, and user roles. Role-based access control (Annotator, Reviewer, Admin).

Data Used: Scanned historical Kaithi script documents.

Tech Stack: Next.js, React.js, PostgreSQL, Prisma/Drizzle ORM, TypeScript.

Challenges & Solutions

Custom Tooling: Building a performant custom canvas for intricate polygon annotations.

Concurrency: Managing concurrent database transactions for multiple annotators working simultaneously.

Review Flow: Implementing a strict maker-checker workflow state machine.

Key Takeaways

  • Advanced React state management and Canvas API usage.

  • PostgreSQL transaction handling and Prisma ORM optimization.

  • Full-stack system architecture from scratch.

Back to all projects