Skip to content

About

Open source for the Odia language - tools, datasets, and AI resources for ଓଡ଼ିଆ

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

262 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenOdia logo

OpenOdia Hub

TanStack Start React 19 Tailwind CSS 4 Cloudflare Workers Bun MIT License

Open source for the Odia language — a growing constellation of tools, libraries,
and resources making Odia a first-class citizen in modern AI and software.

openodia.com


What is OpenOdia?

OpenOdia is the community hub for Odia language open-source. It was started by Soumendra Kumar Sahoo and brings together work from — OdiaGenAI, OdiaNLP, OdiaWikimedia, Odisha AI, Odia-Digital, and many independent maintainers.

It gathers the ecosystem into three places to look:

  • Tools & libraries — fonts, keyboards, transliterators, OCR, NLP toolkits and apps, curated from Awesome-Odia-AI and the Odia GitHub organisations
  • Models & datasets — a cached directory of Odia-tagged Hugging Face resources, with available license, size, and citation metadata
  • Community & learning — tutorials and talks from the community's channels, plus its meetups and conferences

Individual projects sit inside those pillars — including openodia (PyPI), a Python package of Odia text-processing utilities, and the @openodia YouTube channel. Note the name collision: OpenOdia is this hub; openodia is one package listed in it.

This repository contains the web application, server-side source adapters, public APIs, and Cloudflare Worker that bring everything together.

Explore the site

Page What you can do
Home Discover the collection, independent communities, featured videos, and contributors
Tools Search projects; combine source, category, organisation, and license filters
Models Find Odia-tagged models by task and license; inspect upstream metadata
Datasets Filter by task, size, and license; open resource details and available previews
Playground Run Python examples, try Odialang, or transliterate Odia into other Indic scripts
Tutorials Search community videos and browse channels and available playlists
Events Search and filter upcoming/live events and the historical timeline
Papers Explore Odia NLP research by task and year
Treebank Search annotated Odia sentences by word, part of speech, and dependency relation
Add your project Copy a submission template and find contribution routes
API Explore the public API reference and unified resource catalog
About Learn about the hub and its contributors

Use ⌘K / Ctrl+K for cross-site search and navigation. Papers, Treebank, API, and contribution links are also in the footer. The language toggle translates navigation, the home hero/opening/statistics, and the footer. Other page bodies and upstream content retain their original language. /translation-status reports the scoped inventory and native-review progress separately. Light/dark mode and language preferences are saved locally.

All Features Walkthrough

OpenOdia.com Features Walkthrough (in Odia)

OpenOdia.com Features Walkthrough (in Odia)

Resource cards offer license information and generated APA/BibTeX citations. Supported GitHub and Hugging Face resources have shareable /r/<kind>/<owner>/<name> detail pages. Check the original resource's license and preferred citation before reuse; being listed does not certify quality, accuracy, or unrestricted use.

Documentation


What belongs here

Everything open source in the Odia language. No AI gatekeeping. If it's Odia, open source, and useful — it belongs.

Category Examples
🎯 Language tools Transliterators, spell checkers, grammar tools, Unicode converters, OCR
🖋 Fonts & typography Open-source Odia fonts, IMEs, keyboard layouts
📚 Datasets Parallel corpora, monolingual texts, speech data, dictionaries
🧠 Models (open weight) STT, TTS, embedding, LLM fine-tunes for Odia
🐍 Libraries Python/JS/Rust packages for Odia text processing, dates, numerals
🎮 Applications Games, apps, utilities built for or in Odia
📖 Educational Language learning tools, interactive tutorials, grammar references
🔧 Infrastructure Odia localization tools, CI/CD for Odia projects, evaluation benchmarks

Tech Stack

Layer Technology
Framework TanStack Start
Routing TanStack Router
Data TanStack Query
UI React 19, Tailwind CSS 4, Radix UI, CSS motion
Icons Lucide React
Deployment Cloudflare Workers
Package mgr Bun

Getting started

Prerequisites

  • Bun 1.3+
  • Node.js 22+
  • just for the task recipes
  • Playwright Chromium for the browser suites: bunx playwright install --with-deps chromium
  • The pinned zizmor, when you change anything under .github/ or scripts/standards: see CONTRIBUTING.md

Run just doctor to check these versions.

Install

git clone https://github.com/soumendrak/openodia-hub.git
cd openodia-hub
bun install
bun run dev

The dev server starts at http://localhost:9090.

Available scripts

Command Purpose
bun run dev Start Vite dev server
bun run build Production build
bun run build:dev Development-mode build
bun run preview Serve the built Worker locally (after build)
bun run lint Run ESLint
bun run typecheck Type-check with the normal and strict configs
bun run test:e2e Build, then run the Playwright suite
just check Run every repository standard (CI's gate)
bun run format Format with Prettier
bun run test Run Vitest tests
bun run test:watch Watch tests
bun run test:coverage Full coverage report
bun run test:coverage:diff -- --staged Require 100% coverage of staged executable changes
bun run hooks:install Activate version-controlled Git hooks

How it works

TanStack Start renders directory pages using server loaders and shared source adapters in src/lib/sources/. Public APIs reuse those adapters. TanStack Query supports client-side data fetching such as command search and paginated events.

  • Directory: search, combined facets, clearable filters, and incremental display. Facet counts account for other active filters; selections within a facet use OR, while different facets use AND.
  • Resource details: upstream descriptions, source links, metadata, citations, catalog cross-references, and dataset previews when the upstream viewer supports them.
  • Playground: Python runs through Pyodide in the browser; Odialang compiles to JavaScript. Transliteration converts scripts, not meaning. Python dependencies download on first use, with additional packages loaded on demand. Outbound HTTP from user code can be restricted by browser CORS. Community model inference is planned.
  • Events: checked-in community history merges with paginated events backed by D1; dates determine status using IST. A Worker cron syncs events every six hours. A separate daily GitHub crawler proposes checked-in event updates through PRs.
  • Research: papers combine OpenAlex and arXiv; treebank search runs server-side against UD_Odia-ODTB. These are discovery aids, not exhaustive indexes.

See architecture and data for cache durations, source mappings, API endpoints, and deployment configuration. Counts and upstream availability change; this README deliberately avoids fixed catalog totals.


Design — Pattachitra

The home page and Tutorials route are a contemporary digital interpretation inspired by Odisha's Pattachitra painting tradition: a palm-leaf ochre ground, a vermilion painted panel, antique gold detail, and the exact Noto Sans Oriya ଓ (U+0B13) at monumental scale. It is not an artwork made by a traditional Pattachitra artist, and the independent communities the site links to are run by their own organisers, not by OpenOdia.

Where What
public/pattachitra/PROVENANCE.md Asset origins, references, licences, motion contract
public/pattachitra/ Frame, divider, exact glyph contour, OFL licence
src/styles/pattachitra.css The composition — every rule scoped to .patta
src/styles.css The palette, as tokens the whole site reads
src/components/OdiaGlyph.tsx The exact contour, plus its gold treatment
.lavish/homepage-revamp/ The approved mockup and its review history (local only — .lavish/ is gitignored)

Decorative motion is transform/opacity only, pauses on a hidden tab, and is removed entirely under prefers-reduced-motion. Verify in a browser with:

bun run dev &
just check-pattachitra          # widths, loaded art, peacock clearance, reduced motion

Deployment

bun run build
npx wrangler deploy

GitHub Actions runs lint, changed-line coverage, and build jobs in parallel. Deployment on main waits for all three. Same-repository PRs get a Worker version preview after those checks; previews share production KV. See deployment notes before configuring another Cloudflare account.


Contributing

See CONTRIBUTING.md for setup, conventions, and where to help.

Quick checklist before opening a PR (stage or stash every change first):

just check
bun run build
just e2e

Sponsor

If this project helps you, consider sponsoring my work on GitHub. Your support helps fund maintenance, documentation, and continued development.

License

MIT © Soumendra Kumar Sahoo

About

Open source for the Odia language - tools, datasets, and AI resources for ଓଡ଼ିଆ

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages