Back to Blog
Building Eortologio for Greek name day lookup
•Emmanouil Athanasopoulos•2 min read•287 words
React NativeLocalisationOffline-FirstCalendar
The Motivation Behind the Project
Eortologio is a practical mobile app for Greek name days, built to make calendar lookups quick and accessible. The app combines daily relevance with a structure that works in both Greek and English.
Core Features and Design Goals
- Calendar view: an easy way to browse name days by date.
- Name search: faster lookup when the user already knows the person or date they need.
- Holiday support: the app reflects a broader calendar context instead of only listing names.
- Bilingual Greek/English UI: useful for users who switch between both languages.
Technical Implementation
- Built a custom fuzzy search engine with Greek-Latin bidirectional transliteration that maps every Greek character (including accented vowels) to its Latin equivalents and vice versa, enabling users to search for Greek names using a Latin keyboard — with Levenshtein distance for typo tolerance up to 2 edits.
- Implemented an offline-first architecture that downloads the entire year's name day data month-by-month (with progress callbacks) into AsyncStorage, then serves all lookups from cache — with a fallback to live API calls when cache misses occur.
- Designed a notification scheduling system that registers daily local notifications for favorited names, with a context-driven favorites manager persisted in AsyncStorage and a bilingual notification content system (Greek/English).
The Technology Stack
Built with Expo SDK 54, React Native, and TypeScript using a classic navigation architecture (React Navigation Bottom Tabs). The search engine implements a custom Levenshtein-based fuzzy matcher with a full Greek-Latin transliteration table. The app uses React Query for API data fetching, AsyncStorage for offline caching of the entire year's data, and expo-notifications for scheduled name day reminders.
Final Reflections
This project shows how a focused idea can be genuinely useful when it is presented with care.