> **SmartBlocks** _adding a new dimension to Roam, making it a programmable note-taking tool for networked thought._

Table of Contents


SmartBlocks makes it easy to reuse text in a dynamic way in Roam. It can be compared to other snippet/template insertion tools like TextExpander and Alfred. However, SmartBlocks completely lives in your Roam graph and can smartly interact with your graph. All SmartBlocks workflows are defined in the graph and are performed in your graph. SmartBlocks are made of the following key components:

  • Workflows: These are the definitions of what the SmartBlock will do, it serves as a template for the SmartBlocks actions.
  • Commands: A block that is output can include a command that makes your block do amazing and dynamic things.
  • Trigger: is the keystrokes you type so that the workflow is run.

Activating SmartBlocks Workflow

To initiate a SmartBlocks workflow, type jj (two j's) -- this can be customized.

A list will popup with available SmartBlocks Actions

Keep typing the name of the workflow to filter the list, or use the up and down arrow to navigate

Press enter or click on the workflow you want to run

Getting started video series by R.J Nestor

Other Useful videos

Useful Examples

Useful examples of SmartBlocks from the community can be found at: GitHub/roamhacker/SmartBlocks/Issues. Also, if you build something interesting, please consider contributing via this repository.

Additionally, there is an active community at channel #roam42 discussing and building SmartBlocks. Stop by if you need help or want to share your ideas.

Learning SmartBlocks

SmartBlocks includes a number of predefined workflows and a way for you to create your own workflows. Examples of predefined workflows:

  • Date insertions (Examples: Monday, Last Monday, Next Monday)
  • Time insertion
  • Horizontal Line
  • Inserting a random block (Serendipity)
    • and more to come