11/20/2025
I've always wanted a space to share random updates about my life, my projects, and whatever I'm learning at the moment. Sure, I could post on social media, but there's something different about having your own corner of the internet where you can write freely without algorithms deciding who sees it. So when I was thinking about building something new, I knew I wanted it to double as both a functional app and a personal blog.
I've also always found anonymous messaging apps like NGL pretty interesting. There's something raw about letting people say whatever they want without the pressure of putting their name on it. So I thought, why not build my own version but make it actually tailored for me?
That's how chika was born. At its core, it's an anonymous notes app where people can send me messages, either with their name or completely anonymous. Notes can be private (only I can see them) or public (everyone can view and comment on them). This way, it's not just a one-way inbox. It becomes a space where people can interact with each other's thoughts too.
I built chika using Next.js with TypeScript for the frontend and backend, paired with Neon for serverless PostgreSQL. I used Drizzle as my ORM because I wanted to finally stop raw-dogging SQL queries (yeah, I did that before). For authentication, I went with Better Auth since I needed a way to lock down my admin dashboard where I manage private notes, delete stuff, and post blog entries. I also integrated Uploadthing for image uploads because why not let people send pictures with their notes?
The main learning experience here was working with schemas, actually using an ORM properly, and diving into server actions. I also wanted to make it fun, so I added features like note reactions with curated emojis, color themes for each note, and even a word cloud visualization generated from all the public notes. Plus, there's a personal blog section where I can write about random stuff and learnings, like this post you're reading right now.
Honestly, building chika was a mix of learning and experimenting. It's deployed now, and I'm still tweaking things here and there. If you want to check out the code or see how it works, the repo's on GitHub. Feel free to send me a note (anonymous or not, your call).
No comments yet. Be the first to comment!