Finding Blocks
1,600+ blocks and growing. How to actually find the one you need: search techniques, the group taxonomy, naming patterns, and starter sets per job.
The block library is huge on purpose. The trick is not knowing every block, but finding the right one in seconds. This page collects the discovery techniques that work.
Search Techniques
- Canvas search: right-click the canvas → Add new block, or press
Ctrl+Fin a blueprint, then type. It matches block names, display names, groups, and aliases. - Search by verb. Blocks are named by what they do:
search,create,update,remove,get,set,convert,send,render. Start with the verb, not the noun. - Search by system: prefix with the thing you're touching:
storage,http,redis,postmark,state,query,array,object,function. - ⌘K on this site. The docs search (top-right) covers blocks live: same names, groups, and aliases, with links to each block's page.
- Block Search in Studio. The cluster's Block Search view searches blocks across all your blueprints, handy for "where did I use that before?".
The Group Taxonomy
Every block belongs to a base group: browse them in All blocks. The groups you'll live in most:
Group
What's inside
Go there when
state ui / state elementsPages, forms, inputs, tables, layout Building anything a user sees
storage / queryDocuments, search, filters, mutations Reading or writing data
http connection / apiEndpoints, requests, responses, auth Building or calling APIs
array / objectMap, filter, convert, fields Transforming data between blocks
condition / flowBranches, loops, conditions Controlling execution
functionTriggers, returns, execution Structuring reusable logic
redis cacheCache get/set/delete, TTL Speeding up expensive flows
Integrations (postmark, discord, twilio, …) Third-party send/receive blocks Talking to the outside world
Reading Block Names
Type names are <system>_<action>_<subject>: function_search, query_bool_term_fields, httpconnection_set_json, mutations_set_custom_field. Once you read names that way, search becomes guess-and-check-free: need to update a document? Something with update and document → function_update_document_mutations.
Display names are the friendly version shown on canvas ("reply in json", "get form data"); type names are what you search and what block pages are titled with.
Starter Sets by Job
Job
Blocks to know first
Build a page state_page, state_render_page, state_h1/state_form/state_input_dynamic, value_default
Build an API on_startup_register_uri_get/_post, trigger_custom_function, httpconnection_set_json, httpconnection_current_request
Read data function_search, function_get_document, query_and, query_bool_term_fields, query_sort_field, storage
Write data function_create_document_from_mutations, function_update_document_mutations, mutations_set_bp_field_multiple, mutations_set_custom_field
Transform data object_new_fields, object_update_fields, array_map, array_convert_to_fielddefinitions
Handle errors success/error out-pins, function_console_log, branch, condition_not_empty_value
Background work function_custom_execute_from_queue, schedule_repeating_event, storage_event
Next Steps
Block Templates Proven combinations once you've found the parts. Browse All Blocks Every block by group, with pins and info. Tips & Tricks Canvas search, smart pins, and other discovery shortcuts.
| Group | What's inside | Go there when |
|---|---|---|
state ui / state elements | Pages, forms, inputs, tables, layout | Building anything a user sees |
storage / query | Documents, search, filters, mutations | Reading or writing data |
http connection / api | Endpoints, requests, responses, auth | Building or calling APIs |
array / object | Map, filter, convert, fields | Transforming data between blocks |
condition / flow | Branches, loops, conditions | Controlling execution |
function | Triggers, returns, execution | Structuring reusable logic |
redis cache | Cache get/set/delete, TTL | Speeding up expensive flows |
Integrations (postmark, discord, twilio, …) | Third-party send/receive blocks | Talking to the outside world |
<system>_<action>_<subject>: function_search, query_bool_term_fields, httpconnection_set_json, mutations_set_custom_field. Once you read names that way, search becomes guess-and-check-free: need to update a document? Something with update and document → function_update_document_mutations.| Job | Blocks to know first |
|---|---|
| Build a page | state_page, state_render_page, state_h1/state_form/state_input_dynamic, value_default |
| Build an API | on_startup_register_uri_get/_post, trigger_custom_function, httpconnection_set_json, httpconnection_current_request |
| Read data | function_search, function_get_document, query_and, query_bool_term_fields, query_sort_field, storage |
| Write data | function_create_document_from_mutations, function_update_document_mutations, mutations_set_bp_field_multiple, mutations_set_custom_field |
| Transform data | object_new_fields, object_update_fields, array_map, array_convert_to_fielddefinitions |
| Handle errors | success/error out-pins, function_console_log, branch, condition_not_empty_value |
| Background work | function_custom_execute_from_queue, schedule_repeating_event, storage_event |