Vibe data engineering

You're probably sick of hearing people talk about "vibe coding", but what about "vibe data engineering?" ;)

Vibe data engineering

You're probably tired of the term “vibe coding” by now. I feel you, but I do think the term is useful to explain a "way to do things".

We use LLMs for everything these days. At Tinybird, for example, we use it to spot SQL problems, optimize SQL queries, create ad-hoc visualizations, optimize Parquet files, etc.

So, why not embed that experience directly into the product?

Don’t get me wrong, I don’t love the AI hype, but I do like using tools when it makes sense.

That is the approach we have been taking: adding AI progressively, only when it adds value, and without leaning too much on AI and focusing instead on the actual problem.

That’s what tb create is about. It’s a way to get 80% of the way to a data project in about 1% of the time it would otherwise take, to create that materialized view you don’t want to type, to create those three API endpoints that look almost exactly the same, or to just modify a table schema because you don’t remember the exact data type you used.

Maybe you would call it "vibe data engineering." Really, it's just a way to move faster, test your ideas faster, and get something shipped (while adhering to best practices).

Tinybird Forward is here.
Last week, we launched Forward, a new Tinybird UX that makes shipping software with big data requirements faster and more intuitive.

Start using it by installing the new CLI: curl https://tinybird.co | sh

Digging into tb create

tb create is the essential Tinybird Forward command, it gives you a basic data project to start testing and iterating.

But it's more than just a command with a little sprinkle of LLM magic, it's the starting point of a data project that follows best practices. It’s opinionated, based on a proven project structure honed by years of building production data projects for our customers. It handles all of the "little things" that make shipping a Tinybird data project into production fast and easy.

Without tb create, here's what you'd need to do every time you started a new project:

  1. Set up a database
  2. Create all the tables and table schemas
  3. Create the ingestion API
  4. Create the API endpoints
  5. Create the data transformations
  6. Create the unit tests and e2e tests for your endpoints
  7. Configure your CI/CD workflows

Now, you don't start a new project every day, or even every week... but if you could do all of those things with a single command, maybe you would start a new project every week:

Or better yet, just send the image of the dashboard you want to build and let Tinybird generate the project for you. :mindblown: For example, this creates a Google Analytics clone from this dashboard in about 30 seconds:

Source: https://neilpatel.com/wp-content/uploads/2013/09/inside-a-ga-dashboard.png

Then you just deploy it:

Then you're just a function away from capturing pageviews and having a fully working analytics project. Here's a vanilla JavaScript script to send data to the pageviews datasource. You could copy & paste this into your website HTML/javascript (it’s not production code, but it's good enough):

You could send 1 billion rows a day and it would just work, because tb create follows data engineering best practices when it creates resources.

Not just for creating projects from scratch

By the way, tb create doesn't just create new projects, it can also create new resources for existing projects...

...or modify existing resources

The anatomy of a generated data project

When you run create, it generates a project with the following structure:

This is the basic scaffolding to build, test, and deploy any data project in production. It has everything you need.

Beyond --prompt: More ways to start a project

While the AI-powered project generation is impressive, tb create offers other options to fit your workflow:

  • Create a data source from existing data: Use the --data PATH option to create a project based on files that contain your data.
  • Specify project location: The --folder PATH option lets you define where your project files will be created (for example if you want to create a tinybird or analytics folder in your root.
  • LLM agent rules: With the --agent flag, you can create rules for an LLM agent (currently Cursor and Windsurf are supported). With this, you could use your IDE to generate resources rather than Tinybird's AI, which gives you more fine-tuned control over your model selection and other project-level prompts you may have created.

Getting started

To create your first project, you need:

  • A container runtime like Docker or Orbstack
  • Linux or macOS

From there, you just: