π€οΈ SkyNarrata π Built with Ohara
DEMO
The sky narrated... your daily story of weather and wonder.
SkyNarrata is a beautiful, responsive weather application that blends real-time meteorological data with astronomical insights, including moon phase calendars and NASAβs Astronomy Picture of the Day.
β¨ Features π Smart Weather Search Coordinate-based accuracy β get precise weather for any location
Disambiguate city names β e.g., Nassau, Bahamas vs. Nassau, Minnesota
Country codes & state info β for clear identification
Real-time autocomplete β search as you type
Smart filtering β dropdown with 15+ accurate city variations
π Astronomical Moon Phase Calendar 8-day lunar calendar with phase calculations
Moonrise/set times based on your coordinates
Educational phase descriptions and percentages
Timezone-aware calculations
Emoji visuals for each moon phase
π NASA Astronomy Picture of the Day Archive dating back to 1995
High-res images and videos with expert explanations
Custom date picker
Direct NASA links for further learning
π¨ Beautiful User Experience Cosmic themes with glassmorphism
Adaptive weather backgrounds
Fully responsive and WCAG accessible
Smooth animations and a dark theme for evening viewing
π Production-Ready Security API keys handled server-side
Environment variables for local and production use
Secure proxy routes
HTTPS ready
π οΈ Technology Stack Core Framework Next.js 14 β App Router architecture
TypeScript β strict typing for safer code
Tailwind CSS β utility-first styling
UI Components Custom glassmorphism components (Card, Button, Input, Select)
Responsive design from mobile to desktop
Accessible components (WCAG-compliant)
Subtle transitions and animations
APIs & Data Sources OpenWeatherMap β weather + geolocation
NASA APOD β public astronomy education API
Custom astronomical engine β moon phase calculations done locally
Hosting & Tools Replit β lightweight cloud deployment
Ohara β agent-based automation and UI/UX builder
Environment-based routing β secure .env setup for keys
π§± Project Structure lua Copy code skynarrata/ βββ public/ β βββ icon-192.png β βββ icon-512.png β βββ favicon.ico βββ src/ β βββ app/ β β βββ api/ β β β βββ nasa-apod/route.ts β β β βββ proxy/route.ts β β βββ moon-phases/page.tsx β β βββ apod/page.tsx β β βββ globals.css β β βββ layout.tsx β β βββ page.tsx β βββ components/ui/ β β βββ button.tsx β β βββ card.tsx β β βββ input.tsx β β βββ select.tsx β βββ lib/ β βββ weatherApi.ts β βββ nasaApi.ts β βββ utils.ts βββ .env.example βββ .env.local βββ .gitignore βββ package.json βββ tailwind.config.js βββ tsconfig.json βββ next.config.js βββ README.md π Quick Start Prerequisites Node.js 18 or higher
npm / yarn / pnpm
NASA API key
OpenWeatherMap API key (provided for dev)
π Unique Features Location Accuracy No more weather mismatches: Get local data based on exact coordinates
Supports ambiguous cities like Paris, Texas or St. Petersburg, Florida
Enhanced Search Fuzzy matching: handles "St Petersburg" and "Saint Petersburg"
Smart deduplication, shows unique results only
Clean dropdown UI with up to 8 results
Astronomical Education Phase explanations & moonrise/set
NASA media with scientific descriptions
Archive with 29+ years of photos
Emoji moon phases for every day
π± Mobile Optimization Mobile-optimized interactions, buttons, and pickers
Lazy loading and debounced API calls
Swipe gesture support
Fast initial load for slower connections
π§ Configuration Environment Variables ini Copy code
WEATHER_API_KEY=your-openweathermap-api-key NASA_API_KEY=your-nasa-api-key
NODE_ENV=development Customization Options Change background logic in getWeatherBackground()
Replace emojis in MOON_PHASE_EMOJIS
Adjust search limits and theme colors via config files
β Testing Checklist Test weather accuracy (e.g., Saint Petersburg, FL vs. RU)
Check moon phase calculations across timezones
Verify NASA APOD images on different dates
Test responsiveness on mobile devices
Confirm dropdown filtering and search behavior
π License Licensed under the MIT License. See LICENSE for full details.
π Acknowledgments NASA
OpenWeatherMap
Next.js
Tailwind CSS
Ohara β AI-assisted front-end builder
The astronomy and open source communities π