RoamJS is becoming a part of SamePage! To check out the inter-tool network we're building, click here to learn more!


Create custom and programmable templates from within Roam!

This extension is available in Roam Depot! Install it directly from Roam by navigating to Settings > RoamDepot > Browse. To help test a development version of the extension before it's available in Roam Depot, click here to download.


Create custom and programmable templates from within Roam!


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. These can be predefined or custom workflows.

  • Commands: Commands are instructions that make your SmartBlock workflow do amazing and dynamic things.

  • Trigger: The keystrokes you type so that the workflow is run. The default keystroke is jj.

Table of Contents

The following steps dive into all the features SmartBlocks has to offer in increasing complexity; from beginners to developer.

  1. Trigger Your Workflow

  2. Understanding Commands

  3. Using Pre-Defined Workflows

  4. Make Your Own Workflows

  5. Command Reference

  6. Alternative Methods

  7. SmartBlocks Store

  8. Developer Docs



This extension was inspired by and acts as version 2 of the original SmartBlocks module in the Roam42 extension. It will soon replace the current SmartBlocks module in Roam42. For a list of all the non-backward compatible changes from V1 to V2, check out the Migration Guide.


There is an active community at channels #roam42 and #roam-js discussing and building SmartBlocks. Stop by if you need help or want to share your ideas.


This extension is brought to you by RoamJS! If you are facing any issues reach out to or click on the chat button on the bottom right.

Other Extensions