{"slug": "learning-claude-code-by-building-the-tool-i-actually-need", "title": "Learning Claude Code by Building the Tool I Actually Need", "summary": "A software engineer building an outreach CRM called CC Outreach with Claude Code removed authentication schema fields generated by Better Auth, breaking the login endpoint after a migration. The developer, who is following Code with Mosh's Claude Code course while building a personal networking CRM, said the lesson was to verify generated code against documentation before deleting fields they don't understand.", "body_md": "After attempting and failing at using AI to build web applications for a while now, I decided to enroll on [Code with Mosh's Claude Code for Professional Developers course](https://codewithmosh.com/p/claude-code). My goal is to plan, make decisions, and have Claude Code write ~90% of the code and I’ll be using this platform to document my progress and what I’ve learned.\n\nI am looking for my next opportunity as a software engineer, and I need a way to keep track of the people I’m networking with, as well as my follow ups. I thought of using a CRM like Salesforce, but I couldn't find a way to use the API to automate repetitive manual work without having an enterprise plan, so I decided to build my own app.\n\nI built the app and it is technically working, but I am not happy with the code Claude Code generated. It’s messy, it doesn't follow best practices and I’ve found myself spending more time cleaning up the code than it would have taken me to write it all myself from scratch. I want to learn how to use Claude Code as a tool to reduce my workload, not give me more problems to fix.\n\nThis second attempt of the app is called CC Outreach (I know, my project naming creativity is out of this world.) This app will allow me to perform CRUD operations on companies and contacts, log all the interactions I've had with people, and schedule follow-ups automatically.\n\nI am going to be following the course lesson by lesson, using the tech stack chosen by the instructor so I can focus on learning one thing at a time. I am, however, working on my own project instead of the one the instructor is working on. This way, I don't have to do the work twice, and it gives me an extra bit of challenge because I would have to be thinking about my own problems and making my own decisions instead of copying what the instructor says.\n\n**Project scope:**\n\nV1 is an outreach CRM that lets me create, edit, archive and view companies and contacts, drafts short messages for a 5-step email/LinkedIn sequence for me to review and send (emails go out through SendGrid), and tells me each day what to do next with daily and weekly planning views and activity logging.\n\n**Tech stack:**\n\nI had Claude implement the project setup and authentication. Because I have not worked on backend code before, I asked Claude to explain every single file to me. Everything made sense except for one thing: the schema for the models used for the authentication process. It contained some fields and one model that I believed I didn’t need for a simple email and password login. I asked Claude if I could remove them. It said I technically could, but advised against it for two reasons: the savings would be tiny, and Better Auth generates and expects those fields. The first reason didn’t convince me, since I don’t like keeping fields for features I don’t need yet. And because I’d dismissed the first reason, I didn’t take the second one seriously either.\n\nI removed the fields anyway and ran a migration. After testing the login endpoint again, I found out that the login functionality stopped working because the second reason was correct: those fields were generated and required by Better Auth. I stand corrected and apologize to Mr. Claude, he was right 😅. Next time, before I remove anything I don’t understand, I will ask where it comes from and for a [link to the documentation](https://better-auth.com/docs/concepts/cli#generate), so I can check it myself.\n\nUp next is going to be building the login page in the frontend. I’m excited to see the quality of the output this time around. If you're interested in chatting about this project or anything about Claude Code, don’t hesitate to reach out to me at [paola@paworkflows.com](mailto:paola@paworkflows.com)\n\nGithub Repository: [cc-outreach-be](https://github.com/arredondop03/cc-outreach-be)", "url": "https://wpnews.pro/news/learning-claude-code-by-building-the-tool-i-actually-need", "canonical_source": "https://dev.to/arredondop03/learning-claude-code-by-building-the-tool-i-actually-need-4dci", "published_at": "2026-11-12 01:43:17+00:00", "updated_at": "2026-11-12 01:50:56.092843+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "developer-tools"], "entities": ["Claude Code", "Better Auth", "Code with Mosh", "SendGrid", "CC Outreach", "Anthropic"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/learning-claude-code-by-building-the-tool-i-actually-need", "markdown": "https://wpnews.pro/news/learning-claude-code-by-building-the-tool-i-actually-need.md", "text": "https://wpnews.pro/news/learning-claude-code-by-building-the-tool-i-actually-need.txt", "jsonld": "https://wpnews.pro/news/learning-claude-code-by-building-the-tool-i-actually-need.jsonld"}}