How I work with Claude Code
And some of the other things I've gotten into recently
Dear Friends,
I got an email last night from a friend who asked about my approach to development with Claude. He told me he has already built a few apps with Claude, but when he attempted to build his first real production software, he wasn’t happy with the results.
I emailed him some bullet points about how I use Claude for development and thought I’d also share it here in case it’s helpful to anyone else.
Tech Stack / Tools
I’m using cursor as my IDE. All projects are opened and managed locally there. Some people are moving away from IDEs and just having Claude code connect directly to their git repos. Even though I no longer manually review code that Claude writes I still feel most comfortable using the IDE.
Once in Cursor I open the terminal and run Claude Code from there. I’m not using any of Cursor’s built in AI. I started that way but once I switched to Claude code I never looked back.
Most of my web apps are written in Next.JS. Before I had heavy database needs, I was storing data in flat files (JSON) locally and/or in S3/AWS. But once I started building apps that had more data needs, I migrated everything to using Postgres (SQL database) hosted on Neon. I’m using Vercel for web hosting. They have a lot of out of the box integrations for things like caching (redis), database (neon), and other 3rd party utilities you might need.
All projects are in Github for source control.
How I Build
At the start of a project, I use ChatGPT (Claude, Gemini works too) to have a conversation about what I want to build. We get the vision and concept down, talk high level about architecture, and identify the major risks/gotchas to be aware of. I make sure Chat has a solid understanding of the overall goals and outcomes I want. We also discuss how to break the project down into approriate phases. I’ll ask for a high-level design spec as the outcome of this conversation. It’s a markdown text file, nothing visual and no code.
I’ll then start a new Claude Code session in Cursor and feed it that design spec. The more Claude builds up context and memory inside a project, the better it gets. So once this hand-off from design to build occurs, Claude takes over as the main architect and expert on the project.
I use Gemini’s Canvas for UI mocks. Claude will build the basic screens for me but if I want to them styled better, I’ll just paste screenshots into Gemini’s Canvas and ask for redesigns.
As a solo dev, I’m building using a lot of the same mental models I used when I was managing teams of engineers. Mostly summed up by: think big, start small, iterate fast and use thin vertical slices. When breaking a project into phases, make each phase independently shippable, verifiable and complete. Each phase should represent full functionality of one small piece. For example, don’t build the entire database layer on its own (a horizontal slice). Instead, build just enough database, auth and UI functionality to let a user log in and land on a blank screen, to prove the entire path works end-to-end.
Other Thoughts
The more you can guide AI with your vision, the better the results. Let AI handle execution and implementation details but you still need to give the product voice. I don’t give Claude any detailed requirements (data or otherwise). I have a conversation with Claude about my goals, desired outcomes and vision. If it knows what I want to build and why I’m building it, it’s surprisingly good at handling the lower-level details like database schemas. I’ll provide context, and as we have the conversation Claude will start suggesting things and filling in context so I can tell if we are getting on the same page. Once we are on the same page, he’s great at taking over the detailed stuff.
Code architecture and software best practices still matter. I make sure claude knows I want clean code and separation of concerns. Keep data, business logic and UI as separate layers so they are easily maintained. I tell Claude I want my code easy to maintain and enhance in the future and that guides how it builds. You get what you ask for!
Tell Claude you care about security. Depending on what you’re building you might need to get specific with rules. For example, I have an admin dashboard that I put behind OAuth (google sign in) and I need to make sure Claude remembers that all pages and API routes need to be protected and not available to anyone who isn’t authenticated/authorized.
People will tell you to spend a lot of time on your Claude.MD files (the file that tells Claude your preferences) but I end up working more organically and just prompt Claude to write that file on his own based on how we work.
One important thing to remember is that this is NOT the best way to use Claude Code to build software. It’s just the way I’ve found that works for me, for now.
Your goal should be the same. You don’t need to copy someone else’s setup. You just need to find the setup that works for you, your goals, and the moment you’re in. As the tools evolve and as you continue to learn, your practices will evolve too.
Some of the (Other) Things
The first Clanker Ecosystem Fund grants have been announced and administered. Built a web page to help with comms and FAQ and fed info to our AI bot so people can get their questions answered.
Listened to this podcast (Inside the Mind of a CTO: AI, Scale and Product Engineering) featuring an interview with Rahul Chautel, a former colleague of mine. Rahul talks about the mindset required to shift engineering teams from project-based thinking (output) to product based (outcome). He also gives a shoutout to a former manager who taught him that being dependable doesn’t mean saying yes to everything, and that one of the most valuable lessons he’s learned as he’s progressed in his career is learning how to say no. (I think that former manager was me and I still stand by that advice! Being dependable doesn’t mean being able to do everything; it means being counted on to do what you say you’ll do, over and over again.)
I offered to run a 1-day beginner web dev workshop for my college aged daughter and her friends. The goal was to walk them through all the steps required to ship a real live website using modern tools and AI. Here’s what my daughter ended up building - a simple website for common lab calculations. Useful for her as a Biochemistry major. Check it out at alexshulman.dev. And here’s the schedule and structure we used if you want to try repeating it:
Some of the pics
Top row: It’s been a colorful spring. Peonies in bloom, Hikes with Sky, and the shelves of thread at the seamstress where I took my daughter to get her prom dress altered
Middle & Bottom Rows are pics from early May when I visited Rome for FarCon. Middle row is Gasometer, Rome War Cemetery, and Ruins. Bottom row is gelato, our cooking class instructor, and carciofo which were in season.









A Note to My Readers
I started this substack in December 2022 as an experiment to see if developing a writing habit would help clarify my thinking and/or provide other benefits. It has evolved into different formats over the years, but it currently serves as my public journal.
I use it to share musings, meditations, and links to things I’m finding interesting as I build out a farcaster-native media company, a modern technology consulting company, raise my kids, and have fun creating and learning in the worlds of crypto, tech, finance, science and wellness.
Thank you for supporting my writing and journey. If you’d like to get in touch you can reply to me here or find me on X and farcaster.
Until next time, keep putting good into the world. —adrienne🌏❤️



Really enjoyed reading how you're leveraging AI tools to build. Out of curiosity, why don't you use VS Code instead of Cursor if you're not using Cursor's AI features?
Do you have claude commit, push, and draft PRs to your repos? Or do you still do that?
How many tasks do you work on at a time?