ShobdoNet (ঢবΰ§ΰ¦¦ΰ¦¨ΰ§ΰ¦) is a client-side Bengali lexical search application. It allows users to search any Bengali word and instantly explore all associated synsets, definitions, Part of Speech, Sense IDs, ILI codes, and lexical relations β all sourced directly from the UKC Bengali WordNet (ben.xml).
No database. No backend. No API calls. Pure XML + Next.js.
| Feature | Details |
|---|---|
| β‘ Real-time Search | 350ms debounced search across all writtenForm entries |
| π Full Synset Details | Synset ID, Sense ID, ILI, Part of Speech, Definition, Relations |
| π Lexical Relations | Hypernym, Hyponym, Meronym, Holonym, Antonym, and more |
| π¨ 3 Theme Modes | Light βοΈ Β· Forest πΏ Β· Dark π β all olive-green palette |
| π Smart Pagination | Default 15 rows Β· options 20 / 30 / 50 Β· First / Prev / Next / Last |
| βΊ Pagination Reset | One-click reset back to default page size |
| π Skeleton Loading | Animated shimmer cards while XML parses |
| π± Fully Responsive | Works on mobile, tablet, and desktop |
| πΎ Zero Backend | Reads directly from ben.xml in /public β deploy anywhere |
shobdonet/
βββ public/
β βββ ben.xml β Bengali WordNet XML (place here)
βββ src/
β βββ app/
β βββ layout.tsx β Root layout + metadata
β βββ loading.tsx β Next.js loading UI
β βββ page.tsx β Main page (all logic + UI)
βββ package.json
βββ next.config.mjs
βββ tsconfig.json
βββ README.md
- Node.js 18+
- npm or yarn
git clone https://github.com/YOUR_USERNAME/shobdonet.git
cd shobdonetcp /path/to/ben.xml public/ben.xml
β οΈ Critical β The app fetches/ben.xmlas a static asset at runtime. Without this file, search will not work.
npm installnpm run devOpen http://localhost:3000 in your browser.
npm run build
npm startThe project is live at https://shobdonet.netlify.app/.
- Push your project to GitHub (make sure
public/ben.xmlis committed). - Go to netlify.com β Add new site β Import an existing project.
- Connect your GitHub repo.
- Set build settings:
- Build command:
npm run build - Publish directory:
.next
- Build command:
- Install the Netlify Next.js plugin (if not already):
npm install @netlify/plugin-nextjs
- Add
netlify.tomlto project root:[build] command = "npm run build" publish = ".next" [[plugins]] package = "@netlify/plugin-nextjs"
- Click Deploy Site.
npm install -g netlify-cli
netlify login
netlify init
npm run build
netlify deploy --prodnpm install -g vercel
vercelOr push to GitHub and import at vercel.com β Next.js is auto-detected.
β οΈ Make surepublic/ben.xmlis committed to your repo before deploying to either platform.
All configurable constants are at the top of src/app/page.tsx:
// Pagination defaults β change these freely
const DEFAULT_PAGE_SIZE = 15;
const PAGE_SIZE_OPTIONS = [15, 20, 30, 50];
// Default theme on load: "light" | "dark" | "forest"
const [theme, setTheme] = useState<ThemeMode>("light");All three themes are derived from the base olive color rgb(87, 97, 57):
| Mode | Background | Accent | Feel |
|---|---|---|---|
| βοΈ Light | #f4f3ec warm parchment |
#576139 deep olive |
Editorial, readable |
| πΏ Forest | #192210 deep green |
#a8c870 bright sage |
Lush, immersive |
| π Dark | #0f110c near-black |
#8fa85a muted olive |
Moody, focused |
The lexical data comes from the UKC Bengali Lexicon v1.0 (ben.xml):
- Source: IndoWordNet by IIT Mumbai + Wiktionary + CogNet
- Language: Bengali (
ben) - License: CC BY-NC-SA 4.0
- Publisher: KnowDive β University of Trento
- Contact: gabor.bella@unitn.it
This project uses the dataset for educational/research purposes under the CC BY-NC-SA 4.0 license.
- Framework: Next.js 14 (App Router)
- Language: TypeScript 5
- Styling: Inline CSS-in-JS (no external CSS framework)
- Fonts: Cinzel Β· Noto Sans Bengali Β· JetBrains Mono (Google Fonts)
- XML Parsing: Browser-native
DOMParser - Hosting: Netlify
This project's code is open source. The data (ben.xml) is licensed under CC BY-NC-SA 4.0 by the University of Trento / KnowDive group.