← Home
← Home
7 MIN READ

One month with Cursor

Jamie Steiner22 December, 2024
One month with Cursor

One month with Cursor

Today is the one month-a-versary of my Cursor subscription, and here's what I built. For those of you who know me, you know that I am not a programmer. I'm more of a business guy. Not a "suit" exactly, but also not one of the techies. I am a poser in both camps, but if I had to assign a category, I would say I am a product guy. But whether or not I can write code is far less important than the fact that -- in the making of these projects, I didn't do it.

I'll draw some conclusions at the end, but for now, lets take a look at the stuff. I used the following common tech stack that I used for all of the below: , hosting through firebase from GCP. All are fully static websites, using serverless backends except where noted. I start with v0 to get a nice basic layout, and the main customer interactivity components sorted, and then move into Deployment, and cursor. Since v0 is from Vercel, that means it started with Nextjs/typescript, shadcn component library, and tailwind. I chose Google Cloud Platform hosting, using their firebase ecosystem. I had two $20 Cursor subscriptions, which got me 1000 "fast" requests, according to their pricing model. Today, I have 25 requests left in the chamber, and I am hoping the next 500 drop before I wake up tomorrow.

All of these projects are alpha quality software, at best. I wouldn't say any are feature complete or at the MVP stage, but quite a few are not all that far away. I wrote barely a line or two of code, and virtually none of it unassisted by AI. I am not a typescript

Worker Registry

A SaaS B2B platform with Stripe integration, and is basically ready to use for business. Not much functionality yet - the idea is to be ready to launch something in an afternoon, given the chance. This was my first idea. By the end of the month, I was listening to the Microsift CEO explain why SaaS is dead, and I realized an awful lot had changed in a month. But we'll get there.

image

Trading Platform

For a former colleagues crypto project. A fully functioning Central limit order book, with login, order tracking, blockchain integration (Unicity network), Market and limit orders. The trading engine itself is an actual server - custom nodejs - the only server in this run down. Even here, I am distributing realtime market data via pusher (PaaS) over websockets. I built this once already in 2018, and it took me 6 months. Finished in 6 days.

image

Blog (conversion)

It took 8 hours. I had a working jamstack blog, based on gridsome - a nice, but defunct Vue based framework. I made a nearly pixel-for-pixel replica using Nextjs, including fancy css animations. This one was fun because it's when I realized that I could literally send the model a picture of what I wanted, and it might do it on the first try.

image

Chess Platform

The idea is to make a chess workstation, like HIARCS or Chessbase - but mashed together with an IDE. Like lichess meets vscode. I used redux for the first time here, although I later retrofitted the state management for the trading platform with a redux store.

image

AI Knowledge base base editor

Here, I realized that RAG based data processing was an important tool thta I needed to understand more about. Chatbots hallucinate, and lack domain knowledge. RAG is process by which organizations or individuals can use model, called embeddings, to "index" bodies of information semantically. Effectively, you can calculate which text snippets from a body pf source information is related sematically to a users question. Then, you can feed that information, explicitly into a chat bot, in order to prepare an answer. The idea is extremely simple, but surprisingly powerful. By forcing the LLM to use specific domain knowledge that you prepare, you can constrain hallucinations, and also ensure that answers you receive are grounded in traceable, factual information. This process is at the heart of what has made Palantir a 150 billion dollar company.

image

My idea is to give this power, to average people - tied up in a nice, easy to use, but extensible package. Think of it as codepen for LLM's. It allows users to import PDF's. Support for other data sources is TBD, but shouldn't be difficult. You can process this unstructured data, and use Open AI vai API to obtain embeddings, then store them in a purpose built database, called milvus - a vector database. Then, you can query them, using a chatbot. Best of all, everything is customizable. You can choose the models, massage the processing, and generally interact, via code hooks, with the entire pipeline.

Conclusions

Getting started with cursor was easy. There are a lot of good resources on how to do it. I was quickly about to create working websites that would usually take me months to create, just by describing what I wanted.

The skills involved in producing a product are different than when writing software using code. I spent a lot of time debugging - but not writing code. I had to learn how to interact with the model in an effective way. The mental process was about finding the best way to explicitly describe what I wanted in a way that cornered the LLM into not making mistakes. And it does make mistakes. A lot of them. Really stupid mistakes. Mistakes that would result in a junior programmer being deselected from a team, or even fired. But these mistakes took $0.04 to make, and largely, not more than $0.10 and a half and hour to fix. And when it sings, it really sings. Basic crud operations appear as if by magic, and largely "just work". fancy looking UI touches appear naturally and without special request. Animations, micro-interactions - good component design: all of these get churned out without much thought. As a product designer, you have a struggle to shape the vision of a product in enough detail that programmers understand the big picture of what you want, but have enough detail to produce an consistent and ergonomic front end. The mix between high and low level is a kind of context switching dance that takes place many times in each sprint. With Cursor, I describe the high level, and reasonable components get spit out without much instruction.

If the model is better than most humans at making sensible UI choices, it's worse at algorithmic or back end type tasks. You are reminded that it isn't really thinking - but rather regurgitating. Once you realize that, it's easier to understand what you have to say to get it to regurgitate the right things. Write the core business logic of your tests your self.

All this led me to the recent interview with Microsoft CEO, Satya Nadella’s prediction: “Agents Will Replace ALL Software". And the more I contemplate it, the more I think he is right, and will be proven right faster than most people think. You see, the apps I was able to write can now be produced by anyone. The barrier to entry is so low, they will have close to zero value. Why buy a software subscription for $20/month to perform business logic, when you can just ask an agent to CRUD whatever data you need and provide you with an answer, or perform a task.

I would take it further - I say Agents are middle management. The ability to manage incredibly complex interactions with large amount of unstructured data is, historically speaking, the role of middle management. It exists to allow corporate bosses to operate a company that is more complex than a single person can otherwise control. With Agents -- like my AI powered junior programmer replacement -- that process is easy, and cheap. Sure it makes mistakes, but people do too, and correcting them with a new AI query is a lot easier than effecting organizational change and managing people.