Education
flashcards
memorization
spaced-repetition
Flashcard Generator
Generate effective flashcards from notes, textbooks, or topics using spaced-repetition-friendly formatting.
The Prompt
(2 messages)System
You are a learning scientist who creates flashcards optimized for spaced repetition systems (Anki, Quizlet, etc.). Rules for effective flashcards: - One fact per card (atomic knowledge) - Front should be a clear, specific question — not "What is X?" when "What does X do when Y happens?" is more useful - Back should be concise (1-3 sentences max) - Use cloze deletions for definitions and processes - Avoid "yes/no" questions — they don't test real understanding - Include context clues when the term alone is ambiguous - For processes/sequences, break into individual step cards - Add tags for organization in spaced repetition apps
User
Generate flashcards: Subject: {{subject}} Source material: {{source}} Number of cards: {{num_cards}} Format: {{format}}
Variables
Fill in these inputs to customize your output:
{{subject}}Example: JavaScript fundamentals
{{source}}Example: Closures, the event loop, prototypal inheritance, Promise chaining, and the difference between var/let/const
{{num_cards}}Example: 8
{{format}}Example: Q&A (for Anki import)
Example Output
Here's what this prompt generates with the sample inputs:
Sample outputgemini-2.5-flash
{
"cards": [
{
"front": "What is a closure in JavaScript?",
"back": "A function that retains access to variables from its outer (enclosing) scope, even after the outer function has returned. The inner function 'closes over' those variables.",
"tags": ["javascript", "closures", "scope"]
},
{
"front": "What will this log and why?\nfor (var i = 0; i < 3; i++) {\n setTimeout(() => console.log(i), 100)\n}",
"back": "Logs: 3, 3, 3. Because var is function-scoped (not block-scoped), all callbacks share the same i, which is 3 after the loop finishes. Using let instead would log 0, 1, 2.",
"tags": ["javascript", "closures", "var-let"]
},
{
"front": "In the JavaScript event loop, what is the order of execution between: synchronous code, microtasks (Promise.then), and macrotasks (setTimeout)?",
"back": "1. Synchronous code runs first\n2. Microtasks (Promise callbacks) run next — all of them\n3. One macrotask (setTimeout/setInterval) runs\nThen the cycle repeats: check microtasks again before the next macrotask.",
"tags": ["javascript", "event-loop", "async"]
},
{
"front": "How does prototypal inheritance differ from classical inheritance?",
"back": "In prototypal inheritance, objects inherit directly from other objects via the prototype chain. There are no classes as blueprints — an object delegates property lookups to its prototype. JS 'class' syntax is sugar over this mechanism.",
"tags": ["javascript", "prototypes", "inheritance"]
},
{
"front": "What happens when a Promise chain has .then().then().catch()? Which errors does .catch() handle?",
"back": "The .catch() handles rejections from any preceding .then() in the chain, not just the original Promise. Errors propagate down the chain until caught.",
"tags": ["javascript", "promises", "error-handling"]
},
{
"front": "What are the 3 differences between var, let, and const?",
"back": "1. Scope: var is function-scoped; let and const are block-scoped\n2. Hoisting: var is hoisted and initialized as undefined; let/const are hoisted but not initialized (temporal dead zone)\n3. Reassignment: var and let can be reassigned; const cannot",
"tags": ["javascript", "variables", "scope"]
},
{
"front": "What is the temporal dead zone (TDZ)?",
"back": "The period between entering a block and the let/const declaration being reached. Accessing the variable in this zone throws a ReferenceError, even though the variable is hoisted.",
"tags": ["javascript", "variables", "hoisting"]
},
{
"front": "What does Promise.all() do if one Promise rejects?",
"back": "It immediately rejects with the first rejection reason. The other Promises continue executing but their results are discarded. Use Promise.allSettled() if you need all results regardless of failures.",
"tags": ["javascript", "promises", "async"]
}
],
"import_format": "Cards can be imported to Anki as a TSV file: front[tab]back[tab]tags (space-separated)"
}Configuration
Optimized settings included when you add this prompt. You can adjust them later.
Provider
Model
gemini-2.5-flash
Temperature
0.3
Output
Structured JSON
Ready to use this prompt?
Add it to your workspace, customize the inputs, and generate your own results.
Use this prompt — freeMore prompts
Code Explainer
Education
Get clear, line-by-line explanations of code in plain English — perfect for learning, onboarding, or code reviews.
explain
learning
+2
Claude Sonnet 4.5Concept Explainer
Education
Explain complex concepts at any level — from "explain like I'm 5" to graduate-level depth — with analogies and examples.
explain
learning
+2
Claude Sonnet 4.5Lesson Plan Creator
Education
Create structured lesson plans with learning objectives, activities, assessments, and timing for any subject.
lesson-plan
teaching
+2
Claude Sonnet 4.5