Projects

Vibe Coding #5 - Self-Hosted website

I was tired with Squarespace, so I built a website from scratch and migrated my content to it. I’m using Astro to publish, and using Google Docs to generate my content (and the google docs and google drive APIs to access it).

I’m excited to do more creative things with web publishing than Squarespace could really accommodate. I’m also much happier with the publishing workflow of working in a very good editor (google docs, pageless mode), embedding images and code etc., and not worrying about Squarespace’s rigidity and the slowness of its editor.

Vibe Coding #4 - Trade Simulator

This one’s published on GitHub Pages, here; the repo is here.

Drunk on the power of vibe coding, I feel that I can get rich quick (narrator: he cannot). I built an automated stock trading program. It’s not connected to real dollars. I just gave it a $1000 starting portfolio. Assuming my program will not Beat The Market, then the actual valuable pieces of this project include:

  • Learning the different approaches to having a program running in the background, so it can check stock prices and place trades every 5 minutes automatically throughout the day. I’m not paying for server hosting, so I’m using my computer, so any time it’s asleep or off the program doesn’t run.
  • Two separate programs: the trading program itself, and a front-end visual dashboard.
  • Using GitHub Actions to run cron jobs to log the market data, which then the trading program “reads.”

Vibe Coding #3 - Policy Browser

This one’s on GitHub, here.

I’m learning that vibe coding is about context management.

For my third project, I wanted to build a Policy Browser that loads in primary source text of a law; is in-line annotatable (like Sefaria.org); and can associate caselaw (court decisions) and commentary (op-eds etc) with the law. I wanted a research tool that can be used by a human researcher for organizing policy analysis resources. I’m still setting up basic dev environment things for myself (installing homebrew; gh CLI) and moving things out of my computer’s file system and onto GitHub. A lot of this is straightforward to do myself, and is a bad use of LLM tokens.

The first UI wasn’t what I wanted. I gave Claude directions to change the UI, and in the middle of doing so I hit my token limit for the session - meaning I had no workable MVP anymore. That’s what taught me about git and version management. Telling Claude “undo that” is wasting tokens.

I also see that Claude does way too much - in this case, I just wanted the ability for me (or any user) to add caselaw and commentary; I did not mean for Claude to do that directly. Claude also (incorrectly) added designations of commentary’s positions (supportive; mixed; neutral; critical) wrt the law - no, that’s fun policy analysis stuff that I want to do. Not only is that wasting tokens, it’s taking the meaningful, me-part of the work away and doing it wrong. So I am learning about the need to give really strict, narrow instructions to Claude: I want help creating file structures, generating the code (js, html, css), and that’s it.

Vibe Coding #2 - S&P 500 Directors

For my second project, I explored Claude’s scraping capabilities. It also helped me learn about what token limits mean. I hit my session usage limit a few times and had to wait several hours for it to reset. My weekly limit was comfortably low, though. In terms of prompting, this was about as simple as Project #1.

It has some plainly recognizable errors. Al Gore is not a member of AAPL’s board of directors, for example. In addition, after scraping, it simply put everything into an array in javascript, inside of the .html file itself. So, a serviceable wireframe perhaps, but not a sustainable data structure. One of the many reasons I’d want a healthier set of data structures is that I could go in and fact-check (or manually enter) the board of directors for each company much more easily.

This project served its teaching purpose for me though, and I’ll set it aside.

S&P 500: Financials and Directors

Vibe Coding #1 - Synth

Here’s my first project with Claude Code.

Prompt: “Let’s build an application from scratch. Let’s make a simple digital synthesizer for music creation. I want us to start with as few controls as possible - maybe just one oscillator!”

Less than five minutes later, it produced most of what you see below. I then prompted two more changes: a cutoff filter, and the ability to adjust these parameters in realtime on a note while it’s held.

Finally, I troubleshooted its performance on mobile. The problem? I had my phone’s side switch set to do not disturb! It should work on both mobile (iOS 26.2 Safari) and desktop (Chrome 143.0.7499.171) browsers.