Skip to content
from
orders
where o => o.createdAt > (now - 7 days)
select o => o.grandTotal
sum

The Expression Language for Modern Business Logic

Powerful, predictable, and guaranteed to finish. Safely embed custom logic into any application.

Power Meets Predictability

Filtrera was built to solve a difficult problem: how do you let users or developers define custom business logic without risking the stability of your entire system? Most scripting languages are powerful, but can accidentally (or maliciously) enter an infinite loop, consuming all your resources.

Filtrera provides the expressiveness of a functional language with a critical guarantee: every script is guaranteed to finish.

Always Halts. No Surprises.

By design, Filtrera is not Turing-complete. It has no recursion or unbounded loops, which means scripts can never run forever. This makes it incredibly safe for rules engines, configurations, and user-defined logic.

Business Logic that Reads Like English

With a clean, chainable syntax and powerful built-in functions for data manipulation, you can write complex logic that remains clear and maintainable. Perfect for business analysts and developers alike.

Secure by Design

Run untrusted code in a secure sandbox. The host application retains full control over the execution environment, including which functions and data are exposed, preventing unwanted side effects.

Easily Embeddable

Designed from the ground up to be embedded in any .NET application. Extend your platform with a safe, powerful expression language that your team and your customers can use.

A Taste of Filtrera

Go beyond simple filters. Use generators, folds, and pattern matching to solve complex problems in a clear, declarative way.

// Calculate the total price with a tiered discount
param orderLines = [
{ product = 'A', quantity = 2, price = 100 },
{ product = 'B', quantity = 5, price = 50 }
]
param customerTier = 'gold'
// Define a discount rate based on customer tier
let discount = customerTier match
'gold' |> 20%
'silver' |> 10%
|> 0%
// Calculate the final total
from orderLines
select l => l.quantity * l.price * (100% - discount)
sum

Start Your Journey

Ready to dive in? Explore the language in our interactive playground or read the documentation to get started.

Filtrera is made by Kristoffer Lindvall

© Copyright Kristoffer Lindvall 2024 | Acknowledgements