BÜ Nabız — an anonymous overload wall for Boğaziçi students (DEV Weekend Challenge)

Published: (February 27, 2026 at 06:56 PM EST)
2 min read
Source: Dev.to

Source: Dev.to

This is a submission for the DEV Weekend Challenge: Community. I built BÜ Nabız for Boğaziçi University students—people juggling classes, projects, internship applications, and life at the same time.

When everyone is overwhelmed, it becomes invisible. People assume they’re the only one struggling, so they go silent. I wanted a tiny place that says: “You’re not alone this week.”

What BÜ Nabız does

  • An anonymous weekly overload wall
  • Share your weekly load in under 10 seconds (text optional)
  • Pick a category (Ders / Proje / Başvuru / Hayat), status, and intensity
  • Tap “Ben de” to show solidarity (keeps counts meaningful with basic anti‑spam)
  • View the Nabız (pulse) for the week: totals + top categories + top statuses
  • No login — intentionally frictionless
  • Design goal: weightless, mobile‑first UI with a calm dark theme

Live demo:

Repository:

How I Built It

Tech stack

  • Next.js (App Router) + TypeScript + Tailwind CSS
  • Firebase Firestore for data storage

Firestore security rules

// Firestore security rules
service cloud.firestore {
  match /databases/{database}/documents {
    // Everyone can read
    match /{document=**} {
      allow read: if true;
    }

    // Anyone can create a post (validated fields)
    match /posts/{postId} {
      allow create: if request.resource.data.keys().hasAll(['category', 'status', 'intensity'])
                     && request.resource.data.category is string
                     && request.resource.data.status is string
                     && request.resource.data.intensity is int;
    }

    // “Ben de” increments are handled via deterministic event id + transaction
    match /posts/{postId}/likes/{likeId} {
      allow create: if request.auth == null && request.resource.id == request.time.toMillis().toString();
    }
  }
}
  • Firestore indexing for week + created_at queries
  • Core loop: share → scroll → “Ben de” → pulse
  • Anonymous doesn’t mean chaotic: basic constraints (validation + simple anti‑spam) are still required
  • Mobile‑first matters—if it’s not comfortable on a phone, students won’t use it
  • Optional preset‑only mode / basic profanity filtering
  • Future improvements: better filtering + search, weekly share link for WhatsApp groups

Thanks for reading — and if you’re a Boğaziçi student, I hope this makes the week feel a bit less heavy.

0 views
Back to Blog

Related posts

Read more »