Meteoid is a premium, mobile-first weather application providing accurate and real-time weather forecasts for over 91,000 administrative regions (villages and districts) across Indonesia. This version represents a complete migration and modernization from the original Next.js project to Svelte 5.
- 🎯 Hyper-Local Accuracy: Search and pinpoint weather data down to the village/kelurahan level.
- 📡 Official Data Source: Direct integration with the BMKG (Badan Meteorologi, Klimatologi, dan Geofisika) open data API.
- 📍 Geolocation Support: Automatically detect your current administrative region for instant local updates.
- 💎 Premium Aesthetic: Modern dark-mode interface powered by OKLCH color tokens and Glassmorphism.
- 📱 Mobile First: Fully responsive design optimized for a seamless mobile experience.
- ⚡ Svelte 5 Powered: Leveraging the latest Runes and Snippets for high performance and reactivity.
- 📦 PWA Ready: Includes manifest and icon configurations for installability.
- SvelteKit & Svelte 5 (Runes, snippets)
- Tailwind CSS v4 (Modern styling with OKLCH support)
- Lucide Svelte (Icon library)
- TypeScript (Robust type safety)
- Vite (Next-gen frontend tooling)
- Node.js (v20 or later recommended)
- pnpm (preferred package manager)
-
Clone the repository and navigate to the
sveltedirectory:cd svelte -
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Build for production:
pnpm build
src/lib/components/: Modular UI components (Layout, UI, Weather, Location).src/lib/stores/: Reactive states using Svelte 5 runes (e.g.,regions.svelte.ts).src/routes/: File-based routing and API endpoints (/api/geocode,/api/regions).static/: Global assets likelogo.svg,favicon.ico, andmanifest.json.
Meteoid uses a custom design system defined in src/app.css:
- Colors: Pure OKLCH for high-vibrancy and consistent dark-mode perception.
- Effects:
.glassutility for sophisticated backdrop-blur and translucency. - Typography: Inter variable font for maximum readability.
- Creators: Ferdy Indra & Dimas Angkasa
- Data Source: BMKG Open Data
Not for commercial use. This project is intended for educational and personal informational purposes using public data from BMKG.