<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harsh tank</title>
    <description>The latest articles on DEV Community by Harsh tank (@harshtankio).</description>
    <link>https://dev.to/harshtankio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1200869%2F86c53efd-4bdf-4a34-986f-57a9b00b59e5.jpeg</url>
      <title>DEV Community: Harsh tank</title>
      <link>https://dev.to/harshtankio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harshtankio"/>
    <language>en</language>
    <item>
      <title>Aruna — Maps for Photographers</title>
      <dc:creator>Harsh tank</dc:creator>
      <pubDate>Mon, 13 Jul 2026 04:30:54 +0000</pubDate>
      <link>https://dev.to/harshtankio/aruna-maps-for-photographers-4894</link>
      <guid>https://dev.to/harshtankio/aruna-maps-for-photographers-4894</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;Weekend Challenge: Passion Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Aruna — Maps for Photographers 📸
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tagline:&lt;/strong&gt; &lt;em&gt;Pin the place. Read the light. Shoot the frame.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Photography is more than finding a location—it's about finding the right light at the right moment.&lt;/p&gt;

&lt;p&gt;Existing map tools can tell you &lt;em&gt;where&lt;/em&gt; a place is, but they don't tell you &lt;strong&gt;how it will look through your lens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's why I built &lt;strong&gt;Aruna&lt;/strong&gt;, a lightweight AI-powered location scouting tool designed specifically for photographers.&lt;/p&gt;

&lt;p&gt;With Aruna, photographers can:&lt;/p&gt;

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

&lt;p&gt;Instead of simply giving a map, Aruna helps photographers visualize the shoot before they even leave home.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live App&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aruna-light.vercel.app/" rel="noopener noreferrer"&gt;https://aruna-light.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Try this flow
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Start Scouting&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;Kuari Pass&lt;/strong&gt; (or any location)&lt;/li&gt;
&lt;li&gt;Select a photography style (Landscape, Astro, Street, etc.)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate Aruna AI Briefing&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You'll receive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accurate light information&lt;/li&gt;
&lt;li&gt;Golden &amp;amp; blue hour timings&lt;/li&gt;
&lt;li&gt;Sun direction&lt;/li&gt;
&lt;li&gt;AI-generated scouting notes&lt;/li&gt;
&lt;li&gt;Photography inspiration images&lt;/li&gt;
&lt;li&gt;Suggested compositions and gear recommendations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Harshtank-io" rel="noopener noreferrer"&gt;
        Harshtank-io
      &lt;/a&gt; / &lt;a href="https://github.com/Harshtank-io/aruna" rel="noopener noreferrer"&gt;
        aruna
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Aruna — Photographer Location Scouting&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Built with Next.js 16 (App Router), React 19, Tailwind CSS 4, react-hook-form + Zod, and Google Gemini.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install
npm run dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open &lt;a href="http://localhost:3000" rel="nofollow noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; — it redirects to the dashboard.&lt;/p&gt;
&lt;p&gt;The app works &lt;strong&gt;without any API key&lt;/strong&gt;: briefings fall back to a local simulated preview so the scouting flow is always usable.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Free API key setup (optional, for live AI briefings)&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Get a free Gemini API key at &lt;a href="https://aistudio.google.com/apikey" rel="nofollow noopener noreferrer"&gt;aistudio.google.com/apikey&lt;/a&gt; — no billing required.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy &lt;code&gt;.env.example&lt;/code&gt; to &lt;code&gt;.env.local&lt;/code&gt; and paste your key:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;GEMINI_API_KEY=your-key-here&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Stretching the free tier&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Key pool rotation:&lt;/strong&gt; 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):&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;GEMINI_API_KEY=key1,key2,key3&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Model choice:&lt;/strong&gt;…&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Harshtank-io/aruna" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Repository:&lt;br&gt;
&lt;a href="https://github.com/Harshtank-io/aruna" rel="noopener noreferrer"&gt;https://github.com/Harshtank-io/aruna&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 16 (App Router)&lt;/li&gt;
&lt;li&gt;React 19&lt;/li&gt;
&lt;li&gt;Tailwind CSS v4&lt;/li&gt;
&lt;li&gt;MapLibre GL&lt;/li&gt;
&lt;li&gt;SunCalc&lt;/li&gt;
&lt;li&gt;React Hook Form&lt;/li&gt;
&lt;li&gt;Zod&lt;/li&gt;
&lt;li&gt;Google Gemini AI&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Turning a passion into a product
&lt;/h3&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build the Google Maps experience photographers actually need.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That meant the map couldn't just display a marker—it needed to understand the light.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;h3&gt;
  
  
  Interactive map
&lt;/h3&gt;

&lt;p&gt;Aruna uses &lt;strong&gt;MapLibre GL&lt;/strong&gt; with 3D terrain powered by free elevation data.&lt;/p&gt;

&lt;p&gt;Features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search any location&lt;/li&gt;
&lt;li&gt;Click anywhere to drop a pin&lt;/li&gt;
&lt;li&gt;Forward &amp;amp; reverse geocoding using Nominatim&lt;/li&gt;
&lt;li&gt;Smooth desktop experience&lt;/li&gt;
&lt;li&gt;Mobile-first fullscreen map with bottom drawer&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Accurate light calculations
&lt;/h3&gt;

&lt;p&gt;Using &lt;strong&gt;SunCalc&lt;/strong&gt;, Aruna calculates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sunrise&lt;/li&gt;
&lt;li&gt;Sunset&lt;/li&gt;
&lt;li&gt;Golden Hour&lt;/li&gt;
&lt;li&gt;Blue Hour&lt;/li&gt;
&lt;li&gt;Solar position&lt;/li&gt;
&lt;li&gt;Sun bearing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These values are generated mathematically and then injected into the AI prompt so every briefing is grounded in real-world data.&lt;/p&gt;




&lt;h3&gt;
  
  
  AI Scouting Brief
&lt;/h3&gt;

&lt;p&gt;Google Gemini generates a structured scouting guide that includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Location overview&lt;/li&gt;
&lt;li&gt;Lighting recommendations&lt;/li&gt;
&lt;li&gt;Best shooting angles&lt;/li&gt;
&lt;li&gt;Composition ideas&lt;/li&gt;
&lt;li&gt;Lens suggestions&lt;/li&gt;
&lt;li&gt;Camera settings&lt;/li&gt;
&lt;li&gt;Gear recommendations&lt;/li&gt;
&lt;li&gt;Access considerations&lt;/li&gt;
&lt;li&gt;Creative shooting ideas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI enhances the real astronomical data instead of replacing it.&lt;/p&gt;




&lt;h3&gt;
  
  
  Photography inspiration
&lt;/h3&gt;

&lt;p&gt;Rather than returning generic images, Gemini helps generate search queries that are then used against:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wikimedia Commons&lt;/li&gt;
&lt;li&gt;Openverse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This provides style-specific inspiration for categories such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Landscape&lt;/li&gt;
&lt;li&gt;Astro&lt;/li&gt;
&lt;li&gt;Street&lt;/li&gt;
&lt;li&gt;Portrait&lt;/li&gt;
&lt;li&gt;Wildlife&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Reliable free-tier AI
&lt;/h3&gt;

&lt;p&gt;To make development practical on free API limits, Aruna supports multiple Gemini API keys.&lt;/p&gt;

&lt;p&gt;If one key reaches a rate limit (429), it automatically rotates to the next.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;h3&gt;
  
  
  UI &amp;amp; Design
&lt;/h3&gt;

&lt;p&gt;The interface was intentionally kept calm and minimal.&lt;/p&gt;

&lt;p&gt;Inspired by modern editorial and Awwwards-style layouts, it features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean typography&lt;/li&gt;
&lt;li&gt;Botanical hero artwork&lt;/li&gt;
&lt;li&gt;Two-color visual system&lt;/li&gt;
&lt;li&gt;Minimal distractions&lt;/li&gt;
&lt;li&gt;Focus on the map and scouting workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to create a tool photographers would genuinely enjoy using before every shoot.&lt;/p&gt;




&lt;h2&gt;
  
  
  🟢 Best Use of Google AI
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;#googleai #webdev #showdev&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>Tips For writing blogs ?</title>
      <dc:creator>Harsh tank</dc:creator>
      <pubDate>Fri, 15 Dec 2023 06:27:39 +0000</pubDate>
      <link>https://dev.to/harshtankio/tips-for-writing-blogs--5h30</link>
      <guid>https://dev.to/harshtankio/tips-for-writing-blogs--5h30</guid>
      <description>&lt;p&gt;What are the tips to write a perfect blog on specific topic ?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>learning</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Will JS takeover the community ?</title>
      <dc:creator>Harsh tank</dc:creator>
      <pubDate>Wed, 13 Dec 2023 20:53:51 +0000</pubDate>
      <link>https://dev.to/harshtankio/will-js-takeover-the-community--1gcl</link>
      <guid>https://dev.to/harshtankio/will-js-takeover-the-community--1gcl</guid>
      <description></description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
    </item>
  </channel>
</rss>
