gitwtfhub

wtf is tournament?

n8n-io/tournament — explained in plain English

Analysis updated 2026-07-17 · repo last pushed 2026-04-28

62TypeScriptAudience · developerComplexity · 2/5MaintainedSetup · easy

TL;DR

Tournament safely evaluates `{{ }}` template expressions against a data object, a modern, TypeScript-based replacement for older templating tools used in workflow automation.

Mindmap

mindmap
  root((repo))
    What it does
      Evaluates expressions
      Uses data context
      Modern JS syntax support
    Tech stack
      TypeScript
      JavaScript
    Use cases
      Workflow templating
      Dynamic messages
      Expression hooks
    Audience
      Developers
      Automation tool builders

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Evaluate a template expression like {{ user.name }} against a data object inside a workflow tool.

REASON 2

Let users write dynamic notification messages using arrow functions and template literals safely.

REASON 3

Hook into expression evaluation to add logging, validation, or security checks before execution.

REASON 4

Replace an older templating library with a modern TypeScript-based expression evaluator.

What's in the stack?

TypeScriptJavaScript

How it stacks up

n8n-io/tournamentdevelopersdigest/multi-llm-siriomnitarium/scoptix
Stars626361
LanguageTypeScriptTypeScriptTypeScript
Last pushed2026-04-282024-01-10
MaintenanceMaintainedDormant
Setup difficultyeasymoderatemoderate
Complexity2/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 30min

No longer actively developed standalone, the active version now lives in the main n8n monorepo.

Wtf does this do

Tournament is a small library that evaluates template expressions, the kind you'd write inside curly braces like {{ 1 + 2 }} or {{ user.name }}. It's designed to be a modern replacement for an older templating tool, bringing it up to speed with current JavaScript features. The library takes a template string and a data object, then executes the expression inside the braces and returns the result. So if you have {{ user.name }} and pass it an object with a user named John, it gives you back "John". It supports modern JavaScript syntax too, like arrow functions and template literals (backtick strings), which the original version didn't handle well. The main use case is inside automation and workflow tools where you need to let users write dynamic expressions without executing arbitrary code unsafely. For instance, in a workflow builder, you might let someone write {{ Hello ${customer.firstName}! }} as part of a notification message, and the library evaluates it with the current customer's data. It also includes hooks so developers can intercept and modify expressions before they run, which is useful for logging, validation, or security purposes. One thing to note: this project has been moved into a larger monorepo maintained by n8n, and this standalone repository is no longer actively developed. If you're looking to use it, the active version lives in the main n8n project now. The library itself is fairly focused, it does one job (evaluating expressions with a data context) and aims to do it well with TypeScript support and good error handling built in.

Yoink these prompts

Prompt 1
Show me how to use Tournament to evaluate {{ user.name }} against a JavaScript object and return the result.
Prompt 2
Help me write a template expression using a template literal, like {{ `Hello ${customer.firstName}!` }}, and evaluate it with Tournament.
Prompt 3
Explain how Tournament's hooks let me intercept and validate expressions before they run.
Prompt 4
How does Tournament handle modern JavaScript syntax like arrow functions inside template expressions?
Prompt 5
Since this repo is no longer actively developed, show me how to use the version of Tournament now inside the n8n monorepo instead.

Frequently asked questions

wtf is tournament?

Tournament safely evaluates `{{ }}` template expressions against a data object, a modern, TypeScript-based replacement for older templating tools used in workflow automation.

What language is tournament written in?

Mainly TypeScript. The stack also includes TypeScript, JavaScript.

Is tournament actively maintained?

Maintained — commit in last 6 months (last push 2026-04-28).

How hard is tournament to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is tournament for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.