Skip to main content

Storage & State nodes

tailrmade provides several ways to store and retrieve data. Each storage tier serves a different purpose:

TierPersistenceScopeSign-in required
State (in-memory)Until page reloadCurrent sessionNo
Browser StorageUntil browser data is clearedCurrent browserNo
Cloud Storage (Tailrmade)PermanentAny deviceYes

Storage​

The Storage nodes are a unified set of nodes for reading, writing, deleting, and browsing data across browser and cloud backends. All nodes expose a Storage type input that lets you switch the underlying backend without rewiring your graph:

BackendDefaultBest for
IndexedDBYesLarger or more structured data, many records, metadata-driven browsing
Local storageNoSmall/simple settings, quick flags, lightweight values (shared with the raw browser localStorage API)
CloudNoSigned-in user data that should follow the user across devices

The Storage type defaults to IndexedDB. Change it to Local storage when you need a small, simple key/value store, or Cloud when the data should be stored for the signed-in user.

Common patterns​

All storage tiers share a consistent socket naming convention:

SocketDirectionDescription
LocationInputA namespace/category for grouping keys (default: Default)
KeyInputThe identifier within a location
ValueInput/OutputThe data to write or read
Fallback valueInputReturned when the key does not exist (Read nodes)
SuccessOutputtrue when the operation completed successfully
ErrorOutputError message if the operation failed, empty otherwise
Show Toast NotificationInputOptional toast feedback for read, write, delete, and browse

Write controls​

Write and delete nodes use manual execution — they only run when their Execute trigger socket fires. This prevents accidental writes during graph loading or upstream changes.

Write nodes include two boolean inputs:

InputDefaultBehaviour
Non-empty onlytrueSkips the write when the value is null, undefined, "", [], or {}
Insert onlyfalseWrites only when the key does not already exist

When a write is skipped, the Error output contains the reason.

Execute trigger​

Write and delete nodes have an Execute trigger socket. Connect any trigger source to it — the node will run its operation when the trigger fires. This matches their manual update behaviour.

Read node updates​

State/Storage Read follows the node's update behaviour:

  • With on change enabled, the node re-executes not just on socket change but also when the matching stored value changes for its selected Storage type, Location, and Key
  • With on change disabled, the node only updates when executed manually or by a trigger socket

If the Key input is empty, Storage Read treats the whole location as its source and updates when that location changes.