Seven and a half years ago, I helped an artist friend set up a Squarespace site back when those ran about $10/month and I've paid for it ever since. (In the credit card sense, not the suffering sense.) This month I noticed an email from Squarespace that the rate's going to nearly double that. That's not their fault, but it reminded me that the site we put up right away instead of spending a weekend together building something on Kirby is still more of a rental than a home.
Now, Kirby's a great system and I really enjoy using on small, free projects. Over the years, it's also ballooned from its origins as a PHP script that stitches flat text files into web pages into something more complicated to set up. It requires Composer to build, and probably node. It’s also got a Vue control panel for editing the flat files that runs afoul of security scans (that spot PHP editing text files) and needs hand-written YAML configuration that's honestly awful to write.
But this year I've had relatively good success getting Claude Code to write that YAML, set up some basic ddev + Vite local hosting, and figure out the state of rsync deploys and GitHub actions for this site, so while I'm not mad I gave Squarespace so much money over the years — they did what they promised — it’s time to cut bait and finally make Allyson an actual website.
Allyson's site has always been simple: a landing cover page (retired), galleries of images, index pages of those galleries, and a contact page that just links out to Instagram. Squarespace offers more, but it wasn't being used. Self-hosting also means the administration falls to me, which is no small part of what their service offers.
I couldn't find any kind of export from Squarespace (hmm) so I used Integrity Plusto scrape the site. (It’s quicker for me than trying to remember wget commands, but Claude Code probably could have done the wget)
From that archive, Claude Code figured out the URLs for the original resolution assets, made the flat-file Kirby content tree, defined the Kirby content model, and reverse engineered a similar front-end build.
I figured it’s worth a post about the phases of the process, not as a "hey you can clone your Squarespace and save money" but because the intent of signing up for the Squarespace in the first place was to get something up immediately and then work on the "real" site — in this case that took years to get to and a sea change in how to do the work.
It’s not vibe coded or one-shotted; the chat approach helped me write plans and chip away over a week or two in very small pockets of free time. Setting up tasks I understand, coming back to find Claude had failed spectacularly, then setting it on a better path. Could I have written the plan? Done the steps? Absolutely. Would I have put it off until the week before Squarespace wanted $200 more? Very likely.
The content model took some back-and-forth and it went down a lot of stupid rabbitholes and mistakes. It organized the site by the navigation, misunderstood the concept of galleries, dropped titles, etc. It wasted as much time as it saved, but I was also able to set it off to a task in very small bits of my time, chastise it for mistakes when I came back to see what it had done, repeat. It made an absolute mess in the final steps of htaccess, inventing whole areas of Dreamhost or Cloudflare's admin panel I should be looking for even when I gave it the two exact support URLs as reference.
But it’s up and it’s done and it runs locally on my little Mac Mini. I can screenshare over to that machine and run the updates. I can pull content changes from production and commit them to the private git repo, push them up to staging to sync. I skipped the GitHub Actions deploy on this one, but I'll add it to the half-dozen or so Kirby sites I've set up the same way(s) this year with Claude's help and make its maintenance part of my regular routines.
I tried intentionally not to wholesale copy the work of Squarespace's theme designers. Menu's on the left on larger screens and the index is masonry and there's a hamburger button. But I improved the accessibilty, replaced the interactions with Alpine, swapped out the fonts. I'll do another pass later to really tighten the whitespace and professionalize it more, but that's something I'd rather do with Allyson, hopefully sooner than seven years from now.
Anyway, here's the phases and the bin scripts (build, deploy, deploy-staging, push/pull-content, push/pull-accounts, pull-all, warm-cache): https://gist.github.com/maxfenton/cef7843392459a3ee9a5d67cead689c4
]]>Published by New York Times on Jun. 18, 2020.
]]>
In one day, Claude Code got through three years of TODOs on this and one other Kirby site concurrently: upgrading from 3 to 4 with functional deploy systems, rsync backups, Vagrant to ddev, long-ago compiled Sass to working Vite builds, functional RSS feeds, lightweight site search, fixes for terrible YAML mistakes Cursor made last fall, and a plan for the 4 to 5 upgrade.
I wish I'd been writing here instead of only into social platforms. I'm hopeful that maybe the archive of those posts can be transformed into something on this site. And that the turned-off archive of my homemade CMS site — what should be at 5880.me or 5880.maxfenton.com — can be safely revived too.
The tools are killing the earth. I know. The code is spaghetti and they're burning money and everything is precarious. I know.
]]>Key binding = control+option+space
Define using 6 x 6 cells
A: A1, F6
L: A1, C6
S: A1, C5
D: D1, F5
M: B1, E5
T: A1, F5
Z: Move to bottom-left
X: Move to bottom-right
G: A1, F3
B: D1, F6
R: D4, F6







]]>
In 2007, I knew Jason Polan because he had a website and an email address. A website could show a picture. It could tell a story. His showed someone who painted ants on walls and made drawings and zines and booklets.
I don't know which of his projects I'd heard of first, but he was exciting. And he was nice. We made a plan to have a show for him in Charlottesville, Virginia at a space I helped curate, and timed it so it happened the last week of May, while he was literally moving from Michigan to New York. In an email he said he'd make "As many as I can" - and that became the name of the show.
He arrived on a Friday morning with his car packed. For moving. And he'd brought a show's worth of framed drawings. Of giraffes. They were all giraffes. And the price for every piece based on how many giraffes; something like $20 + the number of giraffes. 30 giraffes in this one? $50, I think. 100 giraffes in this one? $120.
But the knockout was a thousand index cards, each with a drawing of one giraffe. I remember it was my first day meeting him IRL and we were hanging a grid of a thousand index cards with tiny pieces of white archival artists tape. For a show that same night. It filled a thirty or forty foot long gallery wall. It was spectacular.
None were the same. No order was given to which faced one way or another. When they were up, every one was worth spending a moment with. Seeing which way it was facing. Where it was looking. Choosing a favorite. Changing your mind. He and I watched this little world before people came to the opening. They'd pick one they wanted, take it off the wall, and give him a dollar or put it in a box. Little by little a whole other shape appeared. Gaps. The giraffes looking at each other over widening distance.
The next night, Saturday, he gave a workshop in the space called "How To Draw a Giraffe and Other Large Animals" He talked about art train and a little about moving. Kids came. Artists came. Grown-ups. He drew any animal anyone named. More giraffes left the wall.
On Sunday, Jason and I took a day trip to North Carolina to Lump, and I think Jason stayed friends with the folks there forever after. By Monday, I think all the framed pieces had sold, and about 200 giraffe cards were left. He told me to keep those. And then he got in his car and moved to New York.
What he did in New York, in all the years since, seemed to have the same good energy of those three days in Virginia. Drawing. Meeting people. Drawing. Giving drawings away. Drawing where you could see him. Drawing at home. Drawing at Taco Bell. Little challenges to himself in quantity and quality and essence. And to no other judge.
When those unsold giraffes came off the wall, we jokingly called them "WHAT WAS LEFT FROM AS MANY AS I CAN (dimensions variable)" —
"What was left from as many as I can."
We all know he made as many as he could. As much as he could. And what was left is a lot.
It will have to be enough. And we have to share it.
Thank you, Jason.
edit: found these photos of the install
]]>
I'd been trying to get an Ion USB Tape2PC to play through an iMac using Audio Hijack, but that app doesn't monitor audio unless you're recording.
Just thought to check the Rogue Amoeba site to see if they make any other utilities and found Loopback which let me monitor the USB audio input. As a bonus, it let me name the source, so now it shows up in Audio Hijack as "Tape Deck" instead of "USB Audio CODEC"
Now playing: Massive Attack
///////////////////////////////
Update 2020-02-17:
Whoops. Loopback is $99 and does way more than I need. Turns out if you hold the Option key when you click the Sound menu bar, there's a super fast way to shift the native Input Device, i.e., monitor the tape deck or any other USB input audio. Ha!


What a year. A year as a dad, without my dad. And that election. Amirite?
Some plans:
and maybe someone at a bank stayed at one of their hotels and is getting junk mail that bounces
or maybe THEY DO HAVE A SECRET BANK HOTLINE
like literally I do not even know what to think about that.

But it makes me trust this story less — https://twitter.com/Scott_Gilmore/status/793246783220641792 — which is odd, because they’re entirely unrelated. And maybe the DNS story is, like, designed to erode my trust in stories about T. & Russia
Scott Gilmore @Scott_Gilmore
Russia has been "cultivating, supporting and assisting Trump for at least 5 years"
http://m.motherjones.com/politics/2016/10/veteran-spy-gave-fbi-info-alleging-russian-operation-cultivate-donald-trump https://pbs.twimg.com/media/CwItuipWYAAsCQS.jpg
TwitterYesterday at 8:22 PM (127KB)
Like, it moves the baseline towards “don’t trust stories about T. and Russia” which is … an interesting effect.
Cognitive bias. Whee.
Charlie Loyd (vruba) has an amazing tinyletter. — http://tinyletter.com/vruba
Willem Van L’s last blog post is this: http://www.willemvanlancker.com/hits-driven-world
Willem Van Lancker
Building Products in a Hits-Driven World
Which ends with this quote: https://www.quora.com/What-are-the-best-stories-about-people-randomly-meeting-Steve-Jobs/answer/Tomas-Higbey
In Charlie’s last newsletter he blindlinked to https://www.youtube.com/watch?v=QJ92il176oQ#t=1m53s
YouTube Reagan Library
President Reagan's Address to the Nation on the Venice Economic Summit, June 15, 1987
which is a heck of a speech, in terms of storytelling and setting "the vision, values and agenda of an entire generation that is to come"
I miss Willem’s emoji, I miss the whole style of things that were built for limitations: for lower-res screens and SMS character limitations.
Remaking emoji for an iWatch on the keyboard at 260ppi or whatever; busting up how at-replies work —https://medium.com/@tressiemcphd/twitters-new-replies-re-design-isn-t-just-stupid-it-s-really-stupid-c471ca254f0a#.y00dgflt6 — … just a bummer.
Medium
Twitter’s New @Replies re-design isn’t just stupid; it’s really stupid.
This week I noticed something odd on my desktop Twitter:
Reading time
————————
4 min read
(72KB)
Oct 30th at 12:37 PM
I think I miss thinking computerphones could be anything besides surveillance, mostly.
]]>