ToolSite

Free Tools for Backend/DevOps Engineers

Essential free tools for backend and DevOps: cron generator, IP/CIDR calculator, JSON/YAML tools, hash calculator, JWT decoder, and more. All browser-based.

By ToolSite11 min readroundups

Backend Tools Without the SSH Session

Backend and DevOps work involves a lot of small, repetitive data tasks that sit between the real work. Decoding JWT tokens from log files. Calculating subnet ranges for a new VPC. Building cron expressions for scheduled jobs. Converting between JSON, YAML, TOML, and XML because every tool in the stack uses a different config format. Computing file hashes to verify artifact integrity.

None of these are the main event. They are the five-minute detours that interrupt your flow. A browser-based tool turns each detour into a ten-second interaction. Open a tab, paste your data, get the result, close the tab. Here is the toolkit organized by task domain.

Cron Expression Generator

Every Linux crontab, every CI/CD pipeline schedule, every Kubernetes CronJob resource uses cron syntax. And every engineer has stared at an expression like 0 */6 * * 1-5 trying to remember whether the hour field or the day-of-week field comes third.

The Cron Generator builds expressions from dropdown menus and translates existing expressions into plain English. Select the minute, hour, day of month, month, and day of week from dropdowns and the tool outputs the cron expression. Paste an expression and the tool outputs the human-readable schedule.

Build from scratch: you need a job that runs at 2:30 AM every Sunday. Select minute 30, hour 2, day of month every, month every, day of week Sunday. Output: 30 2 * * 0. Paste into your Cronicle resource. Done in 15 seconds.

Decode an existing expression: you find */15 9-17 * * 1-5 in a legacy crontab with no comment. Paste it into the generator and read: "Every 15 minutes, from 09:00 AM to 05:00 PM, Monday through Friday." Now you know what it does without counting asterisks.

Verify with next executions: the tool shows the next five execution times based on the expression. If you build a schedule for "the first Monday of every month" and the next execution dates are all Mondays, you have the expression right. If one lands on a Tuesday, something is off.

Common cron traps the generator catches:

  • The day-of-month and day-of-week fields interact. 0 0 1 * 1 means "midnight on the first of the month AND every Monday." That is probably not what you meant.
  • */10 in the hour field means every 10 hours, not every 10 minutes. The minute field is first.
  • Cron uses 0 for Sunday in the day-of-week field. Some implementations use 7. The generator uses 0.

IP and CIDR Calculator

Configuring VPC subnets, firewall rules, Docker networks, or Kubernetes pod CIDRs. Every networking task starts with a CIDR block and the question: how many IPs does this actually give me?

The IP/CIDR Calculator takes an IP address with prefix length (like 10.0.0.0/28) and returns the complete breakdown: network address, broadcast address, first usable host, last usable host, total host count, usable host count, subnet mask in dotted decimal, wildcard mask, and binary representation.

Real workflow: you are provisioning a new subnet in AWS for a microservice cluster. You need at least 10 IPs (with room for scaling) and the subnet must not overlap with existing 10.0.1.0/24 and 10.0.2.0/24. You enter 10.0.3.0/28 into the calculator. It returns 16 total addresses, 14 usable. Enough for now. The range is 10.0.3.0 to 10.0.3.15. No overlap with the existing subnets. You provision it.

Real workflow: you are reading a firewall rule that allows traffic from 172.16.0.0/12. What does that cover? The calculator shows: network 172.16.0.0, broadcast 172.31.255.255, over one million addresses. That is the entire RFC 1918 private range for the 172.16 block. The rule is allowing all traffic from any private IP in that range. Probably too broad.

Key facts the calculator surfaces:

  • A /28 has 16 total addresses but only 14 usable (network and broadcast addresses are reserved)
  • A /31 has 2 usable addresses and is valid for point-to-point links (RFC 3021)
  • The wildcard mask is the inverse of the subnet mask and is what Cisco ACLs and some firewall formats expect
  • IPv6 CIDR is also supported for IPv6 subnet planning

JSON Tools: Formatter, Validator, and Converters

JSON is everywhere in backend work. API responses. Config files. Log output. Terraform state files. Kubernetes manifests generated by tools. The JSON toolkit covers formatting, validation, and cross-format conversion.

JSON Formatter and Validator

The JSON Formatter pretty-prints minified JSON for readability. The JSON Validator catches syntax errors with exact line and column numbers. Use them as a pair: validate first to confirm the structure is sound, then format for inspection.

Real workflow: a Terraform plan outputs a large JSON state file. You need to find a specific resource's attributes. You validate the JSON (it passes), then format it. The formatted output reveals nested resources, dependencies, and attribute values in a scannable tree. You find the attribute in seconds instead of scrolling through a single-line blob.

JSON to YAML, CSV, TOML, and XML

Every tool in the backend stack uses a different config format. Kubernetes speaks YAML. CI pipelines use YAML. Python config files use TOML. Data analysts export CSV. Legacy systems send XML. You need to move data between these formats without writing a conversion script for each direction.

The format converters handle the impedance mismatches between formats:

  • JSON to YAML: nested JSON objects become indented YAML blocks. Arrays become dash-prefixed sequences. Booleans and nulls use YAML's native true, false, and null literals.
  • JSON to CSV: arrays of objects become rows with the object keys as column headers. Nested objects flatten with dot notation (address.city). Arrays of primitives become comma-separated values in a single cell.
  • JSON to TOML: nested objects become TOML section headers ([parent.child]). Arrays become inline or multiline TOML arrays.
  • JSON to XML: JSON keys become XML element names. Object attributes become XML attributes prefixed with @. Arrays become repeated elements.

Real workflow: a data pipeline exports results as JSON but the downstream team needs CSV. You paste the JSON array into the JSON to CSV converter. It produces a CSV with column headers from the object keys. You download and forward. No Python script. No pandas. No jq wizardry.

YAML Validator

YAML is the config language of Kubernetes, Docker Compose, Ansible, GitHub Actions, GitLab CI, CircleCI, and roughly half the DevOps ecosystem. It is also the format where a single misindented space silently changes the structure without producing a syntax error.

The YAML Validator catches syntax errors: tabs used for indentation (YAML requires spaces), inconsistent indentation levels, invalid characters in keys. It reports the exact line and column of each error.

Real workflow: a Kubernetes deployment fails with a cryptic error converting YAML to JSON. You copy the manifest into the YAML Validator. It flags line 47: a list item indented with 3 spaces while the rest of the list used 2. The indentation was syntactically valid YAML but created a different structure than intended. You fix the indentation and the deployment succeeds.

Beyond syntax checking: after validating that the YAML is syntactically correct, convert it to JSON with the YAML to JSON Converter. The JSON output shows the actual parsed structure, which reveals semantically wrong but syntactically valid constructs. A value you thought was a string might be parsed as a boolean because YAML interprets yes, no, on, and off as booleans.

The YAML boolean trap: YAML 1.1 interprets yes, no, true, false, on, and off (in any casing) as booleans. If your config has a country code field with value NO (Norway), YAML parses it as false. The JSON conversion shows this immediately: the string "NO" becomes the boolean false. Quote all values that could collide with YAML's type system.

Hash Calculator

File integrity verification is a constant backend task. Downloaded an ISO for a VM image? Verify the SHA-256. Pulled a Docker image? Verify the digest. Generated a build artifact? Hash it before uploading to a package registry.

The Hash Calculator computes MD5, SHA-1, SHA-256, and SHA-512 digests from text input or file uploads. File hashing uses the Web Crypto API and runs entirely in the browser. Your file is never uploaded to a server.

Real workflow: a third-party vendor provides a software package for installation on your servers, along with a SHA-256 checksum. Before running the installer, you drag the file into the Hash Calculator, compute the SHA-256, and compare against the published checksum. They match. The file was not tampered with during download.

Real workflow: you are debugging a CI pipeline where a build step produces different output on different runners. You hash the output artifact from runner A and runner B. The hashes differ. The build is not deterministic. You investigate the build tool's version and find that runner A has an older version that produces different output. You pin the version and the hashes match.

Algorithm guidance: SHA-256 is the minimum for security-sensitive verification. MD5 and SHA-1 are broken for cryptographic purposes but remain useful for non-security integrity checks like detecting accidental file corruption during transfer.

JWT Decoder

Backend systems pass JWTs in Authorization headers, cookies, and message queues. When authentication fails, the first debugging step is always the same: decode the token and check the claims.

The JWT Decoder decodes the header and payload segments. You see the algorithm, token type, key ID, subject, issuer, audience, expiration, issued-at time, and any custom claims your auth server attaches.

Real workflow: a service-to-service call returns 401 Unauthorized. You extract the JWT from the request log, decode it, and check the aud (audience) claim. The token's audience is service-a but the request was sent to service-b. The receiving service correctly rejected a token issued for a different audience. The bug is in the calling service's token acquisition: it requested a token for the wrong audience.

Real workflow: users report intermittent 401 errors. You decode a failing token and check the exp claim. The token expired 30 seconds ago. The iat (issued-at) claim shows it was issued 5 minutes ago. The token lifetime is 5 minutes but the user's request took longer to process. The fix is to increase the token lifetime or implement token refresh.

The decoder does not verify the signature. It decodes the Base64url-encoded payload. Signature verification requires the server's secret or public key and is the server's responsibility at request time. The decoder tells you what anyone who handles the token can see.

Unix Timestamp Converter

Log files, database records, and API responses use Unix epoch timestamps. A value like 1716998400 means nothing to a human reading it. The Unix Timestamp Converter converts between timestamps and human-readable dates in your local timezone.

Real workflow: a database query shows that a user record was updated at 1698796800. You paste the timestamp and get: Sunday, October 31, 2023 at 16:00:00 UTC. Halloween. A deployment happened that day that changed the user schema. The update was part of a migration, not a bug.

Real workflow: you are setting a TTL on a cache entry. The cache API expects an absolute Unix timestamp for expiration, not a duration. You pick a date 24 hours from now in the converter's calendar widget and copy the corresponding timestamp. No mental arithmetic with date +%s and adding 86400.

Base64 Encoder and Decoder

Binary data travels through text-based protocols encoded as Base64. JSON payloads. PEM certificates. Data URIs. Kubernetes Secrets. The Base64 Encoder/Decoder handles standard Base64 and the URL-safe Base64url variant.

Real workflow: a Kubernetes Secret stores a TLS certificate as a Base64-encoded string. You copy the value, decode it with the Base64 tool, and read the certificate's subject, issuer, and expiration in plain text. The certificate expired last month. You rotate it.

Real workflow: you are writing a test that sends a Base64-encoded binary payload to an API. You type the raw test data, encode it to Base64, and paste the output into your test fixture. No terminal. No base64 command. No trailing newline accidentally included in the encoded string.

UUID Generator

Generating unique identifiers for database records, test fixtures, correlation IDs in distributed tracing, and idempotency keys. The UUID Generator produces UUID v4 values using the browser's crypto.getRandomValues() API, which is cryptographically secure.

Batch-generate up to 100 UUIDs at a time for database seed scripts, load test data, or bulk record creation where each row needs a unique primary key.

Diff Checker

Backend work involves comparing config files, API responses, and log outputs across environments. The Diff Checker does word-level and line-level comparison between any two text blocks.

Real workflow: staging and production Kubernetes deployments produce different behavior, but the manifests look identical at a glance. You copy the staging manifest and production manifest into the Diff Checker. It highlights a single difference: the production manifest's replicas field is still set to 1 while staging was bumped to 3. The autoscaler override was only applied to staging.

Real workflow: an API regression test fails. The expected and actual responses are both 200 lines of JSON. You format both through the JSON Formatter and diff them. One field changed from "status": "active" to "status": "pending" because a recent deployment added an approval step. The test expectation needs updating.

Every tool runs locally. No data leaves your browser. Browse the full tools directory for the complete list organized by category. Pick the tools that match your daily workflow and bookmark them.

Related Reading