A fast, offline‑capable Burmese dream encyclopedia search app built with React, TypeScript, and Vite. It indexes JSON database and provides instant fuzzy search with keyboard navigation. Designed to work great on desktop and mobile and supports installation as a PWA.
(The project template was started with Vibe Coding in Lovable.dev)
ဆရာဖြိုး၏ အိပ်မက်အဘိဓာန် စာအုပ်ကို ကိုးကားသည်။
Powered by IndexedDB from a collection of JSON files. All JSON data are programmatically converted from the scans of the book "အိပ်မက်အဘိဓာန်" (over 400 pages) using GEMINI API with gemini-3-flash model. See the repo Dream Wiki Seeder
- Instant client‑side search (Fuse.js) over local JSON data
- Clean UI with shadcn/ui + Tailwind CSS
- Dark/light theme support (via
next-themes) - Client‑side routing (React Router)
- Offline support and installable PWA (vite-plugin-pwa)
- IndexedDB caching (Dexie) and smooth UX
- React, TypeScript, Vite
- Tailwind CSS, shadcn/ui, Lucide icons
- React Router, TanStack Query
- Fuse.js for fuzzy search
- Dexie (IndexedDB)
Prerequisites:
- Node.js 18+ and npm
Install and run locally:
git clone <YOUR_GIT_URL>
cd dream-wiki
npm install
npm run devBuild and preview production build:
npm run build
npm run previewLint:
npm run lintKey paths:
src/pages/Index.tsx– main page and layoutsrc/components/– UI components (search box, results, etc.)src/hooks/useSearch.ts– search logic using Fuse.jssrc/data/– local JSON datasets that power search (e.g.,က.json,ခ.json,မ.json,ဝ.json)public/– static assets; PWA icons/manifest are generated via plugin config
- Add or update JSON files under
src/data. Filenames may be Unicode (e.g., Burmese letters). Ensure your editor and OS preserve UTF‑8 filenames and file encodings. - Each JSON file should follow the same shape as existing ones so the search index remains consistent.
- This project uses
vite-plugin-pwato enable offline usage and “Install App”. - After running
npm run build, the service worker is generated. Make sure to serve thedistfolder over HTTPS when testing installability.
This is a static site – you can host the dist folder on any static host (Vercel, Netlify, GitHub Pages, Cloudflare Pages, S3, etc.).
General steps:
npm run build- Deploy the generated
dist/directory
GitHub Pages tip (Vite base path): set base in vite.config.ts to '/<repo-name>/' if deploying to https://<user>.github.io/<repo-name>/.
dev– start Vite dev serverbuild– create production buildbuild:dev– build with development mode flagspreview– preview the production build locallytest/test:watch– run unit testslint– run ESLint
Issues and PRs are welcome. Please run npm run lint and npm test before submitting changes.
This project is licensed under the MIT License. See LICENSE for details.