Claude Code - First Impressions
January 07, 2026
DISCLAIMER - This one is aimed at the devs, nerds, tech-evangelists, AI phsycophants, etc. If you’re looking for typical BOD-esque content (guys in their 40s who are still trying to get rad despite our failing bodies) this is not the blog post for you. This is not a tutorial, endoresment, scathing review, technical breakdown, or anything beyond your average dev jockey playing around with a new tool for a few days and making some observations. I am not a professional writer, tech-writer, or any other kind of writer. Just a guy who writes code. Perhaps in the future I will do a deeper dive, but honestly I feel like plenty of better read tech-lordz have already done that topic justice.

The Task
I belong to a local sailing club here in Astoria. I know what you’re thinking, but it’s not that kind of club. Think of it more like a bunch of salty fisherman who happen to own sailboats more than a place to share insider trading details. But I digress… The club currently has a very basic public facing website built on the Wix platform. I’ve been casually pitching the idea of a complete website remodel to the board members. As in, a FULL REMODEL. Blow up the existing Wix website and replace it with a new, from-scratch web app with a modern tech stack - typescript, node.js, react, aws, etc. But before I can commit to that kind of time vampire I figured a proof of concept would be a good thing to start with - and so that’s where Claude came in.
Some context for those of you still here. I’m a software engineer by profession, and as such I can’t make it 2 minutes into my day without being blasted via firehose by some article, advertisement, cautionary tale, or diatribe about AI - specifically what AI tools are doing to the software landscape. But isn’t that what YOU’RE doing? Yeah, yeah…
On the scale of early-adopting kool-aid drinker to outright curmudgeon I typically fall on the latter end of the spectrum. That stated, if you want to stay relevant (employed) in software you need to pay attention, and so I set upon my quest to “learn some AI”. More specifically I wanted to pick 1 popular agent and dive in - so that’s what I did. Rather than spend time customizing configurations (claude.md) about the agents behavior, style, etc I wanted to let it run wild and free with out-of-the-box behavior.
The Tech
I chose Claude Code. Why? No particular reason other than it seems to be one of the most prolific (as far as I’ve read anyway) and in general has favorable feedback from most who’ve used it. The number of “other tech companies” who are building with it is also very telling.
And since this stuff keeps evolving by the day I should probably timestamp the specifics for my experiment.
Claude Pro account (which at the time of writing was $20/month)
Claude Code Opus 4.5
Claude desktop Sonnet 4.5
Visual Studio Code v1.107.1Claude Desktop
The work started out in Claude desktop. I began trying to teach the model about the existing Wix website, what my overall goal was (a fully functioning POC front end), and how to go about designing it. Simple enough, right? After a handful of back-and-forths with Claude we finally ended up with 10 specific prompts to deliver to Claude Code to get the job done. Too easy. Although, at this point in the process I already began to notice that Claude tended to agree with everything I said - like, too eagerly. “That sounds like a great idea and a perfect tech stack for your POC…” Any developer knows that just about every decision you make should have a healthy dose of skepticism and cost analysis. Definitely none of that going on here. This can definitely be “configured out”, but as I mentioned above this is the wild and free approach.
As an example this was the first prompt of 10 it generated:
Create a modern Next.js 14 application with TypeScript
and Tailwind CSS.
Project setup:
- Use Next.js App Router with TypeScript (strict mode)
- Configure Tailwind CSS with a maritime/nautical color scheme:
- Primary: Navy blue (#1e3a8a)
- Secondary: Ocean blue (#0ea5e9)
- Accent: Warm gold/brass (#f59e0b) for CTAs
- Background: Light gray/white with subtle textures
- Install and configure: ESLint, Prettier, lucide-react (for icons)
- Set up folder structure:
- app/ (routes and layouts)
- components/ (reusable UI components)
- lib/ (utilities, data fetching)
- public/ (images, fonts)
- types/ (TypeScript definitions)
Create a responsive layout with:
- Modern navigation header with the AYC burgee logo
- Sticky header that condenses on scroll
- Mobile-friendly hamburger menu
- Footer with contact info, social links (FB, YouTube, IG)
- Consistent page container with max-width for readability
Include README with setup instructions and project overview.I did not give it any style direction, it came up with that on its own. In fact, I gave it ZERO style direction throughout the process. Ultimately, I did find working with the Desktop application very intuitive and simple, despite it potentially being overly agreeable. Can I save some tokens if it stops being so polite?
Claude Code
And now for the real purpose of the experiment - doing work in an IDE. I booted up the integrated agent from my terminal and entered the first of my 10 prompts. My terminal became a blazing blur of snippets, bash commands, and token counters. What is happening here?

The agent managed to blast through initialization, project structure, dependency install, interface creation, primary component creation and composition, etc in a couple of minutes.
├── app/ # Next.js App Router
│ ├── layout.tsx # Root layout with header/footer
│ ├── page.tsx # Home page
│ └── globals.css # Global styles
├── components/
│ ├── layout/ # Layout components (Header, Footer)
│ ├── sections/ # Page sections (Hero, About, CTA)
│ └── ui/ # Reusable UI components (Button, Container)
├── lib/
│ ├── constants.ts # Site config, nav items, contact info
│ └── utils.ts # Utility functions (cn, formatDate)
├── public/
│ └── images/ # Static images
└── types/
└── index.ts # TypeScript type definitionsAfter it finished getting through each of the 10 prompts it linted everything, checked for build errors, and other gotchas I might run into. Throughout the entire process I kept thinking about one of my favorite Simpsons episodes (S7/E7 - “King-Size Homer”) in which Homer intentionally gets fat enough to qualify for a work at home disability - in which he discovers that 99% of his job is pressing the “y” key on his keyboard. Naturally, he employs the aptly qualified drinking bird to take over and goes to the movies. My finger was that bird.

I should mention that this was not a straight forward sprint to the finish line. As mentioned above, during this process I was subscribed to the Claude Pro account - NOT the Max account. Simply put, there are limits to the tokens you get in a given time box, and the context window is only so big. Here’s the pricing guide if you wanna learn more about it. I hit my token limit 3 times between the first prompt and the 10th. In case you forgot, these are pretty big prompts in so far as what I was asking Claude to handle (everything). In each case I was instructed to wait ~3 hours. The takeaway here is that even if you have a fairly small codebase to run against but you have the agent do LITERALLY EVERYTHING you will likely have to budget in some breaks in development.
And then after the 10th and final prompt, and in an almost smug fashion Claude instructed me to run the start script so that I may bask in the god-like amazingness of the singularity.
Behold!

At face value this is quite impressive - a handful of curated instructions and I have a *Fully Functioning POC, complete with a demo section and a nifty markdown recap of the migration between the old and new application.
“Fully Functioning” with an asterisk because once I actually started to dig into the console I found a handful of errors. Stuff I naively thought Claude would have caught on the first try. Things like deprecated attributes on react components, 404 errors when fetching stock images, and plenty of pages that simply were not built out. Ok, so what’s a few more prompts to clean all this up? Sure, sure - after a bit of babysitting Claude was able to sort out the above issues and get me a fully functioning build. This point I’m making, while not by any means a deal breaker, has been my primary take-away from this experience. Instead of laboring over every line I became the orchestrator (babysitter). Claude is quietly confident in its decision making but at the end of the day it’s still just a fancy LLM wrapper. Crafting prompts to accurately get you exactly what you want with the fewest amount of tokens is probably an achievable goal in most circumstances, but it’s not without gotchas.
Beyond the handful of errors I had to prompt my way through I noticed that the code itself was…something, something, verbose…? Again, I’m not the first to write about this but it would be short sided of me to not share my personal experience with the code style that Claude spits out. This is probably something that can be tweaked with those carefully curated prompts I keep mentioning, but something to be aware of in its out of the box behavior.
The TLDR
Did Claude do what I asked it to do and bang out a reasonably functioning POC front-end? Sure it did. Pretty damn well, all things considered. If you care to checkout the source code it can be found here. So then why do I feel a little icky about all of this? Could it be because I don’t truly feel like I understand how this code works? Maybe it’s because it was too easy, and I find that I don’t typically know something until I’ve struggled with something? Or maybe that’s the point. The developer mindset shifts from that of code author to an architect, and curated prompts become the new knowledge currency. Less time is spent figuring out the right way to hash that sensitive data in your API layer and instead spent pontificating over orchestration concerns.
Or maybe… it’s just not ready yet? Maybe instead of allowing these kinds of tools to reshape how we think about and design software we simply use them at what they’re truly good at - which is what exactly? All sorts of minutia? Helping you find the source of that bug that you just don’t have time to struggle with because you’re the engineer on call. Making sure that not only do you have proper test coverage but that your tests make sense. Reminding you that there’s a nice built in Global utility to help you clean up that data-load function. Plenty more, for sure, but this is where it currently sits for me. I’m sure in time my reasons for using these types of tools will evolve and change. If we’re being extra honest there’s probably been several advancements in the tooling since you started reading this blog.
Thank you for making it this far. As the kids say, “…go outside and touch grass”

This blog entry was written by Adam
