SafeYak : Anonymous Campus Chats, Reinvented for Safety

Built with KiroChat · Next.js · Supabase · Perspective API

Inspiration

YikYak was iconic — but it also died for the same reason it went viral: hate, bullying, and unchecked toxicity.

We asked a simple question:

“What if anonymous campus chat could exist again — but without the hate?”

SafeYak is the answer: a complete rebuild of YikYak, redesigned from day one around AI-powered moderation, safety-by-default, and real-time community protection.

What It Does

SafeYak is a location-based anonymous chat for campuses that:

✅ Uses AI to moderate every post and comment before it appears

Blurs toxic content

Hides severe content

Auto-locks unsafe threads

Tracks user reputation (“Yakarma 2.0”)

Issues automated safety actions

✅ Prevents bypassing moderation

Edited posts are re-evaluated

Comments can be hidden or blurred

Failure mode is secure (if AI fails → treat as unsafe)

✅ Allows anonymous but consistent identity

Every user gets a private author_hash, which gives them:

A ghost avatar

A reputation badge

Ability to edit & delete their own posts

✅ Real-time feed

Posts, votes, replies, and moderation effects update instantly across all clients.

How We Built It

Tech Stack

Next.js 14 / App Router

Supabase (DB, auth, realtime)

KiroChat (AI coding automation)

Perspective API (toxicity detection)

Tailwind + Neon dark UI (inspired by YikYak 2014)

🤖 How We Used Kiro (The Required Section) 1️⃣ Vibe Coding — Fast Iteration

We structured conversations in a “build → test → refine” loop. Kiro generated:

the entire feed client

real-time subscription logic

voting system

reputation engine

edit/delete post workflow

bottom composer redesign

the moderation pipeline + blur/hide system

The most impressive moment: Kiro wrote a 350-line full SafeYak moderation engine including RPCs, SQL schema, triggers, and safe-fail defaults — in one pass, fully correct.

2️⃣ Agent Hooks — Automated Development Workflows

We used Kiro’s hooks to:

auto-run migrations on Supabase

generate Vitest tests after every feature

create/update multiple files simultaneously

generate & validate TypeScript types

lint & refactor UI components

This turned hours of manual debugging into seconds.

3️⃣ Spec-Driven Development — Large Features in One Shot

We wrote detailed specs for:

Reputation system

Comment locking

Edit/delete flow

Safe composer behavior

Moderation decision tree

Kiro took these and produced: the full backend + API routes + UI components, consistently aligned across files.

Compared to vibe coding, spec-driven development let us build entire features at once instead of incremental pieces.

4️⃣ Steering Docs — Custom Behavioral Control

We used steering prompts so Kiro:

Always followed SafeYak UI style

Never created unsafe moderation holes

Prioritized security in all pipelines

Ensured YikYak-matching UX components

The biggest improvement came from a Moderation Steering Doc, which forced Kiro to:

avoid fail-open moderation

remove hover-to-reveal

enforce comment hiding

re-moderate edited posts

5️⃣ MCP Extensions — Powerful File-Level Workflows

MCP let Kiro:

read, diff, and modify multiple files

generate migrations AND apply them

detect missing types or mismatched fields

keep our entire app consistent automatically

This eliminated 95% of “where is this file?” or “what did I break?” problems.

🔐 Moderation System

SafeYak uses a multi-layered safety stack:

AI Moderation (Pre-Submission)

Toxicity

Threats

Insults

Identity attacks

Severe toxicity

Automatic Actions

Blur mild toxicity

Hide severe toxicity

Lock threads after 3 toxic replies

Issue strike-based penalties

Remove “hover to reveal” exploits

Re-moderate all edited posts

Hide unsafe comments (newly added)

🏆 Final Features Implemented

✔ Fully anonymous posting ✔ Real-time feed ✔ Reputation system ✔ Editable/deletable posts ✔ Ghost avatars ✔ AI moderation engine ✔ Blurring + hiding ✔ Thread auto-locking ✔ Bottom composer ✔ Neon-dark YikYak UI ✔ Zone tabs (Campus, Dorm, etc) ✔ Bookmarks ✔ Voting with optimistic UI

🚀 What’s Next

Geo-fenced zones

Heatmap of campus buzz

Friend groups (anonymous circles)

Event-mode (real-time campus events)

Built With

Share this project:

Updates