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 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 |
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 |
