christopher@baus.net

Rebuilding Yield.io with Cursor

There’s been a lot of discussion, both enthusiastic and skeptical, regarding “vibe coding” lately. Code generation has gone well beyond autocomplete. It can be prompted to build systems end-to-end. Generative coding is changing the way software is developed faster than time I’ve seen in my career: including the early days of the internet.

I spent a weekend rebuilding Yield.io dashboard. I used Cursor for code generation and Google’s Gemini for in-app yield curve analysis.

Revisiting a Familiar Project

Earlier in my career I worked on financial analytics applications. Since then, I’ve used Yield.io as a sandbox for trying new technology. This felt like a good time to modernize it with Cursor.

Coding with Cursor

As you probably know, Cursor is a fork of VS Code with AI integration. It supports multiple LLMs and has access to your project’s structure, so it can make suggestions and modify code directly in context. For this project, I used it to build a data ingestion and backend layer in ClickHouse, a Vue + ECharts frontend, and integrate basic AI-driven bond performance summaries from Gemini.

The ability to skip over details of learning a new API is, to me, one of the most meaningful wins of AI-assisted development. I’d never used ECharts before, and normally I would’ve had to stop and dig into documentation, and learn the nuances of yet another API. With Cursor, I could just describe the chart I wanted, and it scaffolded a working implementation instantly. Honestly I was surprised by how smoothly this went.

It is fast to generate code with Cursor, but the output didn’t always align with my intentions. I often had to redirect it. It generated duplicated code, built overly long files, or made incorrect assumptions. For example, it repeatedly tried to sort a flat file that I had deliberately structured for easy appending. No matter how I prompted it, it would return to the idea of sorting. I eventually had to side-step the problem by structuring the data into a ClickHouse data store.

It also struggled with some of the more nuanced problems, like browser timezone handling. But, to its credit, that’s a common source of bugs in web applications in general.

In the original version of Yield.io, users could view charts but had to interpret trends on their own. This time, I integrated Gemini to analyze and explain yield curve dynamics directly in the UI. Instead of just data, users now get:

  • Natural-language commentary on steepening and flattening
  • Comparisons to historical patterns
  • Market context based on curve shape

It’s like embedding a fixed income analyst in the product. This moved Yield.io from just being a charting tool to something more interpretive.

Deployment is still manual

While Cursor helped me write code quickly, it didn’t help much with deployment. I still had to manually configure the ClickHouse environment, build Docker containers, and wire up hosting. Cursor could help scaffold scripts or suggest configs, but it wasn’t a DevOps solution. This is becoming a problem with AI generated applications which has already resulted in some high profile breaches.

AI helped in the editor, but production remained a manual process.

Managing Regressions

Cursor encourages fast iteration. Unfortunately, quick changes can break existing logic or overwrite solutions from earlier in the session. I committed changes frequently to git, with frequent pushes. And it does highlight the need for testing early and often, which I did by adding Cypress E2E tests.

Why the Skepticism?

Overall, I’d call the rebuild a success. So why is there so much skepticism around tools like Cursor?

Some of it, I think, is fear of change. Roles are shifting fast, and not everyone feels in control of that shift. It isn’t clear what software roles will look like in the next few years.

There’s also a genuine concern: code generators can be unpredictable and quickly generate a significant amount of tech debt, or code that you have little understanding of if things go wrong. Tools like Cursor require oversight. They help experienced developers move faster, but they don’t remove the need for experience.

Conclusion

Overall I’d consider the experiment a success, especially considering how quickly I was able to rewrite the dashboard, but overall this is a simple project.

While there is significant, and somewhat justified, skepticism among many engineers and developers, I think there is little doubt that tools like Cursor are changing the way software is built.

Show Comments