Serverless StoryWeaver: AI-Powered Interactive Storytelling Project Inspiration The inspiration for StoryWeaver came from childhood memories of "Choose Your Own Adventure" books combined with modern AI capabilities. We wanted to create a platform where anyone could become a storyteller, collaborating with AI to create unique, branching narratives. The project aims to democratize creative writing and make storytelling accessible to everyone, regardless of their writing experience.
Solution Provided StoryWeaver solves several key problems:
Creative Block: Helps writers overcome stagnation by providing AI-generated plot developments
Technical Barrier: Makes interactive storytelling accessible without programming knowledge
Scalability: Uses serverless architecture to handle unpredictable usage patterns
Cost Management: Free tier accessibility with scalable paid options
Technical Implementation
Frontend: React with Firebase Authentication
Backend: Node.js/Express deployed on Google Cloud Run
Database: Firestore for real-time data synchronization
AI/ML: Google AI Studio (Gemini API) for story generation
Architecture: Serverless microservices with containerization
Key Features
Interactive "Choose Your Own Adventure" story creation
AI-powered narrative generation with consistency maintenance
User authentication and story management
Responsive design for all devices
Real-time story updates and branching visualization
Challenges Overcome
AI Consistency: Ensuring the AI maintains character and plot consistency across segments
Serverless Cold Starts: Optimizing container performance for better user experience
Rate Limiting: Handling AI API limits gracefully with proper error messages
State Management: Maintaining story context in a stateless serverless environment
Cost Optimization: Balancing performance with free tier limitations
Learning Outcomes
Serverless Benefits: Experienced firsthand the advantages of no-server management and automatic scaling
AI Integration: Learned prompt engineering and AI response handling best practices
Cloud Architecture: Gained expertise in designing distributed serverless systems
User Experience: Discovered the importance of loading states and immediate feedback in AI applications
Cost Management: Learned to optimize cloud resource usage while maintaining performance
Future Roadmap
Multi-modal Input: Allow image-based story inspiration
Voice Integration: Text-to-speech for story narration
Collaborative Features: Multiple users co-writing stories
Genre Specialization: Different AI models for various story genres
Export Options: PDF and ebook generation for completed stories
Advanced Analytics: Story engagement metrics and popular choice tracking
Mobile App: Native iOS and Android applications
Impact and Significance StoryWeaver demonstrates how serverless computing lowers the barrier to building AI-powered applications. It shows that individual developers can create sophisticated, scalable platforms using cloud services that were previously accessible only to large teams. The project serves as a blueprint for future educational and creative applications leveraging similar architectures.
Technical Innovation
Novel implementation of AI-assisted creative writing
Serverless architecture optimized for AI API integration
Real-time collaborative story building framework
Scalable user-generated content platform using entirely serverless infrastructure
Built For: #CloudRunHackathon
Try It Live: https://serverless-storyweaver-562013050483.us-west1.run.app Source Code: https://github.com/attahj20/attahj20-serverless-storyweaver Demo Video: https://youtube.com/shorts/ntRrEJApXG0?si=szRJXXXXP6ZhvLqk
Data Flow Steps:
User Request: The React/Next.js frontend, hosted on a platform like Firebase Hosting, sends user requests (e.g., "start a new story with this premise" or "continue the story with choice #2") to a secure API Gateway.
Routing & Authentication: The API Gateway routes the request to the appropriate Cloud Run service and can handle authentication if required.
Business Logic - Core Story Service: This primary Cloud Run service receives the request. It manages the story's lifecycle: creating new stories, fetching previous context from Firestore, and calling the AI Orchestrator for new content.
AI Generation - AI Orchestrator Service: A specialized Cloud Run service that takes the story history and user choice, crafts a precise prompt, and calls the Google AI Studio (Gemini API) to generate the next story segment and new choices.
Data Persistence: The Core Story Service receives the AI-generated content and saves the new story segment back to Firestore, which acts as the single source of truth for all users and stories.
📁 Monorepo Code Structure A monorepo structure keeps all components organized and is a common best practice for serverless
text serverless-storyweaver/ │ ├── infra/ # Infrastructure as Code (IaC) │ ├── main.tf # Root Terraform module │ ├── variables.tf # Variable definitions │ └── modules/ │ ├── cloud-run/ # Module for deploying Cloud Run services │ ├── firestore/ # Module for configuring Firestore │ └── networking/ # Module for API Gateway, etc. │ ├── services/ # Backend Microservices │ ├── core-story-service/ │ │ ├── src/ │ │ │ ├── main.py (or app.js) # Primary request handler │ │ │ ├── story_manager.py # Business logic for stories │ │ │ └── firestore_client.py # Database interaction │ │ ├── Dockerfile # Container definition │ │ └── requirements.txt (or package.json) │ │ │ └── ai-orchestrator/ │ ├── src/ │ │ ├── main.py (or app.js) # Handler for AI requests │ │ ├── prompt_builder.py # Constructs prompts for Gemini │ │ └── ai_studio_client.py # Handles calls to Gemini API │ ├── Dockerfile │ └── requirements.txt (or package.json) │ ├── frontend/ # React/Next.js Web Application │ ├── public/ │ ├── src/ │ │ ├── components/ # Reusable UI components (StoryView, ChoiceButtons) │ │ ├── services/ # API client for backend communication │ │ └── pages/ # Application pages │ ├── package.json │ └── Dockerfile │ ├── scripts/ # Utility scripts for build/deploy └── README.md
Log in or sign up for Devpost to join the conversation.