Prayer Wall

AI-powered prayer wall where users generate heartfelt prayers via Google Gemini, share them globally, and listen to AI voice-overs backed by Upstash Redis and Vercel Blob

Prayer Wall

Prayer Wall

Overview

Prayer Wall is an AI-powered platform where users generate heartfelt prayers with the help of Google Gemini, share them on a global wall, and listen to AI-generated voice-overs. Prayers and generated audio are persisted with Upstash Redis and Vercel Blob so the wall stays available to everyone.

Key Features

  • AI Prayer Generation: Craft heartfelt prayers with Google Gemini via Genkit
  • Global Prayer Wall: Share prayers publicly for the community to see
  • AI Voice-Overs: Listen to AI-generated audio narration of prayers
  • Persistent Storage: Prayers stored in Upstash Redis; audio assets in Vercel Blob
  • Accessible UI: Clean, responsive interface built with Radix UI primitives

Technical Stack

  • Framework: Next.js, React
  • AI: Google Genkit (Gemini)
  • Storage: Upstash Redis, Vercel Blob
  • Styling: Tailwind CSS, Radix UI
  • Validation: Zod

Architecture

The application follows a modern serverless Next.js architecture:

  • Frontend: Next.js with React and Radix UI components
  • AI: Google Genkit flows generating prayer text and voice-over audio
  • Data: Upstash Redis for prayer records, Vercel Blob for audio files
  • Validation: Zod schemas validating input and AI output
  • Deployment: Hosted on Vercel

Challenges & Solutions

  • AI Output Quality: Used Genkit with Zod validation to keep generated prayers well-formed
  • Audio Pipeline: Stored generated voice-overs in Vercel Blob for fast, durable delivery
  • State at the Edge: Leaned on Upstash Redis for low-latency, serverless-friendly storage
  • Accessibility: Built the UI on Radix UI primitives

Impact & Results

  • Community Building: A shared, global wall of prayers
  • Engaging Experience: AI generation and voice-overs lower the barrier to participating
  • Always Available: Serverless storage keeps the wall accessible