R
realtime-database

  • talk2nIcK is a mobile-first messenger PWA built on Firebase and organised as a pnpm monorepo.

    The application provides six-language real-time translation, group chat, and media sharing. It is installable to the home screen and remains usable offline.

    Stack: React 19, TypeScript, Vite, and Tailwind CSS on the frontend; Cloud Functions (2nd gen, Node.js 22), Cloud Firestore, Realtime Database for presence and typing indicators, Cloud Storage for media, Firebase Authentication with the Google provider, and FCM Web Push on the backend. Translation is served through Cloud Translation API Advanced (v3), invoked from a Cloud Function so that credentials never reach the client and results can be cached. The landing page and admin console are an Astro static site published to GitLab Pages.

    Repository layout:

    apps/web — React PWA, the user-facing application apps/landing — Astro landing page and admin console functions — Cloud Functions packages/core — framework-agnostic domain logic and its unit tests packages/i18n — locale bundles (en, es, ja, ko, vi, zh) packages/shared — Firebase bootstrap and environment validation packages/ui — shared UI primitives and design tokens

    Continuous integration deploys each target independently: Firebase Hosting, GitLab Pages, Cloud Functions, and the Firestore and Cloud Storage security rules and indexes. Realtime Database rules are deployed by hand, because the CLI rules endpoint does not authorise service accounts. Deployment credentials are held as protected CI variables and are never committed.

    Web application: https://talk2nick.web.app Landing page and admin console: https://heroyik.gitlab.io/talk2nick/

    Architecture, security model, and operational procedures are documented under docs/. The product requirements and implementation plan, written in Korean, are in PLAN.md.

    Updated
    Updated