Skip to main content

Notes

Notes from James

What I'm building, thinking about, and working on.

Check out in .

Building

Building a client portal from scratch

I just shipped a full client portal for jamesmusic.uk. Clients can log in, see their projects, track milestones, read session notes, download invoices, and leave comments. Built with Clerk for auth, Prisma and PostgreSQL for data, all inside the same Next.js app. The whole thing went from design doc to deployed code in a single session with Claude Code. Zero to full portal in hours, not months.

softwareai
Thought

Automated accessibility tests miss the hard stuff

I run accessibility audits for clients and the most common thing I hear is 'but it passed the automated scan.' Automated tools catch maybe 30% of real issues. They find missing alt text and low contrast. They miss broken keyboard navigation, confusing screen reader announcements, and focus traps. The stuff that actually makes or breaks the experience for disabled users. That is why I test with a real screen reader, real keyboard navigation, and real assistive technology. Every time.

accessibility
Update

Added tests and CI to the site

Finally set up a proper test suite. 41 unit tests covering the product catalog, checkout API (Stripe PaymentIntent creation), and contact form API (Resend email). GitHub Actions runs lint, typecheck, test, and build on every push. Caught 18 pre-existing lint errors on the first run. The safety net is real now.

software
Building

I built this entire site with AI

This whole website was built using Claude Code — an AI coding agent. I described what I wanted, refined it step by step, and shipped it. As a blind developer, AI tools like this are a game-changer. I can focus on what I want to build, not fight with visual interfaces.

softwareaiaccessibility
Building

Turning my audio services into packages you can just buy

I've been working on turning my mixing, mastering, and production services into fixed-price packages. No awkward back-and-forth about pricing. You pick a package, you book it, you get your music back. Stripe integration coming soon so you can checkout right from the site.

audioproduction
Thought

Why I mix with my ears, not my eyes

Most engineers watch waveforms and meters. I can't. Every decision I make is based on listening. Turns out, that's exactly how your audience experiences the music too. No visual shortcuts, no cheating with my eyes. Just sound.

audioproduction
Update

My TikTok AI assistant now talks back

I built an AI companion for my TikTok live streams. It reads the chat, understands context, generates responses with Claude, and speaks them aloud with ElevenLabs voice synthesis. It's like having a co-host that never gets tired. Currently working on giving it memory so it remembers regulars.

softwareai
Thought

Still getting refused entry with my assistance dog

It's 2026 and businesses still don't know the law. Assistance dogs have a legal right of access to all public spaces in the UK. I get turned away at least once a month. That's why I consult on this — because the law exists but awareness doesn't.

accessibility
Tip

Stop hiding things from screen readers

Quick tip: if you use display:none or visibility:hidden, screen readers can't see it either. If you want something visually hidden but still accessible, use the sr-only pattern. And please stop putting aria-hidden='true' on things that aren't decorative. My screen reader literally skips them.

accessibilitysoftware
Update

Blind Drummer went from idea to live SaaS in 11 days

I shipped a full music education platform — student portals, mentor management, booking, Stripe payments, safeguarding compliance — in 11 days. 113 plans executed. People ask how. The answer: I think in systems, not screens. Being blind means I architect everything in my head before I write a line of code.

software

10 of 10 notes