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
Session (in-memory)Until page reloadCurrent sessionNo
IndexedDBUntil 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
SessionNoTemporary shared state, selections, counters, and values that reset on page reload
CloudNoSigned-in user data that should follow the user across devices

The Storage type defaults to IndexedDB. Change it to Session for temporary in-memory state, or Cloud when the data should be stored for the signed-in user. Session uses the same Read, Write, Update, Delete, and Browse nodes; writes notify matching readers. Session data is isolated to the currently loaded app and resets when an app is loaded or cleared, or on page reload and does not use the browser sessionStorage API.

Common patterns​

All storage tiers share a consistent socket naming convention:

SocketDirectionDescription
LocationInputA namespace/category for grouping keys (defaults to the current graph)
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.