I’m writing this, not as a list of complaints for the sake of complaining, but in the hope that someone will either confirm that they are having the same issues, or explain to me if I am doing something wrong…
Context: I am an amateur (but competent) coder, and have been working on a personal project in Next JS for a few hours most evenings for the past 6 months. Up until I signed up for Cursor Pro at beginning of September, I had been ‘hand-coding’ (as I have done for decades), and more recently for a couple of months had been using Claude 3.5 Sonnet to copy and paste coding solutions, which was working very well.
For several weeks I had found Cursor Pro to be astonishingly good and a massive time saver, cutting out the copying and pasting from Claude AI. I have been astonished at how good Cursor has been, and it has made some of the inevitable drudgery of coding very enjoyable.
However, over the past 3 or 4 days I have found that Cursor completions are less than useful; it has got to the point where Cursor is creating more problems than solutions.
The simplest of requests is either failing completely (trashing code, removing functionality, breaking imports), implementing features that were explicitly excluded in the prompt, or code suggestions are made in Composer without an option to ‘Apply’ the changes.
Example 1: “Add two buttons to the ‘Edit’ component; ‘Apply’ & ‘Cancel’ (bottom-right of the component). Both buttons should write the action to the console log and hide the component.”
Previously, this would have done exactly what I expected, but Cursor completely removed the design of the existing component and replaced it with a ShadCN UI Dialog with the requested buttons. The project is using ShadCN UI, but I did not mention “Dialog” in the prompt, and there wasn’t a Dialog in the component.
Example 2: Cursor correctly created a ‘bare’ (no functionality other than a label) TestComponent according to a prompt. The only mistake Cursor made was to create a new folder for the component instead of creating it in the folder that was explicitly stated in the prompt (using @Folder). I moved the component into the required folder and advised Cursor where I had moved the component to, but Cursor has changed the import for the component to reference the original (now non-existent) folder on the following 6 completions despite me explicitly stating what the correct component location is and requesting that the import should not be changed in the last 5 of those prompts.
Example 3: “Add an ‘Edit’ button to the TestComponent. When clicked, the button should log the text ‘Edit’ to the console. Do not implement any additional functionality. Do not change any functionality other than as instructed in this prompt”.
Cursor attempted to implement complete and irrelevant ‘Edit’ functionality into other areas of the project, deleting / overwriting existing functionality and requiring me to revert changes to several other code files.
Example 4: Submitting any prompt results in code being generated in Composer, but no ‘Apply’ button. This happens frequently and has cost me perhaps 50-100 fast requests.
Example 5: Prompts for a simple feature such as adding a button without any functionality has removed almost half the existing functions and half the existing code from related components.
Example 6: On numerous occasions over the past few days, Cursor has been modifying code and, when reaching the final (approximately) 10 lines of code, stops updating and duplicates the whole code again. For example, Cursor is updating 200 lines of code, it reaches line 190, removes the last few lines (that have nothing to do with the prompted changes), and adds all 200 lines of code to the end, resulting in approximately 400 lines of code, half of which is duplicated.
In general, I am finding that cursor is now attempting to implement vastly overcomplicated solutions, ignoring extremely explicit prompt instructions, and frequently breaking code.
I would say that for perhaps 75% of last 100 or so prompts, Cursor has been more damaging and time-wasting than it has been useful.
Unless Cursor improves, my plan is to cancel my Cursor subscription in a week or so, renew my Claude AI subscription and return to copying and pasting from Claude AI to VS Code, which is very disappointing. Cursor has been amazing for a few weeks - a massive time-saver (and quite frankly, amazingly good and enjoyable), but now it is costing me time and becoming an unpleasant and very irritating experience.
Am I doing something wrong? Can anyone advise what I can do to improve the results I am getting from Cursor? Are others experiencing these issues?
[Edit: I have modified this post slightly to make it less of a rant (which was not my intention), and to clarify/add more examples of issues].