Krafa
Dashboard
Dashboard
Getting Started
QuickstartHow it works
The Canvas
Canvas overviewPasting and node typesOrganizing a boardCommand menuKeyboard shortcuts
Design Taste
Taste memoriesExtractionConflictsCurating your profile
Using with Agents
Connecting an agentMCP server referenceClaude CodeCursorCodexKiroAntigravity
Imports
Imports overviewXPinterestDribbble
Reference
Plans and billingHTTP APISelf-hostingFAQ
KrafaAll systems operational
The Canvas

Pasting and node types

Every kind of content Krafa recognizes, the order it checks them in, and what lands on the canvas as a result.

Krafa never asks what kind of block you want. It reads the clipboard, decides, and renders. This page documents what it decides.

The thirteen content types

TypeComes fromRenders as
colorA single CSS color valueA swatch with its value
paletteSeveral color values at onceA row of swatches
imageImage URL, data URL, image file, or an importAn image card
videoVideo URL or video fileA full player with scrubbing and captions
audioAudio URL or audio fileA custom audio player
youtubeA YouTube URLAn embedded player with title and channel
figmaA Figma file or prototype URLA design preview card
tweetAn X post URL or an X bookmark importThe rendered post, with article preview when present
linkAny other URLA preview card with favicon, title, and OG image
tableA Markdown, TSV, or CSV tableA real table
codeCode-like text or a source fileA syntax-highlighted block
markdownMarkdown-like text or a .md fileA tabbed editor and preview
textAnything else, or an empty noteAn editable note

Two more node types exist but aren't pasted: folders and stacks are containers you create from nodes already on the board.

How detection decides

For pasted text, Krafa walks this list top to bottom and takes the first match. Knowing the order explains most surprises:

URLs and data

A data:image/… URI becomes an image. Then the URL patterns get their turn, most specific first: YouTube, then X, then Figma, then URLs ending in an image, video, or audio extension. Any remaining http(s):// URL falls through to a link.

That ordering is why a YouTube link becomes a player and not a generic link card, and why https://example.com/hero.png becomes an image rather than a link preview.

Colors

A string that is a single valid CSS color becomes a swatch. Validity is decided by CSS.supports, not a regex, so every color function the browser understands works: #ff5c00, rgb(255 92 0), hsl(21 100% 50%), oklch(0.7 0.19 40), color-mix(…), and named colors alike.

Paste several color values together (one per line, or comma-separated) and you get a single palette node instead of a scatter of swatches. This is the fastest way to teach Krafa a color system: copy the values straight out of your theme file.

Markdown, then code

Both are scored heuristically. Markdown looks for headings, fenced blocks, link syntax, and list markers and needs a score of at least 2. Code looks for language keywords, braces, and consistent indentation and needs at least 3.

Markdown is checked first, so a document about code stays Markdown while a bare function becomes code.

Tables, then plain text

What's left is run through a table parser that understands Markdown pipe tables, tab-separated values, and simple CSV. Paste a range out of a spreadsheet and you get a table.

Anything that survives all of the above is a text note.

Files and folders

Drag files onto the canvas, or use Upload from computer in the create menu:

  • Images, video, and audio upload to storage and are served back from a stable URL, so the board still works on another machine. If an upload fails, Krafa falls back to a local blob URL so you don't lose the paste.
  • .csv and .tsv become tables when they parse cleanly, notes when they don't.
  • .md, .markdown, .mdx become Markdown nodes.
  • Source files (.js, .ts, .py, .css, .html, and friends) become code nodes.
  • Any other text file becomes a note.

Dropping a folder from your desktop creates a folder node containing its files. Krafa reads one level deep and ignores nested subfolders.

Where things land

Pasted nodes appear at your cursor; dropped files appear where you dropped them. Paste several items at once and they cascade with a 24-pixel offset instead of stacking invisibly on top of each other.

Every node can be resized from the grip in its bottom-right corner. Hold Shift while dragging to preserve the aspect ratio.

What gets learned

Most pastes trigger a taste extraction, but not all of them. Video, audio, tables, folders, and stacks are skipped, and a text note has to be at least 100 characters before it counts. A shimmer on the node tells you extraction is running.

Tip

Since extraction ignores tables and media players, use them freely for scratch material: a spreadsheet of competitor pricing or a screen recording you're referencing won't dilute your taste profile.

On this page

The thirteen content typesHow detection decidesURLs and dataColorsMarkdown, then codeTables, then plain textFiles and foldersWhere things landWhat gets learned