Backed by mandō

Bring order to
everything.

Sortable is the universal data ordering engine. We sort lines of text with deterministic precision, multi-key intelligence, and parallel execution — so your pipelines never have to wonder what comes next.

See the engine
D N Q L W
6,800+ engineers ordering data at scale

Trusted by teams using

Vercel
🔷 Snowflake
🟠 AWS Redshift
🐙 GitHub Actions
🔶 dbt
🟣 Datadog
🔵 Kubernetes
🟢 Apache Kafka

Every ordering primitive.
One engine.

We've taken the deepest primitives of data ordering and built a platform that handles every conceivable sort topology.

🔄

InvertRank™ -r

Reverse the result of any comparison instantly. When ascending isn't the answer, InvertRank™ flips the entire ordering plane with zero overhead. Descending is the new default.

🔢

NumericCore™ -n

Sort by actual numeric value, not lexicographic order. Because in what universe does "9" come after "10"? NumericCore™ understands math so your pipelines don't have to.

🔑

KeyField™ -k

Define precise sort keys by field position. Multi-key sorting with arbitrary start and stop positions, per-key ordering overrides, and character-level granularity. The most powerful key specification in data infrastructure.

🧬

UniquePass™ -u

Deduplicate on the fly. UniquePass™ outputs only the first of lines with equal sort keys, collapsing duplicates at ordering time. Sort and dedup in a single atomic pass.

📏

HumanScale™ -h

Sort human-readable quantities — 2K, 1G, 500M — by their actual magnitude. HumanScale™ speaks the language of disk usage reports, bandwidth metrics, and infra dashboards natively.

ParallelSort™ --parallel

Run N concurrent sort threads. ParallelSort™ automatically decomposes the workload across available cores. Linear scaling on multi-core systems. The sort primitive, finally parallelized.

📆

MonthRank™ -M

Sort by month abbreviation — JAN before FEB before MAR. MonthRank™ understands calendar semantics out of the box. No date parsing libraries. No locale nightmares. Just correct ordering.

🏷️

VersionSort™ -V

Natural sort of version strings — 1.2.10 after 1.2.9, not before it. VersionSort™ handles semver, release tags, and any version numbering scheme your team uses.

Why teams choose Sortable.

Capability Sortable Spreadsheet Sort Custom Code
Multi-key ordering Limited Manual
Human-readable magnitudes Manual
Parallel execution Complex
Version string sorting Manual
Stable sort guarantee Varies Varies
Sorted-input validation Manual
Pre-sorted merge Complex
Atomic deduplication Extra pass

Data ordering,
radically simplified.

01

Ingest your data

Pass one or more files to Sortable, or pipe from stdin. Our engine accepts any line-delimited input — CSV rows, log entries, config values, version tags. No schema required.

02

Define your ordering topology

Configure keys, field separators, sort modes, and comparison types. Stack NumericCore™ on field 3, MonthRank™ on field 1, InvertRank™ globally — all in a single invocation.

03

ParallelSort™ engine executes

Sortable decomposes the workload across all available cores, applies your key definitions and comparison modes, and produces a deterministic, totally-ordered output stream.

04

Ordered data streams out

Results are delivered to stdout or directly to a file via built-in output routing. Pipe to the next stage, write to disk, or validate with our CheckOrder™ mode. Zero ceremony.

0
Records sorted daily
0
Ordering accuracy
0
Avg sort latency (1M rows)
0
Teams ordering with Sortable

Simple ordering.
Simple pricing.

Starter
$0/mo

For individuals exploring data ordering

  • Single-file sorting
  • Lexicographic + numeric modes
  • InvertRank™ (-r)
  • Community support
  • 500 sorts/day
Enterprise
$399/mo

For organizations ordering at global scale

  • Everything in Pro
  • ParallelSort™ (--parallel)
  • VersionSort™ (-V)
  • Pre-sorted merge (-m)
  • SSO & RBAC
  • Unlimited sorts
  • Dedicated CSM
On-Prem
Custom

For air-gapped environments and sovereign data

  • Everything in Enterprise
  • Self-hosted deployment
  • Custom buffer sizes (-S)
  • Dedicated temp directories (-T)
  • Compliance certifications
  • White-glove onboarding

Engineers who sort
don't go back to chaos.

★★★★★

"We were writing custom comparison functions in Python for every data pipeline. Sortable replaced 2,000 lines of sorting logic with a single invocation. KeyField™ is absurdly powerful."

K
Kenji Matsuda Staff Data Engineer, StreamForge
★★★★★

"HumanScale™ alone saved our SRE team 6 hours a week. We sort `du -h` output natively now. No more piping through three different utilities to get disk usage ranked by size."

S
Sofia Lindqvist SRE Lead, NorthStack
★★★★★

"ParallelSort™ on a 64-core box reduced our nightly batch sort from 4 hours to 12 minutes. We literally thought the job had failed because it finished so fast. It hadn't."

R
Raj Patel VP Infrastructure, DataCrate
★★★★★

"VersionSort™ is the feature I didn't know I needed. Sorting release tags correctly — 1.2.10 after 1.2.9 — should have been solved decades ago. Sortable just handles it."

E
Elena Voss Release Engineer, ShipKit
★★★★★

"We use Sortable's CheckOrder™ mode in CI to validate that our config files stay alphabetical. It catches drift before it reaches production. It's a one-liner that prevents chaos."

D
Derek O'Brien Platform Engineer, ConfigOps

See Sortable in action.

Real data. Real ordering. Zero smoke and mirrors.

~/data

Records being sorted right now.

Questions about ordering.
Answered in order.

Your sort function handles one comparison type, in one language, with one threading model. Sortable handles lexicographic, numeric, human-readable, month, version, and general-numeric sorting — with multi-key support, parallel execution, stable ordering guarantees, and built-in deduplication. In a single invocation. The question isn't "how is it different" — it's "why are you still maintaining custom comparison logic?"

When two records have equal sort keys, a stable sort preserves their original relative order. Sortable's StableMode™ (-s) guarantees this behavior. No shuffling of equal elements. No non-determinism. If records A and B have the same key and A appeared first in the input, A will appear first in the output. Always.

Yes. Sortable's CheckOrder™ mode (-c) validates that input is in sorted order and exits immediately at the first out-of-order line. Use -C for silent mode that returns only an exit code. Perfect for CI validations, pre-merge checks, and data quality gates.

ParallelSort™ uses the --parallel=N flag to control the number of concurrent sort threads. It automatically partitions data, sorts partitions independently, and merges results. On a 16-core machine, expect near-linear speedups for large datasets. We've benchmarked 10x improvements on 100M+ record files.

By default, Sortable writes to stdout — your source files are never touched. If you need direct file output, use the -o flag to write results to a specific file. Even then, the original input files remain immutable. Sortable is a pure ordering function with zero side effects on source data.

Chaos is a choice.
Order is Sortable.

Join 6,800+ engineers who've already brought deterministic ordering to their data pipelines. Early access members get lifetime Pro pricing.

No spam. No unsorted emails. Just ordering updates.

See mandō's portfolio

The accelerator behind the tools that run the internet.