Documentation

Everything you need to know about creating and importing flashcards.

Formatting your cards

Cards support markdown, LaTeX math, syntax-highlighted code blocks, and custom HTML widgets. Write the front and back of each card using any combination of these.

Terminal widget

Display command-line interactions with a styled terminal window.

syntax

<terminal title="My Terminal">
git init
git add .
</terminal>

result

My Terminal
git init
git add .

The title attribute defaults to "terminal" if omitted.

Code highlighting

Use fenced code blocks with a language for syntax highlighting.

syntax

```python
def hello():
    print("Hello!")
    return 42
```

result

def hello():
print("Hello!")
return 42

Supports Python, JavaScript, HTML, CSS, Bash, JSON, and more.

Math expressions

Write LaTeX math with KaTeX. Single $ for inline, double $$ for display.

inline math

$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$

result

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

display math

$$\int_{a}^{b} f(x) \, dx = F(b) - F(a)$$

result

\int_{a}^{b} f(x) \, dx = F(b) - F(a)

JSON import format

Upload cards in bulk via JSON. Two formats are accepted.

option 1 — array of cards

[
  {
    "front": "What is the capital of France?",
    "back": "Paris",
    "tags": ["geography", "europe"]
  },
  {
    "front": "What is 2 + 2?",
    "back": "4",
    "category": "math"
  }
]

option 2 — object with cards key

{
  "cards": [
    {
      "card_uuid": "my-unique-id",
      "front": "What is the capital of France?",
      "back": "Paris",
      "tags": ["geography"]
    }
  ]
}

Required fields: front and back on every card.

Optional fields:

  • tags — array of strings, used to organize and filter cards
  • category — string, added as an extra tag
  • card_uuid — string (max 36 chars), enables in-place updates

In-place updates with card_uuid

When you include a card_uuid, re-uploading a file will update matching cards instead of creating duplicates. Your review history and due dates are preserved.

Workflow: export your cards (they'll include UUIDs), edit the JSON, re-upload. Cards without a UUID get one auto-generated.

Custom HTML with Tailwind

Use raw HTML with Tailwind CSS classes for advanced card layouts. Add dark: variants for dark mode.

syntax

<div class="p-4 bg-yellow-100
  rounded-lg border-l-4
  border-yellow-500
  text-yellow-700">
  <strong>Note:</strong>
  Something important.
</div>

result

Note: Something important.