Highlight, Tag, Save: A Simple App Built with AI

Highlight, Tag, Save: A Simple App Built with AI

Last week I wrote about my experience with vibe coding. I’ve been using the Cursor AI editor, along with a Claude model, to build a web application that allows me to save articles I find online, highlight them, tag them, etc. For years, my app of choice for this was Pocket, but since their recent announcement about sunsetting the app, I decided to build my own and stop worrying about losing articles and information I find online.

The web app consists of the following:
• An API built using .NET Core
• A front end built with Blazor — this allows me to write C# for the UI layer!
• A PostgreSQL database to store article metadata

The web app is hosted in a virtual machine (VM) running Linux (Ubuntu) on my DigitalOcean account.

It’s a simple web app, and that’s exactly how I want it. Often I find myself opening articles or blog posts and saving them to Pocket for later reading. I do go back and read them, highlight them, etc. and with this app I'm building I plan to continue that practice. I’ll slowly add the features I liked most about Pocket, for example, the ability to highlight text from an article to save or share. If you use an e-book reader, you’ll appreciate how useful it is to digitally highlight text.

Writing this web app with the help of a large language model (LLM) like Claude and GPT has been a journey where my initial excitement for LLMs gradually tapered off. What do I mean by that? Well, the more I used it, the more I let it make decisions for the app, and the more mistakes it began to make. I get that this will improve over time, but as of now, it still has a way to go. For example, I mentioned something specific like adding a condition to detect articles behind a paywall, and I provided a URL as an example. The tool responded by creating a condition that only looked for that specific domain, it took my instruction literally, something most people wouldn’t have done in that context.

Overall it’s been a good experience. At first, seeing the model generate code quickly and offer suggestions made me feel like I was the obstacle, not the driver. But as I kept working with it, I started to recognize its limitations. I have to say, it can fool you if you’re not paying close attention or lack the necessary knowledge in the subject. I can read code easily and make sense of it, that’s why I was able to spot its mistakes and correct them, effectively training it in the process.

Large language models, and the way they’re integrated with code editors, video editors, chatbots, and more, are nothing short of amazing. But don’t let the AI fool you – we need to be cautious with the output it generates, especially when we’re relying on it to create something we don’t fully understand. Any potential mistakes will be invisible if you don’t know where to look.

So while the speed and assistance from these tools can feel like a superpower at first, it’s important to stay grounded. There’s a real risk in letting the model steer too much, especially when the topic edges beyond your own understanding. I’m glad I know enough about coding to catch its missteps, but not everyone does, and that’s the part we need to watch out for. I’ll keep building, slowly, adding features as I need them, and keeping one eye on the code and the other on the model’s hand.

Have a great weekend.