Inspiration
Ever wanted to share a meme but couldn't find the right template or the perfect caption? MemeGenius was born from this exact moment of creative block. I envisioned a "conversational meme engine" that uses the power of AI to bridge the gap between an idea and a hilarious, shareable meme. It's for those times you know the feeling you want to convey, but need a little help finding the format and the words.
What It Does
MemeGenius is an AI-powered tool that generates memes on demand. Users can provide a simple text description or even an inspirational image, and the AI will find a suitable meme template, craft a witty caption, and render the final image, ready to be shared.
How I Built It
The core of MemeGenius is built on a modern web stack, leveraging Bolt.new for rapid development and a powerful Large Language Model (LLM) for the creative backend. The application is deployed on Netlify, utilizing its serverless functions to handle the logic for meme generation and interaction with the AI.
Challenges I Ran Into
The development process involved several technical hurdles that required significant problem-solving:
- Serverless Functions: I initially started with Netlify's Edge Functions but encountered compatibility issues with the Bolt framework. Migrating to Netlify Functions (via @netlify/vite-plugin) resolved this, but led to subsequent configuration challenges with other packages like @netlify/images.
- Development Environment: Local development was hampered by timeouts from the LLM API calls. I had to implement a workaround using patch-package to extend the local Lambda timeout limits, allowing for proper testing in bolt.new.
- Environment Variables: Securely managing the LLM API key proved difficult. Standard methods for exposing environment variables in Vite and Netlify weren't working as expected within the Bolt environment, forcing me to use a hardcoded fallback key for the demo version to ensure functionality. Tried .env and netlify environment variables.
- Tooling & Dependencies: I faced recurring issues with the netlify-cli and version conflicts, which contributed to the decision to move away from Edge Functions. Additionally, integrating and later removing Supabase for data storage introduced its own set of challenges, leading to a more streamlined, generator-focused final product.
Accomplishments I'm Proud Of
Despite the challenges, I'm proud of successfully implementing the end-to-end serverless architecture, from the user interface to the LLM bridge. Creating a tool that is not only functionally robust but also features a clean, intuitive, and satisfying user experience was a major goal that I'm thrilled to have achieved.
What I Learned
This project was a deep dive into the realities of modern web development and a fantastic learning experience:
- Rapid Prototyping with Bolt: I gained valuable experience in leveraging Bolt.new for vibecoding, quickly iterating and bringing an idea to life.
- Netlify Functions: I learned the practical differences and trade-offs between Netlify's Edge Functions and their standard serverless functions, particularly regarding framework compatibility and build tooling.
What's Next for MemeGenius
The journey for MemeGenius is just beginning. Future plans include:
- User Contributions & Storage: Introduce features for users to save their creations and contribute their own meme templates, which would necessitate developing a comprehensive privacy policy & terms of service.
- Advanced Template Analysis: Allow users to upload their own templates, using a Vision Language Model (VLM) to automatically classify the image and analyze zones for optimal text placement.
- Topical Meme Service: Develop a feature that analyzes current news from across the internet, organizing it into thematic streams and automatically generating a relevant meme and a text summary for each news item.
- Extend the Meme collection.
Built With
- bolt.new
- netlify
- vite
- vue
Log in or sign up for Devpost to join the conversation.