Part 1 of 3 in the “Building with Claude Code” series
I recently spent a weekend learning Claude Code from scratch — not just the commands, but how to think alongside it. By the end, I had a fully working web app, a clean Git history, and a fundamentally different view of how I’ll write software going forward.
This is Part 1 of a 3-part series documenting that journey. Today we’ll cover the setup: installing Claude Code, plugging it into IntelliJ IDEA, and getting your first AI-assisted commit pushed to GitHub.
What Is Claude Code, and Why Should You Care?
If you’ve been using Claude through the web chat, Claude Code will feel like a revelation. Instead of copying code between a browser and your editor, Claude Code runs in your terminal and has direct access to your project files. It reads your codebase, writes code, runs commands, handles Git — all through natural language conversation.
The key difference: Claude Code doesn’t just talk about your code. It works on it.
Think of it as the difference between asking a colleague for advice over Slack versus having them sit down at your machine and pair-program with you.
What We’re Building
Throughout this series, we’ll build a Bookmarks Manager — a web app for saving, tagging, searching, and organizing links. The stack:
- Kotlin + Spring Boot 3 (backend)
- Thymeleaf + vanilla JS (frontend)
- H2 in-memory database
- Gradle with Kotlin DSL
- Git + GitHub for version control
Setting Up Claude Code
Install the CLI
On macOS or Linux, a single command gets you there:
curl -fsSL https://claude.ai/install.sh | bash
Verify it worked:
claude --version
You’ll need a Claude Pro ($20/month) or Max subscription. The first time you run claude, it opens your browser for a one-time login.
Install the IntelliJ Plugin
This is optional but worth it. The plugin gives you visual diffs, automatic context sharing, and keyboard shortcuts.
- Open IntelliJ IDEA → Settings → Plugins → Marketplace
- Search for “Claude Code” by Anthropic PBC
- Click Install, then restart IntelliJ
Important: You’ll need IntelliJ 2024.x or newer. I was running 2021.3 and had to update first — the plugin simply won’t install on older versions.
Set Up Git and GitHub
Install the GitHub CLI — it makes repo creation and PR workflows seamless:
brew install gh
gh auth login
Phase 0: Project Init
Create the project folder and initialize everything:
mkdir ~/bookmarks-app
cd ~/bookmarks-app
git init
gh repo create bookmarks-app --public --source=. --remote=origin
Now launch Claude Code:
claude
Your First Real Prompt
Here’s where the prompting guide matters. Compare these two approaches:
Vague prompt (don’t do this):
Make me a Spring Boot project
Specific prompt (do this):
Create a Kotlin + Spring Boot 3 project for a bookmarks manager web app.
Use Gradle with Kotlin DSL. Include these dependencies:
- Spring Web
- Spring Data JPA
- H2 Database
- Thymeleaf (for server-side HTML)
Set up the standard project structure:
- src/main/kotlin/com/bookmarks/ (with Application.kt)
- src/main/resources/templates/ (for HTML)
- src/main/resources/static/ (for CSS/JS)
- src/main/resources/application.yml
Configure H2 as an in-memory database with the web console enabled.
The app should run on port 8080.
Also create a .gitignore for Kotlin, Gradle, IntelliJ IDEA, and macOS.
The specific prompt takes 30 seconds longer to write and saves you 10 minutes of back-and-forth corrections.
Introducing CLAUDE.md: Your Project’s Memory
CLAUDE.md lives at the root of your project. Claude reads it at the start of every session. It’s how you give Claude persistent knowledge about your project — your tech stack, your conventions, your Git workflow — without repeating yourself.
Pro tip: Include your Git conventions in CLAUDE.md. Claude follows the rules you set here — think of it as configuring an AI teammate.
Your First AI-Powered Commit
Tell Claude:
Stage all files, create an initial commit with the message
"chore: scaffold Kotlin + Spring Boot project with Gradle",
and push to origin main.
Claude runs git add ., git commit, and git push — all from within the session. Verify with:
! git log --oneline
What We’ve Learned So Far
- Installing Claude Code — one command on Mac/Linux
- IntelliJ integration — plugin install, shortcuts, and the version gotcha
- The specific prompting principle — 30 extra seconds of detail saves 10 minutes
- CLAUDE.md — your project’s persistent memory
- Git from the CLI — Claude handles add, commit, push, and PR creation
Coming Up Next
In Part 2, we’ll build the app: Plan Mode for multi-file features, the feature-branch workflow with pull requests, debugging with Claude, and building both the backend API and frontend UI.
In Part 3, we’ll cover power-user tricks: context management, piping Git diffs into Claude for review, auto-generated commit messages, and building a reusable prompt library.
All code from this series is available on GitHub.