Sign in

Kane Jamison

@kanejamison.com
2.2K followers 950 following 508 posts

Building & growing stuff on the internet. Currently working with growth teams on Rails. 🌎 Based in Anacortes, WA 👋 kanejamison.com 📝 contentharmony.com *️⃣ fixture.media 📈 railsgrowth.com

PostsRepliesMedia
Kane Jamison @kanejamison.com · 24/08/2026
Poured some concrete footers today for an office shed.
Concrete footers and beams just poured for an office shed.
020
Kane Jamison @kanejamison.com · 21/08/2026
“Babe, wake up. They merged Batch support into SolidQueue” 👀 👀 👀 Have been waiting for this email for a couple of years!
Photo of GitHub email where Rosa Gutierrez merges Batches PR #142 into the Solid Queue gem for Ruby on Rails
2121
Kane Jamison @kanejamison.com · 18/08/2026
People are just out there pumping by hand huh?
010
Kane Jamison @kanejamison.com · 11/08/2026
We did it!
110
Kane Jamison @kanejamison.com · 15/05/2026
Whatever you buy, figure out a way to do 100 foot land to the units that are furthest from the modem. I don’t think it matters which brand when you start getting 50+ away. Here is my before and after.
020
Kane Jamison @kanejamison.com · 12/04/2026
ok but Heretic scrolling hear me out
020
Kane Jamison @kanejamison.com · 12/04/2026
It wasn't so bad.
000
Kane Jamison @kanejamison.com · 03/04/2026
I think they deserve it more than us anyways
010
Kane Jamison @kanejamison.com · 24/03/2026
there’s an inspirational quote for this
031
Kane Jamison @kanejamison.com · 13/03/2026
Don’t talk about my dog like that.
Kennel fence with sign: “keep gate closed. Dogs are fast and loose”
020
Kane Jamison @kanejamison.com · 13/03/2026
I’ve seen Claude code display a lot of verbs on my terminal… not sure if I’ve seen that one yet.
000
Kane Jamison @kanejamison.com · 31/01/2026
The suggested prompts in the Claude <> Google Calendar connector are coming at me way too hard today. Just trying to get a little personal organization work done here, ease up.
141
Kane Jamison @kanejamison.com · 18/12/2025
Being able to generate multiple states for a given screen is pretty awesome.
100
Kane Jamison @kanejamison.com · 18/12/2025
My thread got pretty tripped up at the screenshot design task.
100
Kane Jamison @kanejamison.com · 10/12/2025
Holy cow the blind spot for him to call out this particular license aspect, while he is embroiled in a frivolous lawsuit with WPEngine for almost the same thing.
Matt calls out this license section: “No licensee or downstream recipient may use the Software (including any modified or derivative versions) to directly compete with the original Licensor by offering it to third parties as a hosted, managed, or Software-as-a-Service (SaaS) product or cloud service where the primary value of the service is the functionality of the Software itself.”

Then he comments: “Oh wow, I can’t compete with the leader. In how they choose to operate their business today, or however they might choose to in the future. My freedoms are at their whim.”
150
Kane Jamison @kanejamison.com · 08/12/2025
Today is the 20th anniversary of the time in college when my friend Jeff gave me some free shared web hosting, and I decided to build a music blog with something called "WordPress." It would have been on version 1.5 I believe, since this was a few weeks before WordPress 2.0 was released.
060
Kane Jamison @kanejamison.com · 08/12/2025
I was sad that you can't make 3-split the default when opening a CTRL + N new terminal window, however, you can set `window-save-state = always` and it will open those 3 panes each time you have to restart Ghostty.
use `window-save-state = always` in ghostty to open tabs the same way they were closed
010
Kane Jamison @kanejamison.com · 08/12/2025
I have also been playing with this switch from macos terminal to Ghostty this week after seeing one of @robbyonrails.com's t-shirt posts... I've been having a lot of luck with this 3-split layout. Claude + scripts + bin/dev.
three-split ghostty terminal layout with claude top left, scratchpad/scripts top right, and running bin/dev in bottom
140
Kane Jamison @kanejamison.com · 05/12/2025
I like to tell myself that when the robots take over they'll keep me around because I have a fun energy.
Claude code doing its thing and me replying "hell yeah. we're back baby."
030
Kane Jamison @kanejamison.com · 04/12/2025
Dark mode just uses `invert` filter to make the black text white:
000
Kane Jamison @kanejamison.com · 04/12/2025
This was the before version. I like fast-loading text but it needed a little more personality. I had Gemini generate 10 signature variations with some style instructions, then removed the background with Adobe for free at full resolution. Not exactly SVG but a transparent PNG is nice enough.
Before image with bold text "Kane Jamison" logo and small purple hexagon
100
Kane Jamison @kanejamison.com · 04/12/2025
Wasn't happy with the 'logo' on my personal site so generated a signature version that I like the look of. Not giving away my actual handwriting seems like a nice use case for AI 🤔
After image with transparent PNG of handwritten signature for "Kane Jamison"
110
Kane Jamison @kanejamison.com · 03/12/2025
Makes it sound like the JS got dizzy or something.
020
Kane Jamison @kanejamison.com · 13/11/2025
I don't love the idea of having the thing strapped to my face all day, but, the ability to work on a 'full life' screen is appealing to try. I just can't fit everything I want even on a 35" curved widescreen + laptop off to the side.
000
Kane Jamison @kanejamison.com · 13/11/2025
every time
screenshot of claude code saying "You're absolutely right, and I apologize for missing those key points! Let me reconsider:

  Your Approach is Better - Here's Why I Now Agree"
340
Kane Jamison @kanejamison.com · 12/11/2025
Yes correct. I can't really tell what linting rule is being applied, but IMO the multi-line seems more aggressive than it should be. Particularly in a Tailwind type of environment, breaking this example div on line 164 into multiline looks crazy to me. Here's the before and after.
100
Kane Jamison @kanejamison.com · 12/11/2025
@marcoroth.dev Not sure what version of HERB I'm on but this style of multi-line HTML formatting started happening for me today after restarting Zed. It goes away when I turn off all LSPs. I assume it's not the default or intended linting effect but maybe I'm wrong about that?
200
Kane Jamison @kanejamison.com · 12/11/2025
I restarted Zed and started getting the worst linting effect possible on ERB. I hope it's not HERB doing this but I have disabled erb_lint and html_beautifier that I was using and it's still happening...
110
Kane Jamison @kanejamison.com · 04/11/2025
Me getting an email from Dependabot that a dependency just jumped from version 9 to version 43.
180
Kane Jamison @kanejamison.com · 22/10/2025
I sort of understand why Ruby Gem authors set an upper bound on a dependency in a gemspec... "hey I have only tested this up to Rails 8.0, not promising it works with 8.1" But my immediate reaction is to fork / remove the gem if it's going to be extra drag weight on keeping my app up to date.
160
Kane Jamison @kanejamison.com · 14/10/2025
For reference, here's what it does - the date strings eg "September 2025" don't shift left/right when the stable gutter space is reserved:
010
Kane Jamison @kanejamison.com · 14/10/2025
Looks like the arbitrary tag syntax version works great, however. I'm actually not sure why this isn't the default scrollbar behavior to be honest... it's a better experience.
110
Kane Jamison @kanejamison.com · 14/10/2025
Just caught Claude Code making up a fake @tailwindcss.com class, but in Claude's defense, this would be an awesome class to have =)
130
Kane Jamison @kanejamison.com · 14/10/2025
Nice. This one armed fella showed up in our garden last month and hung out for a few days in the rock garden. And TIL, apparently they camouflage based on surroundings (and when molting). I had no idea. So yours might be matching the paint. www.ipm.org/show/amoment...
one armed praying mantis
010
Kane Jamison @kanejamison.com · 12/10/2025
Here is my CI - if you add `continue-on-error: true` at the job level and again at the step level, it will force your CI to pass and show ✅ even though you might have unresolved offenses. At the pace Marco is going, I'm guessing this is useful short term before there is a `generate-todo`.
my CI setup for Herb, copied from the Herb docs but I needed to add in my node-version, same as my Jest tests.passing CI despite failing lint - this is temporary until I resolve all the offenses in the repo
000
Kane Jamison @kanejamison.com · 12/10/2025
And if you don't have Claude Code filing Github Issues for you yet you should totally try it. It creates the cleanest markdown formatted Issues with acceptance criteria and tags and all that fun stuff.
100
Kane Jamison @kanejamison.com · 12/10/2025
Each set of offenses is fairly straightforward, but tagging @claude to tackle each Github Issue makes it easy to review a single offense type at a time. Only downside to this approach is that one file or tag might have multiple offenses, creating git conflicts if you run them in parallel.
100
Kane Jamison @kanejamison.com · 12/10/2025
I got Herb working in CI last night. The new Herb Linter flagged many more 'offenses' (214) than the `herb analyze .` command (14 files). Feel more like Standardrb. I had Claude parse the entire lint output and file it into Github Issues to address in separate PRs. Amazing work @marcoroth.dev 🙏
3172
Kane Jamison @kanejamison.com · 09/10/2025
Just went through the entire “hell yeah” video in my brain. youtube.com/shorts/dsCsR...
Hell yeah video thumbnail
010
Kane Jamison @kanejamison.com · 30/09/2025
Afterwards the AI gives you an automated interview assessment. I scored 5 out of 5 in Technical Communication, because: "Your ability to articulate your concerns (for example your comment, 'wtf this is a waste of time') while staying professional is a valuable skill in real-world engineering."
160
Kane Jamison @kanejamison.com · 26/09/2025
Am I crazy or is ZipRecruiter an elaborate scheme to hire people to work at ZipRecruiter?
050
Kane Jamison @kanejamison.com · 22/08/2025
Interesting pricing quirk on AI costs... if you have a medium length prompt, eg 400 tokens, it's more cost effective to add more boilerplate guidance to the model to qualify for cached inputs, which are eligible for prompts over 1024 tokens. 1200 cached input tokens is cheaper than 400 uncached.
010
Kane Jamison @kanejamison.com · 20/08/2025
Apparently there is a `reasoning.effort = low/medium/high` setting you can flag on reasoning models: platform.openai.com/docs/guides/... So that is my next stop in testing.
110
Kane Jamison @kanejamison.com · 20/08/2025
*Specifically* - gpt-5-nano uses a ton of reasoning tokens to accomplish what are mildly better results for my use case. BUT - this is a completion that I'll be calling millions of times - meaning it gets slightly better results for a cost of 600x more! Estimate is $350,000 for my volume 😱
110
Kane Jamison @kanejamison.com · 20/08/2025
This is an identical prompt getting sent to gpt-4.1-nano and gpt-5-nano. Based upon the -nano designation you might expect similar behavior. 5-nano is actually *half* the price on input tokens & same price on output, so it's surely a better deal, right? But the output behavior is way different:
130
Kane Jamison @kanejamison.com · 14/08/2025
Content Harmony's keyword database is up to nearly 500 million keywords. Full keyword search completes in 3-10 seconds usually. Here's 15 seconds to fetch 4 million keywords containing the phrase 'best'. Postgres GIN indexes are pretty incredible.
040
Kane Jamison @kanejamison.com · 12/08/2025
Alright going a little nuts with these now. Added to invitations and team members page - will make it easy to spot non-company accounts or mis-typed domains.
010
Kane Jamison @kanejamison.com · 12/08/2025
Teeny little feature but finally adding favicons into Content Harmony
200
Kane Jamison @kanejamison.com · 11/08/2025
On the flip side, I see that there's setup instructions for Single Database mode - that maybe feels simpler? github.com/rails/solid_...
000
Kane Jamison @kanejamison.com · 02/08/2025
The outreach spammers are just loving @beehiiv.com. I only actually sign up for maybe 5% of the emails I get from them. Pretty sure they intentionally don’t have a “I never signed up for this” feedback loop when you reach this page.
The Beehiv unsubscribe page which doesn’t let you report spammers.
010