Title h2 of the post
This is a simple paragraph of text.
This is a title h3
This is another simple paragraph of text with a simple inline code: const x = 1
.
Images
Images with captions

Lists
- This is a list item
- This is a nested list item
- This is another list item
- This is a numbered list item
- This is another numbered list item
Blockquotes
This is a blockquote in markdown. You can create blockquotes by starting a line with the
>
character. Blockquotes can be used to highlight quotes or important information in your text.
Tables
Name | Role | Active |
---|---|---|
Alice | Admin | ✅ |
Bob | Member | ❌ |
Start building with Tinybird!
If you've read this far, you might want to use Tinybird as your analytics backend. You can just get started, on the free plan.
HTML Stuff
YouTube video
Twitter embed
Subscribe to SCHEMA > Evolution
We are Tinybird and we manage data for companies like Vercel and Canva. Plus, write a newsletter covering Data, AI and everything that matters in between. Join us.
Typical code examples
Tinybird
SCHEMA >
`event_id` String,
`user_id` Int64,
`timestamp` DateTime64(3, 'UTC'),
`url` String
ENGINE MergeTree
ENGINE_PARTITION_KEY toYYYYMM(timestamp)
ENGINE_SORTING_KEY (user_id, timestamp) // Optimize for user-centric queries
# If ingesting via Kafka:
# KAFKA_BROKERS "..."
# KAFKA_TOPIC "..."
# KAFKA_GROUP_ID "..."
# KAFKA_FORMAT "JSONEachRow"
-- models/staging/stg_pageviews.sql
SELECT
event_id,
user_id,
timestamp as event_timestamp,
parse_url(url) as path
FROM {{ source('web_events', 'pageviews') }}
WHERE timestamp >= dateadd(day, -7, current_date) -- Recent data
AND path = '/home'
Tinybird CLI
tb create --prompt "Generate a materialized view to count the total number"
# Creating resources...
✓ /datasources/events_count_mv_data.datasource
✓ /materializations/events_count_mv.pipe
✓ Done!
JSON
{
"name": "example",
"version": "1.0.0",
"dependencies": {
"react": "^18.0.0"
}
}
JSON with comments
{
// This is a comment in JSONC
"name": "example",
"version": "1.0.0"
}
Javascript
const greeting = (name) => {
console.log(`Hello, ${name}!`);
};
let counter = 0;
Python
def greet(name: str) -> str:
return f"Hello, {name}!"
SQL
SELECT
user_id,
COUNT(*) as event_count
FROM events
GROUP BY user_id
HAVING COUNT(*) > 10;
Typescript
const greeting = (name: string) => {
console.log(`Hello, ${name}!`);
};
TypeScript with JSX/TSX
import React from "react";
interface UserCardProps {
user: {
id: number;
name: string;
email?: string;
isAdmin?: boolean;
};
}
export function UserCard({ user }: UserCardProps) {
return (
<div className={user.isAdmin ? "admin" : "user"}>
<h2>{user.name}</h2>
{user.email && <p>Email: {user.email}</p>}
{user.isAdmin && <span>Admin</span>}
</div>
);
}
// Usage
// <UserCard user={{ id: 1, name: "Alice", email: "alice@example.com", isAdmin: true }} />
YAML
version: "3"
services:
web:
image: nginx:latest
ports:
- "80:80"
Other supported languages
Check out the Shiki config: src/lib/shiki/languages/index.ts