Meme Factory
Create memes using the free memegen.link API and textual meme formats.
Triggers
Trigger Description
/meme-factory
Manual invocation
/meme-factory {template} {top} {bottom}
Direct meme generation
meme-factory: create a meme about X
Natural language request
Quick Reference
Action Format
Basic meme https://api.memegen.link/images/{template}/{top}/{bottom}.png
With sizing ?width=1200&height=630
Custom background ?style=https://example.com/image.jpg
All templates https://api.memegen.link/templates/
Interactive docs https://api.memegen.link/docs/
Additional Resources:
-
Markdown Memes Guide - 15+ textual meme formats
-
Examples - Practical usage examples
-
meme_generator.py - Python helper script
Quick Start
Basic Meme Structure
https://api.memegen.link/images/{template}/{top_text}/{bottom_text}.{extension}
Example:
https://api.memegen.link/images/buzz/memes/memes_everywhere.png
Result: Buzz Lightyear meme with "memes" at top and "memes everywhere" at bottom.
Text Formatting
Character Encoding
Space _ or -
Newline ~n
Question mark ~q
Percent ~p
Slash ~s
Hash ~h
Single quote ''
Double quote ""
Popular Templates
Template Use Case Example
buzz
X, X everywhere bugs/bugs_everywhere
drake
Comparisons manual_testing/automated_testing
success
Victories deployed/no_errors
fine
Things going wrong server_on_fire/this_is_fine
fry
Uncertainty not_sure_if_bug/or_feature
changemind
Hot takes tabs_are_better_than_spaces
distracted
Priorities my_code/new_framework/current_project
mordor
One does not simply one_does_not_simply/deploy_on_friday
Template Selection Guide
Context Template Why
Comparing options drake
Two-panel reject/approve format
Celebrating wins success
Positive outcome emphasis
Problems ignored fine
Ironic "everything is fine"
Uncertainty fry
"Not sure if X or Y" format
Controversial opinion changemind
Statement + challenge
Ubiquitous things buzz
"X, X everywhere"
Bad ideas mordor
"One does not simply..."
Validation
After generating a meme:
-
URL returns valid image (test in browser)
-
Text is readable (not too long)
-
Template matches the message context
-
Special characters properly encoded
-
Dimensions appropriate for platform
Platform Dimensions
Platform Dimensions
Social media (Open Graph) 1200x630
Slack/Discord 800x600
GitHub Default
Anti-Patterns
Avoid Why Instead
Spaces without encoding URL breaks Use _ or -
Too much text Unreadable 2-6 words per line
Wrong template Message mismatch Match template to context
Missing extension Invalid URL Always include .png , .jpg , etc.
Unencoded special chars URL breaks Use ~q , ~s , ~p , etc.
Assuming template exists 404 error Check templates list first
Verification
Meme generation is successful when:
-
URL is valid - Returns HTTP 200
-
Image renders - Displays correctly in markdown
-
Text is visible - Properly formatted on image
-
Context matches - Template fits the message
Test command:
curl -I "https://api.memegen.link/images/buzz/test/test.png"
Should return: HTTP/2 200
Image Formats
Extension Use Case
.png
Best quality, default
.jpg
Smaller file size
.webp
Modern, good compression
.gif
Animated templates
Dimensions
?width=800 ?height=600 ?width=800&height=600 (padded to exact)
Layout Options
?layout=top # Text at top only ?layout=bottom # Text at bottom only ?layout=default # Standard top/bottom
Custom Fonts
View available: https://api.memegen.link/fonts/
?font=impact (default)
Custom Images
Use any image as background:
https://api.memegen.link/images/custom/hello/world.png?style=https://example.com/image.jpg
Code Reviews
Template: fry https://api.memegen.link/images/fry/not_sure_if_feature/or_bug.png
Deployments
Template: interesting https://api.memegen.link/images/interesting/i_dont_always_test/but_when_i_do_i_do_it_in_production.png
Documentation
Template: yodawg https://api.memegen.link/images/yodawg/yo_dawg_i_heard_you_like_docs/so_i_documented_the_documentation.png
Performance Issues
Template: fine https://api.memegen.link/images/fine/memory_usage_at_99~/this_is_fine.png
Successful Deploy
Template: success https://api.memegen.link/images/success/deployed_to_production/zero_downtime.png
Generating Memes in Response
Here's a relevant meme:

Dynamic Generation (Python)
def generate_status_meme(status: str, message: str): template_map = { "success": "success", "failure": "fine", "review": "fry", "deploy": "interesting" }
template = template_map.get(status, "buzz")
words = message.split()
top = "_".join(words[0:3])
bottom = "_".join(words[3:6])
return f"https://api.memegen.link/images/{template}/{top}/{bottom}.png"
Using the Helper Script
from meme_generator import MemeGenerator
meme = MemeGenerator() url = meme.generate("buzz", "features", "features everywhere") print(url)
Endpoints
Endpoint Purpose
/templates/
List all templates
/templates/{id}
Template details
/fonts/
Available fonts
/images/{template}/{top}/{bottom}.{ext}
Generate meme
API Characteristics
-
Free and open-source
-
No API key required
-
No rate limiting (normal use)
-
Stateless (all info in URL)
-
Images generated on-demand
Error Handling
-
Check template at https://api.memegen.link/templates/
-
Verify text formatting (underscores for spaces)
-
Check special character encoding
-
Ensure valid extension
-
Test URL in browser
References
Document Content
markdown-memes-guide.md 15+ textual meme formats (greentext, copypasta, ASCII, etc.)
examples.md Practical usage examples
Scripts
Script Purpose
meme_generator.py Python helper for meme generation
Summary
Generate contextual memes to:
-
Add humor to conversations
-
Create social media visuals
-
Make code reviews engaging
-
Celebrate successes
Golden rule: Keep text concise, match template to context.