DEV Community

Nirvik K.C.
Nirvik K.C.

Posted on

Building Personal Gemini Journal: A Secure AI Sanctuary Powered by Cloud Run & Gemini API

Submission for the Accelerate AI with Cloud Run APAC Ideathon 2026

Private, intuitive, and insightful reflections and journal entries have proven to be the most useful ways of journaling and reflecting. As part of the Accelerate AI with Cloud Run APAC Ideathon, I have developed a journaling application, Personal Gemini Journal, a full-stack conversational artificial intelligence journaling application that enables real-time voice inputs, mood analytics, and external automation webhooks through the Google Cloud serverless platform.


System Architecture & Google Cloud Integration

The application combines serverless scale with security-first architecture:

  1. Google Cloud Run: A perfect place to host a stateless, container-based application which is autoscaling from zero.

  2. Gemini API (via Google AI Studio): It is an excellent tool for processing conversations that require multiple rounds of dialogue. It also gives automated reflection summary, dynamic mood tag, and sentiment trajectory calculation. Resilient multi-model failover is also included among the capabilities.

  3. Firebase Authentication: Through Google OAuth SSO, Firebase authentication is the one securing all user identities and ensuring that every journaling session refers to an authenticated UID user only.

  4. Cloud Firestore: This feature is designed to give each user an isolated database. It uses very strict security rules for a path like (/users/{userId}/journals/{document=**}). So data leaks from tenants to tenants are blocked at the database level.

  5. Google Cloud Secret Manager: A place where server-side runtime secrets and keys are stored. These are kept outside the client bundles so their exposure risk is minimised.


Key Features & Enhancements

  • Per-User Data Isolation: Database-level features ensure complete user privacy without any interference.

  • Voice-to-Text Dictation Mode: Built-in dictation mode with the Web Speech API in the browser, providing speech-to-text functionality.

  • Mood Analytics & Sentiment Arc Tracker: Emotional tag extraction and mood trajectory plotting between history entries in the Archive view are done automatically.

  • External Webhook Notifications: Entry summary, mood tag, and time in the form of JSON payloads are dispatched asynchronously to selected Discord/Slack endpoints or HTTP receivers without affecting user operations.


Application Walkthrough

1. Conversational Journaling & Voice Input

Gemini Journal Active Session

2. Automated AI Summary & Mood Analytics

Gemini Journal AI Summary

Security Architecture & Firestore Rules

To enforce strict security and user privacy, Cloud Firestore access is restricted exclusively to authenticated owners:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId}/journals/{document=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Note: Webhook notification triggers execute in non-blocking try/catch wrappers to ensure third-party network failures never interrupt journaling.

Try the Project

Live Prototype: https://geminijournalnirvik2026.ai.studio

GitHub Repository: https://github.com/Nirvik-49/personal-gemini-journal

AccelerateAIwithCloudRun

Top comments (0)