Classic was Tinybird’s original experience. Forward is the next big iteration, built for teams operating data products: deployments, schema migrations, local dev, CI/CD, SDKs and Agent Skills.
Free and Developer Classic workspaces must migrate by Sep 15: https://t.co/13C4hE2OtO
Define test cases in tests/<pipe>.yaml with parameters and expected JSON.
Tinybird spins up a clean local environment and asserts status codes and payloads before you merge:
https://t.co/psoioBZkBG
Changing SQL transformations or parameter filters shouldn't rely on clicking around a staging UI to check for regressions.
With Tinybird Forward, you check API Endpoints against YAML fixtures in CI using tb test run.
No schema upfront doesn't mean typeless.
Our LLM app's SDK v2 started sending latency_ms as "1920" instead of 1920. RawTree kept each value's type.
avg() and > comparisons skip the strings and return a hint saying so. Nothing silently becomes a wrong number.
https://t.co/oYreXe23M4
Then create a Bird webhook that points at the Events API:
/v0/events?name=bird_events_raw&format=json&wait=true&token=<token>
The token can only append to this Data Source. Prefix it with your region's API host.
https://t.co/ge2JIlCHba
Sending Bird webhooks to Tinybird takes one Data Source and one URL.
The full webhook body lands in a JSON column, so you can query nested fields like https://t.co/RqXf2Z2J57.metadata.order_id directly.
Partition outputs with templates like orders_{order_date} in Parquet, CSV, or NDJSON.
Failed and cancelled runs now surface in tinybird.sinks_ops_log with exact IAM permission errors:
https://t.co/SSkQwSH1d0
Exporting rollups from ClickHouse® to S3 usually involves custom cron jobs, export lambdas, and opaque errors when IAM policies reject writes.
In Tinybird, define an S3 Sink pipe in SQL, set a schedule, and let Tinybird handle batch writes.
New guide in the Tinybird docs: send @messagebird webhooks to Tinybird.
Point a Bird webhook at the Events API and query email, SMS, WhatsApp, and Apple Messages events with SQL. No server needed.
https://t.co/ge2JIlCHba
Match ENGINE_PARTITION_KEY to your TTL and set ttl_only_drop_parts=1 in ENGINE_SETTINGS.
ClickHouse drops whole expired partition folders via metadata deletion with zero row rewrites:
https://t.co/z6Q06rRMFf
ClickHouse® table partitions and TTLs need to align.
If you partition by month but set a 30-day TTL, ClickHouse has to rewrite entire part files during merges just to delete expired rows. That burns CPU and disk I/O on background cleanup.
Use set for status codes and bloom_filter for user IDs.
ClickHouse checks the index per granule group and skips unmatching blocks before disk reads. Define them in your datafile:
https://t.co/z6Q06rRMFf
ClickHouse® primary keys are sparse. When your sorting key starts with tenant_id and timestamp, filtering on another column means scanning every index granule across that range.
In Tinybird, you add secondary data skipping indexes directly to your .datasource file.
What Forward adds:
- Tinybird Local for offline dev
- A Cloud Branch per Git branch, with production data
- tb test for endpoint regressions
- tb deploy --check in CI
- Forward queries and staging for schema changes
- TypeScript and Python SDKs
Today the Classic grace period ends. Free Classic Workspaces left after today get deleted, and Developer plans lose UI access.
After migrating, data, Tokens, and Endpoint URLs stay the same.
https://t.co/4FvyJauRrp
Run Tinybird Local and Kafka in one Docker Compose network to consume real messages locally.
When producers add a field, edit the schema and run tb deploy --check.
https://t.co/VqAP8BEHRN
Your Kafka ingestion config belongs in Git, next to the table it feeds.
In Tinybird Forward, a Kafka Data Source is a .datasource file with the schema, topic, and consumer group. Credentials come from tb_secret, not from the file.
When analytics is a crucial part of your product, it is risky to solely depend on external analytics platforms
I knew I needed to have my own from day one.
So, here's the one I built: custom, real-time analytics powered by @tinybird