<?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>Forem: Lochan Acharya</title>
    <description>The latest articles on Forem by Lochan Acharya (@lochan13).</description>
    <link>https://forem.com/lochan13</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3263528%2F0f3f5e4b-e712-4723-817d-b85b4e6b9f5b.png</url>
      <title>Forem: Lochan Acharya</title>
      <link>https://forem.com/lochan13</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lochan13"/>
    <language>en</language>
    <item>
      <title>Borrowed Time : a real-time micro-availability radar for private communities #devchallenge #Weekend-2026-02-28</title>
      <dc:creator>Lochan Acharya</dc:creator>
      <pubDate>Mon, 02 Mar 2026 04:45:20 +0000</pubDate>
      <link>https://forem.com/lochan13/borrowed-time-a-real-time-micro-availability-radar-for-private-communities-devchallenge-30c6</link>
      <guid>https://forem.com/lochan13/borrowed-time-a-real-time-micro-availability-radar-for-private-communities-devchallenge-30c6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/weekend-2026-02-28"&gt;DEV Weekend Challenge: Community&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Community
&lt;/h2&gt;

&lt;p&gt;I built this for small, high-trust communities — startup teams, study groups, indie hacker circles, and remote friend groups — where people genuinely want to help each other but struggle with the friction of async messaging and over-scheduled meetings.&lt;/p&gt;

&lt;p&gt;The problem: you have a 5-minute question. You don't want to book a meeting. You don't want to blast a Slack message and wait 3 hours. You just want to know if someone is free right now.&lt;/p&gt;

&lt;p&gt;That's the community this is for: people who value each other's time enough to make micro-interactions easy.&lt;/p&gt;

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

&lt;p&gt;Borrowed Time — a real-time micro-availability radar for private communities.&lt;/p&gt;

&lt;p&gt;Members of a private group can broadcast short windows of availability (5, 10, or 15 minutes) on a live radar. Anyone in the community can see who's free and send a session request with one click. If accepted, a shared chat opens for both users automatically.&lt;/p&gt;

&lt;p&gt;Key features:&lt;/p&gt;

&lt;p&gt;🟢 Live radar — animated canvas showing all community members, color-coded by status in real time&lt;br&gt;
⏱️ Timed availability — set a 5/10/15 min window; it auto-expires back to offline when time's up&lt;br&gt;
📨 Session requests — send a request (Quick Chat, Call, Brainstorm, or Custom) with an optional message&lt;br&gt;
💬 Live chat — shared chat window opens on both sides the moment a session is accepted&lt;br&gt;
🔑 Private communities — create a community, share a 6-character invite code, others join instantly&lt;br&gt;
📊 Analytics — community stats: total sessions, top contributors, help given/received&lt;br&gt;
Demo&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🔗 Live app: &lt;a href="https://borrowed-time.netlify.app" rel="noopener noreferrer"&gt;https://borrowed-time.netlify.app&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&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/lochan027" rel="noopener noreferrer"&gt;
        lochan027
      &lt;/a&gt; / &lt;a href="https://github.com/lochan027/borrowed-time" rel="noopener noreferrer"&gt;
        borrowed-time
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Micro-availability radar for small communities — real-time status, session requests, and live chat
    &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;Borrowed Time&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Micro-availability radar for small communities&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Borrowed Time lets people in a private group broadcast short windows of availability — 5, 10, or 15 minutes — so teammates, study groups, or friend circles can connect for quick chats, calls, or brainstorms without scheduling a meeting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Live:&lt;/strong&gt; &lt;a href="https://borrowed-time.netlify.app" rel="nofollow noopener noreferrer"&gt;https://borrowed-time.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Radar view&lt;/strong&gt; — See all community members orbiting a canvas, color-coded by status in real time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Status modes&lt;/strong&gt; — Available (with countdown timer), Quick Text, Deep Focus (DND), or Offline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session requests&lt;/strong&gt; — Send a typed request to anyone who's available; they get a live popup to accept, decline, or snooze&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live chat&lt;/strong&gt; — Once a session is accepted, both sides get a shared chat window that opens automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communities&lt;/strong&gt; — Create a private community and share a 6-character invite code; others join with that code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics&lt;/strong&gt; — Community-level metrics: sessions, help given/received, most active contributors&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Stack&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Tech&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/lochan027/borrowed-time" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;




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

&lt;p&gt;Frontend: React 19 + TypeScript + Vite. The radar is a custom canvas component using absolute positioning and CSS transforms for the orbiting animation — no WebGL, just Framer Motion springs and some trigonometry.&lt;/p&gt;

&lt;p&gt;Styling: Tailwind CSS v4 + Framer Motion for all transitions and the ambient glow effects.&lt;/p&gt;

&lt;p&gt;Backend: Firebase — Firestore for real-time data sync (member statuses, session state, chat messages) and Firebase Auth for email/password signup. No server required; everything runs on Firestore listeners.&lt;/p&gt;

&lt;p&gt;Real-time architecture: Two parallel onSnapshot listeners per user merge session updates from both sides (requester and helper) so both parties see state changes instantly when a session is accepted.&lt;/p&gt;

&lt;p&gt;Hosting: Netlify with a netlify.toml config that handles SPA routing redirects.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
