Kembali ke Karya

Ceritakan

A conversation card game. Available on web and Android.

Kategori:androidweb
Tech:FlutterSupabasePostgreSQL
Cover for Ceritakan

Premise

In almost every friend group, there’s a moment where the conversation hits a wall of small talk. Whether it’s a late-night coffee or a weekend getaway, we often want to dive deeper but don't know where to start. Ceritakan was built to be the spark for these circles, providing a premium, interactive space to turn casual "hangs" into meaningful storytelling rituals.

The ‘Why’

The idea came from a recurring frustration: "The Surface-Level Loop." We spend hours with the people we care about, yet often leave feeling like we only scratched the surface because the "real" questions felt too heavy or awkward to ask. I wanted to build something that gamified vulnerability—turning deep conversations into a shared experience where every card flip is an opportunity to learn something new about your circle.

What It Does

I designed the app to handle the entire lifecycle of a social storytelling session:

  • Unified Conversations: One app for every vibe. Thanks to a flexible architecture, it supports "Deep Talk," "Icebreakers," "Relationship Building," and more, all selectable via a dynamic spin-wheel.

  • Interactive Mechanics: It’s not just a list of prompts. With high-fidelity card flip animations, turn-based play, and integrated timers, the app keeps the energy alive and the focus entirely on the storyteller.

  • Real-time Leaderboards: It’s not just about the talk; it’s about the engagement. The app tracks points and standings in real-time, giving a fun, competitive edge to the session and rewarding those who share their stories.

  • Frictionless Experience: With Google Sign-In and full localization (English & Indonesian), the onboarding is instant. Whether on the web via Vercel or soon on the Google Play Store, it’s built to be native to the user's background.

Tech Behind the App

The goal was to build a highly polished, reactive stack that feels "premium" while remaining lean and maintainable:

  • Flutter & Riverpod: I chose Flutter for its ability to deliver a gorgeous, 60fps UI (using Playfair Display and DM Sans for that "editorial" feel) across mobile and web. I used Riverpod for state management because its functional approach makes handling complex, reactive game states—like synchronized card draws and live scores—incredibly clean.

  • Supabase: This is the backbone of the app. I moved to Supabase to handle real-time data syncing, authentication, and the database in one unified flow. It allows for seamless session resumes and secure data management without the overhead of a custom Node/MongoDB setup.

  • Vercel Deployment: To ensure global accessibility, the web version is hosted on Vercel. This setup ensures the app is always just one link away from starting a conversation, making it as low-friction as possible for a group to jump in.

  • Feature-First Architecture: The code is structured to be modular, ensuring that adding new topic decks or game modes doesn't compromise the performance or security of the core engine.

What's Next?

We aims to implement more features and provide more contents. We also want to do a lot of marketing for this app which can act as a potential revenue stream.

My Role

Full-stuck.