<?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: Sameer</title>
    <description>The latest articles on DEV Community by Sameer (@sameer-frontend).</description>
    <link>https://dev.to/sameer-frontend</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%2F3796174%2F1a79548e-3b63-433b-9791-bf6e5638b151.png</url>
      <title>DEV Community: Sameer</title>
      <link>https://dev.to/sameer-frontend</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sameer-frontend"/>
    <language>en</language>
    <item>
      <title>NeighborHub: Real-Time Community Connection for Local Neighborhoods</title>
      <dc:creator>Sameer</dc:creator>
      <pubDate>Mon, 02 Mar 2026 09:05:29 +0000</pubDate>
      <link>https://dev.to/sameer-frontend/neighborhub-real-time-community-connection-for-local-neighborhoods-2a3p</link>
      <guid>https://dev.to/sameer-frontend/neighborhub-real-time-community-connection-for-local-neighborhoods-2a3p</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;NeighborHub is built for &lt;strong&gt;local neighborhood communities&lt;/strong&gt; — residents, block associations, and neighborhood groups who want a centralized digital space to stay connected. Whether it's organizing a block party, posting a safety announcement, requesting help with groceries, or starting a discussion about local parks, NeighborHub brings neighbors together in a meaningful way. The platform eliminates the fragmentation of group chats and social media by providing a purpose-built, category-driven community feed.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;NeighborHub&lt;/strong&gt; — a real-time community connection platform where neighbors can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📢 &lt;strong&gt;Post announcements&lt;/strong&gt; — share important neighborhood updates&lt;/li&gt;
&lt;li&gt;🎉 &lt;strong&gt;Organize events&lt;/strong&gt; — create events with date, time, and location&lt;/li&gt;
&lt;li&gt;🤝 &lt;strong&gt;Request help&lt;/strong&gt; — ask neighbors for assistance&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Start discussions&lt;/strong&gt; — open community conversations&lt;/li&gt;
&lt;li&gt;❤️ &lt;strong&gt;Like &amp;amp; comment&lt;/strong&gt; — engage with posts in real-time via Supabase Realtime (WebSocket subscriptions)&lt;/li&gt;
&lt;li&gt;👤 &lt;strong&gt;View profiles&lt;/strong&gt; — click any avatar/username to visit their public profile and see their posts&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Optimistic UI&lt;/strong&gt;: Actions feel instant — likes toggle and comments appear immediately, then reconcile with the server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Category filtering&lt;/strong&gt;: Filter the feed by Events, Announcements, Help Requests, or Discussions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skeleton loaders&lt;/strong&gt;: Every route has a shimmer loading state for smooth perceived performance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global navigation progress bar&lt;/strong&gt;: Animated gradient bar at the top during page transitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully responsive&lt;/strong&gt;: Works beautifully on mobile, tablet, and desktop=&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;🔗 &lt;strong&gt;Live Demo&lt;/strong&gt;: &lt;a href="https://neighbor-hub-phi.vercel.app/" rel="noopener noreferrer"&gt;https://neighbor-hub-phi.vercel.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/sameer-frontend" rel="noopener noreferrer"&gt;
        sameer-frontend
      &lt;/a&gt; / &lt;a href="https://github.com/sameer-frontend/neighbor-hub" rel="noopener noreferrer"&gt;
        neighbor-hub
      &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;p&gt;This is a &lt;a href="https://nextjs.org" rel="nofollow noopener noreferrer"&gt;Next.js&lt;/a&gt; project bootstrapped with &lt;a href="https://nextjs.org/docs/app/api-reference/cli/create-next-app" rel="nofollow noopener noreferrer"&gt;&lt;code&gt;create-next-app&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;First, run the development server:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm run dev
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
yarn dev
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
pnpm dev
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
bun 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; with your browser to see the result.&lt;/p&gt;
&lt;p&gt;You can start editing the page by modifying &lt;code&gt;app/page.tsx&lt;/code&gt;. The page auto-updates as you edit the file.&lt;/p&gt;
&lt;p&gt;This project uses &lt;a href="https://nextjs.org/docs/app/building-your-application/optimizing/fonts" rel="nofollow noopener noreferrer"&gt;&lt;code&gt;next/font&lt;/code&gt;&lt;/a&gt; to automatically optimize and load &lt;a href="https://vercel.com/font" rel="nofollow noopener noreferrer"&gt;Geist&lt;/a&gt;, a new font family for Vercel.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Learn More&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;To learn more about Next.js, take a look at the following resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs" rel="nofollow noopener noreferrer"&gt;Next.js Documentation&lt;/a&gt; - learn about Next.js features and API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/learn" rel="nofollow noopener noreferrer"&gt;Learn Next.js&lt;/a&gt; - an interactive Next.js tutorial.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can check out &lt;a href="https://github.com/vercel/next.js" rel="noopener noreferrer"&gt;the Next.js GitHub repository&lt;/a&gt; - your feedback and contributions are welcome!&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Deploy on Vercel&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The easiest way to deploy your Next.js app is to use the &lt;a href="https://vercel.com/new?utm_medium=default-template&amp;amp;filter=next.js&amp;amp;utm_source=create-next-app&amp;amp;utm_campaign=create-next-app-readme" rel="nofollow noopener noreferrer"&gt;Vercel Platform&lt;/a&gt; from the creators of Next.js.&lt;/p&gt;
&lt;p&gt;Check out our &lt;a href="https://nextjs.org/docs/app/building-your-application/deploying" rel="nofollow noopener noreferrer"&gt;Next.js deployment documentation&lt;/a&gt; for more…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sameer-frontend/neighbor-hub" 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;h3&gt;
  
  
  Tech Stack
&lt;/h3&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;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Framework&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Next.js 15 (App Router, React 19, Server Components, Server Actions)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend / Database&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Supabase (PostgreSQL, Row Level Security, Auth, Realtime)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Supabase Auth (email/password with SSR cookie sessions)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Styling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tailwind CSS 4 with custom design system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Icons&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lucide React&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Database Migrations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Supabase CLI (&lt;code&gt;supabase db push&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Architecture Decisions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server Components by default&lt;/strong&gt; — pages fetch data on the server with zero client-side waterfalls. Only interactive elements (like buttons, comment forms, realtime subscriptions) are Client Components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server Actions&lt;/strong&gt; for all mutations — no API routes needed. Form submissions for auth, posts, comments, likes, and profile updates all use Next.js Server Actions with &lt;code&gt;revalidatePath&lt;/code&gt; for cache invalidation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Row Level Security (RLS)&lt;/strong&gt; — every table has granular policies. Users can only modify their own data. Public read access for community transparency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database triggers&lt;/strong&gt; — &lt;code&gt;likes_count&lt;/code&gt; and &lt;code&gt;comments_count&lt;/code&gt; are maintained automatically via PostgreSQL triggers, avoiding N+1 queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase Realtime subscriptions&lt;/strong&gt; — &lt;code&gt;LikeButton&lt;/code&gt; and &lt;code&gt;CommentSection&lt;/code&gt; subscribe to &lt;code&gt;postgres_changes&lt;/code&gt; events. A &lt;code&gt;localActionRef&lt;/code&gt; prevents double-counting the user's own actions while still receiving updates from other users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Middleware&lt;/strong&gt; — refreshes Supabase auth sessions on every request and protects &lt;code&gt;/profile&lt;/code&gt;, &lt;code&gt;/posts/new&lt;/code&gt; routes from unauthenticated access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Migration-based schema&lt;/strong&gt; — 8 ordered SQL migrations handle tables, RLS policies, triggers, indexes, realtime config, and seed data. Fully reproducible with &lt;code&gt;supabase db push&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

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