DEV Community

Cover image for Aruna — Maps for Photographers
Harsh tank
Harsh tank

Posted on

Aruna — Maps for Photographers

DEV Weekend Challenge: Passion Edition Submission

This is a submission for Weekend Challenge: Passion Edition

What I Built

Aruna — Maps for Photographers 📸

Tagline: Pin the place. Read the light. Shoot the frame.

Photography is more than finding a location—it's about finding the right light at the right moment.

Existing map tools can tell you where a place is, but they don't tell you how it will look through your lens.

That's why I built Aruna, a lightweight AI-powered location scouting tool designed specifically for photographers.

With Aruna, photographers can:

  • 📍 Drop a pin or search for any location
  • ☀️ See accurate golden hour, blue hour, sunrise, sunset, and sun direction
  • 🤖 Generate an AI scouting briefing tailored to the location
  • 🖼️ Discover visual inspiration based on photography styles like Landscape, Astro, Street, Wildlife, and Portrait

Instead of simply giving a map, Aruna helps photographers visualize the shoot before they even leave home.


Demo

🌐 Live App

https://aruna-light.vercel.app/

Try this flow

  1. Open Start Scouting
  2. Search for Kuari Pass (or any location)
  3. Select a photography style (Landscape, Astro, Street, etc.)
  4. Click Generate Aruna AI Briefing

You'll receive:

  • Accurate light information
  • Golden & blue hour timings
  • Sun direction
  • AI-generated scouting notes
  • Photography inspiration images
  • Suggested compositions and gear recommendations

Code

GitHub Repository

Aruna — Photographer Location Scouting

Map-centric scouting dashboard for photographers: capture a location, pick photography tags, and generate an AI briefing covering light windows, composition cues, gear suggestions, and access notes.

Built with Next.js 16 (App Router), React 19, Tailwind CSS 4, react-hook-form + Zod, and Google Gemini.

Getting Started

npm install
npm run dev
Enter fullscreen mode Exit fullscreen mode

Open http://localhost:3000 — it redirects to the dashboard.

The app works without any API key: briefings fall back to a local simulated preview so the scouting flow is always usable.

Free API key setup (optional, for live AI briefings)

  1. Get a free Gemini API key at aistudio.google.com/apikey — no billing required.

  2. Copy .env.example to .env.local and paste your key:

    GEMINI_API_KEY=your-key-here
    Enter fullscreen mode Exit fullscreen mode

Stretching the free tier

  • Key pool rotation: free-tier quota is per key. Provide several free keys comma-separated and Aruna automatically rotates to the next key when one hits its quota (429):

    GEMINI_API_KEY=key1,key2,key3
    Enter fullscreen mode Exit fullscreen mode
  • Model choice:

Repository:
https://github.com/Harshtank-io/aruna


How I Built It

Tech Stack

  • Next.js 16 (App Router)
  • React 19
  • Tailwind CSS v4
  • MapLibre GL
  • SunCalc
  • React Hook Form
  • Zod
  • Google Gemini AI

Turning a passion into a product

The goal was simple:

Build the Google Maps experience photographers actually need.

That meant the map couldn't just display a marker—it needed to understand the light.

Every pin becomes the source for real astronomical calculations, allowing the AI to produce useful recommendations based on actual lighting conditions instead of hallucinated times.


Interactive map

Aruna uses MapLibre GL with 3D terrain powered by free elevation data.

Features include:

  • Search any location
  • Click anywhere to drop a pin
  • Forward & reverse geocoding using Nominatim
  • Smooth desktop experience
  • Mobile-first fullscreen map with bottom drawer

Accurate light calculations

Using SunCalc, Aruna calculates:

  • Sunrise
  • Sunset
  • Golden Hour
  • Blue Hour
  • Solar position
  • Sun bearing

These values are generated mathematically and then injected into the AI prompt so every briefing is grounded in real-world data.


AI Scouting Brief

Google Gemini generates a structured scouting guide that includes:

  • Location overview
  • Lighting recommendations
  • Best shooting angles
  • Composition ideas
  • Lens suggestions
  • Camera settings
  • Gear recommendations
  • Access considerations
  • Creative shooting ideas

The AI enhances the real astronomical data instead of replacing it.


Photography inspiration

Rather than returning generic images, Gemini helps generate search queries that are then used against:

  • Wikimedia Commons
  • Openverse

This provides style-specific inspiration for categories such as:

  • Landscape
  • Astro
  • Street
  • Portrait
  • Wildlife

Reliable free-tier AI

To make development practical on free API limits, Aruna supports multiple Gemini API keys.

If one key reaches a rate limit (429), it automatically rotates to the next.

If every key is exhausted, the application gracefully falls back to a locally generated scouting briefing while still using the real SunCalc data, ensuring the experience never completely fails.


UI & Design

The interface was intentionally kept calm and minimal.

Inspired by modern editorial and Awwwards-style layouts, it features:

  • Clean typography
  • Botanical hero artwork
  • Two-color visual system
  • Minimal distractions
  • Focus on the map and scouting workflow

The goal was to create a tool photographers would genuinely enjoy using before every shoot.


🟢 Best Use of Google AI

Google Gemini powers the intelligent scouting assistant by transforming accurate light data into practical, location-aware photography guidance. Instead of generating generic advice, the AI builds on deterministic astronomical calculations to produce meaningful recommendations photographers can actually use in the field.


Thanks for reading!

Building Aruna combined two passions—software engineering and photography. It was exciting to turn a personal workflow into a tool that helps photographers spend less time planning and more time creating.

#googleai #webdev #showdev

Top comments (0)