ToolsDeveloper Tools

Developer Tools

Data Pipeline Builder

Chain multiple tools together to create powerful automated workflows

Your Workflow

Add steps to process your data sequentially.

+ Add Next Step to Pipeline

Encoding

Formatting

Text

Crypto

Was this tool helpful?

How to Use

Step 1

Paste Your Code

Step 2

Configure Options

Step 3

Get Results

Step 4

Copy or Download

Share this tool

Learn More

Decoding a Base64 Payload and Pretty-Printing the JSON Inside It

A webhook log, a Kubernetes secret, or a config blob often arrives as one long Base64 string with JSON hiding inside. Handling it by hand means decoding in one browser tab, copying the result, and pasting it into a formatter in another. Here you paste the blob into the Initial Input box, click Base64 Decode, then click Format JSON underneath it. Both steps run automatically roughly 300 milliseconds after you stop typing, and every step prints its own Step Output panel, so the raw decoded string is visible before indentation is applied. When the decode returns something that is not valid JSON, the second panel says so immediately instead of leaving you guessing which half of the chain actually broke.

Replacing the Throwaway Node or Python One-Liner You Were About to Write

Most of these conversions are two lines of code, but opening a REPL to uppercase a list, strip messy spacing, and URL encode the result costs more time than the transformation itself. This builder gives you the same composition model as a shell pipe: the output of step two feeds step three, step three feeds step four, and no intermediate variables exist. Steps come from a grid grouped into Encoding, Formatting, Text, and Crypto, and each click appends one node to the bottom of the chain. Because the whole chain re-runs on a short debounce after every keystroke, you can edit the starting data and watch the final value change with no Run button to press.

What the Twelve Available Steps Do and Which Order Actually Works

Encoding covers Base64 Encode, Base64 Decode, URL Encode, and URL Decode. Formatting covers Format JSON, which re-indents with two spaces, and Minify JSON, which strips every optional byte. Text covers To Uppercase, To Lowercase, Reverse Characters, and Remove Extra Whitespace, which collapses repeated spaces and tabs, trims each line, and caps blank runs at a single empty line. Crypto adds MD5 and SHA-256, though only SHA-256 computes a real digest through the Web Crypto API. Sequence matters more than people expect: uppercasing before hashing changes the digest entirely, and minifying JSON before Base64 encoding yields a noticeably shorter string. Put parsing and cleanup steps early, and leave irreversible operations such as hashing for last.

Debugging a Chain That Returns Error: Invalid JSON String

When a step cannot handle what it received, its panel turns red and prints the reason rather than silently emitting empty text. Format JSON reports an invalid JSON string, Base64 Decode reports invalid Base64, and URL Decode reports invalid URL encoding. One behaviour is worth knowing before you chase the wrong card: the error message itself is passed forward as input to the next step, so a single failure high in the chain makes every panel below it look broken too. Read the panels top to bottom and fix only the first red one. The usual culprits are a trailing newline copied along with the Base64 text, a JWT segment using URL-safe Base64 that atob rejects, or data that was already decoded once.

Is It Safe to Paste a Staging Token or a Customer Record In Here?

Every step is a plain JavaScript function executing inside your own tab. Base64 uses the browser btoa and atob calls, URL encoding uses encodeURIComponent, the JSON steps use JSON.parse and JSON.stringify, and SHA-256 uses crypto.subtle.digest. This page has no API route behind it, so nothing you paste is uploaded, logged, or retained anywhere, and the chain keeps working with the network disconnected. The tradeoff is that nothing persists either: your steps and your data exist only in memory until you reload. For regulated data, the realistic risks are a screen-sharing call or a browser extension reading the page, not the tool sending your text somewhere.

Frequently Asked Questions

Paste the encoded string into the Initial Input box, click Base64 Decode, then click Format JSON. The two steps stack as cards and run automatically about a third of a second after you stop typing. The decode card shows the raw JSON and the format card shows it indented, so you can see exactly which step failed if the result looks wrong.

Not in this version. Steps are appended to the bottom of the chain in the order you click them, and the only per-step control is the X button that deletes that node. To change the order, delete the steps that sit in the wrong place and add them again in the sequence you want. Clear All wipes the input and every step together.

The browser Web Crypto API implements the SHA family but not MD5, so that step honestly returns a note explaining the limitation rather than inventing a digest. Use the SHA-256 step for any hashing you need inside a chain. If you genuinely need MD5 for a legacy checksum comparison, run md5sum locally or use a library-backed hashing tool.

No. The step list and the text you typed live in page state only, with no saved workflow, no account, and no shareable link, so a refresh or a closed tab returns you to an empty builder. For a sequence you run often, note the step order somewhere and rebuild it; four or five clicks restores it.

The step hashes exactly what the previous card handed it, which includes a trailing newline you pasted or an uppercase conversion you added earlier in the chain. Text is encoded as UTF-8 before digesting, matching most backend defaults. Compare the Step Output directly above the hash with the precise bytes your server hashes; stray whitespace is almost always the difference.