Data foundations for the AI Era

FeatureMesh structures your company's data into clear, composable building blocks.

Ready for both human decisions and AI systems.

Book a demo →

Sound familiar?

These are common challenges we hear from data teams.
FeatureMesh transforms this complexity into clarity.

"We need to join 5 tables just to know if a customer is active..."

— Data Engineer

"Every team has their own version of 'monthly revenue' calculation..."

— Analytics Lead

"Our ML features are a mess of duplicated pipelines..."

— ML Engineer

Meet FeatureQL

We've reimagined data transformation from the ground up. Forget about tables.
Think in features. Think in business logic. Think in pure transformations.

Abstracted

Feature expressions are decoupled from storage, optimization, and execution.

Atomic

Operates at the column level (that we call features) rather than at the table level.

f(x)

Functional

Pure-transformations facilitates reusability, collaboration, and testing.

Business Ready

Experimentation, growth accounting, point-in-time, simulations, out of the box.

How It Actually Works

1

Define entities and keys

That's the foundation of semantics.

CREATE FEATURES AS
SELECT 
    customers = entity(),
    customer_id = input(bigint#customers),
    orders = entity(),
    order_id = input(bigint#orders),
;
2

Map features to columns

Each column in your analytics database becomes a source feature.

CREATE FEATURES IN fm.core AS
SELECT 
    customer_data := external_sql(
        `SELECT orders FROM customer_history WHERE customer_id=%customer_id`,
        AS row(orders array(row(
            order_id bigint#orders, 
            date_create timestamp, 
            price decimal(10,2)
        )))
    ),
    customer_ml_batch := external_sql(
        `SELECT churn_risk FROM customer_ml_batch WHERE customer_id=%customer_id`,
        AS row(churn_risk float)
    ),
;
3

Write transformations

Express your business logic as declarative feature transformations.

CREATE FEATURES IN fm.marketing AS 
SELECT
    has_recent_orders := date_diff(
        array_max(fm.core.customer_data[orders][date_create]), 
        date_ref::timestamp, 
        'day'
    ) < 30,
    churn_risk := fm.core.customer_ml_batch[churn_risk],
    lifetime_value := array_sum(fm.core.customer_data[orders][price]),
    show_promocode_offline := not has_recent_orders 
        and lifetime_value > 1000.00 
        and churn_risk > 0.8e0,
;
4

Compute features in batch

Apply the transformation to any set of inputs, hybrid with SQL.

/* SQL */ 
SELECT
    show_promocode_offline, 
    COUNT(1) as num_customers
FROM FEATUREQL(
    SELECT 
        customer_id := bind_sql(SELECT customer_id FROM customers), 
        show_promocode_offline
) 
GROUP BY show_promocode_offline

Painless adoption, Zero disruption

Keep what works

Your current analytics stack works fine? Keep it running. Your existing APIs and services? They stay right where they are.
FeatureMesh works alongside your infrastructure, not against it.

Start small, scale smart

DAY
1

Move one piece of code from your backend to FeatureMesh. Test it. See it work.

WEEK
1

Data scientists are writing new features in FeatureQL instead of SQL. No migration needed.

MONTH
1

Gradually port existing business-rule heavy projects as needed. Your backend gets leaner and cleaner.

Risk-Free Evolution

No big-bang deployments. No risky migrations. Just progressive enhancement of your data capabilities. Move as fast or slow as your comfort allows.

What you'll love

Data scientists

Stop rebuilding features for each model. Access clean, validated features instantly. Focus on modeling, not data plumbing.

Engineers / Data engineers

No more scattered business logic. Clear ownership. Type-safe transformations. And way less code to maintain.

Data analysts / Business teams

Understand exactly how metrics are calculated. Experiment freely. Get the insights you need without waiting for engineering.

Your next competitive advantage

Soon, every company will claim to be "AI-first". The winners will be those who built the right data foundations today.

When AI becomes commodity

As models get cheaper, your edge won't come from having AI. It'll come from AI that understands your business instantly. FeatureMesh's functional, abstracted features become the vocabulary your AI systems use. While competitors feed raw tables to models, your AI operates on clean business concepts.

When business moves at AI speed

Your competitors will still wait weeks for engineering resources to implement new business rules. FeatureMesh's atomic, composable features let you test new strategies by combining existing building blocks. Need to experiment with customer segmentation? Combine three features and deploy in minutes.