Il-Miġma’ is an AI-assisted Maltese lexical platform that combines a dictionary, morphology engine, root explorer, and learning workspace into one research-grade interface.
Il-Miġma’ ("the collection") is built for people who need more than basic definitions: linguists, language learners, educators, lexicographers, and developers building Maltese language tools.
- Learners who want dictionary entries with morphology, roots, IPA, and usage context.
- Researchers and linguists who need searchable Semitic root structure and derivational patterns.
- Teachers and course builders who need structured lexical data for drills and learning content.
- Contributors and editors who need an admin workflow for curating entries, roots, and suggestions.
- Developers who want to reuse lexical search and structured morphology through API endpoints.
- Dictionary search with exact, full-text, gloss, and word-form dimensions.
- Root explorer for Semitic consonantal roots, patterns (wiżen), and derived forms.
- Conjugation engine that uses root class + vowel sets for generated verb paradigms.
- Browse mode for discovery-based exploration beyond direct search.
- Learning surfaces such as course/blog pages and scaffolded lexical navigation.
- AI chatbot assistant for guided lexical lookup and user support.
- Admin workspace for content curation, relationships, and database tooling.
- Suggestion pipeline for community contribution and moderation.
/search— dictionary lookup/root-searchand/root/:id— root and pattern exploration/conjugator— morphology/conjugation exploration/chatbot— AI assistant surface/browse— exploratory lexical browsing/admin— editorial + data maintenance workspace/suggest— suggestion intake
- Frontend: React 19 + TypeScript + Vite + React Router + Tailwind CSS.
- Auth: Clerk.
- Backend: Cloudflare Pages Functions (
functions/api/*). - Database: Turso (libSQL / SQLite-compatible schema).
- AI integration: Gemini via
@google/generative-ai. - Storage: Cloudflare R2 integration support for audio and media workflows.
The linguistic model separates abstract morphology from surface forms:
rootsstore consonantal skeletons (e.g.k-t-b) and class metadata.patternsstore CV/wiżen templates.root_pattern_formsjoin roots + patterns into realizations.entriesstore the actual dictionary headwords and lexical attributes.definitions,phonetics,etymologies,dialect_variantslayer meaning and evidence.
This makes Il-Miġma’ both searchable for end users and reusable as structured lexical infrastructure.
For contributor-level docs, see:
Recommended: replace these with GIFs as workflows stabilize.
| Surface | Preview |
|---|---|
| Home | public/screenshots/home.png |
| Search | public/screenshots/search.png |
| Root Search | public/screenshots/root-search.png |
| Conjugator | public/screenshots/conjugator.png |
| Chatbot | public/screenshots/chatbot.png |
| Browse | public/screenshots/browse.png |
| Admin | public/screenshots/admin.png |
| Suggest | public/screenshots/suggest.png |
npm installCreate .env in the project root:
VITE_TURSO_URL=libsql://<your-db>.turso.io
VITE_TURSO_AUTH_TOKEN=<token>
VITE_CLERK_PUBLISHABLE_KEY=<clerk_publishable_key>
GEMINI_API_KEY=<gemini_key_if_using_chat>For wrangler pages dev (npm run dev:api), copy .dev.vars.example to .dev.vars and set Worker runtime vars:
TURSO_URL=libsql://<your-db>.turso.io
TURSO_AUTH_TOKEN=<token>
CLERK_SECRET_KEY=dummyfile:// database URLs are not supported by the Worker runtime. Use remote libsql:// or https:// when running the API locally with Wrangler.
npm run devnpm run dev:apinpm run import:dry
npm run import:alldocs/README.md— full docs indexdocs/data-model.md— contributor-oriented schema and relationshipsdocs/import-pipeline.md— spreadsheet → DB pipelinedocs/search-api.md—/api/searchparameters and examples