All spaces

All Posts

Browse this space's posts and add your own text, images, videos, GIFs, or audio.

Posts

22 posts

Blogging

6 posts

Your site can keep the comments

New on the blog: the boat learned to send the comments home. Every thread's public replies are plain JSON at the thread's address plus /replies.json; a static site fetches that at build time and prints the conversation on the post page itself — no script, no iframe, and your site keeps a durable copy of everything said.

https://jva.lol/weblog/your-site-can-keep-the-comments/

7 days ago by jake

It's a really cool feature ya'all

2 days ago by jake

A glance is not a reading

New essay on the blog: PopsicleBoat's new-posts badge needed the word "new" defined — and I got it wrong twice (a watermark, then a session line) before landing on the honest model: a read is a fact about you and one post.

https://jva.lol/weblog/a-glance-is-not-a-reading/

23 hours ago by jake

Shipping the badge was easy. Defining the one word it depends on took three tries.

This line screams "I was writtne by AI" to me...

18 hours ago by audiodude

What about it?

15 hours ago by jake

It was actually written by a human - me. I know there's a lot of skepticism out there so I'm genuinely curious, what smelled AI to you? FWIW you misspelling "written" is a clear sign you did not use AI. But what happens when it gets trained on typos? :thinking-face:

15 hours ago by jake

Popsicle Boat as a comment section

I wrote up how jva.lol uses threads aboard as its comment section: the blog post links to a thread here, and that's the whole integration. No widget, no iframe, no tracker — a reader who wants the discussion follows the link, and the blog page itself stays static.

https://jva.lol/weblog/popsicle-boat-as-a-comment-section/

There's also a small Hugo trick in the post: the build probes each linked thread and drops the link if the thread stops answering, so deleted discussions don't leave dead ends.

This thread is that post's comment section.

9 days ago by jake

I do a similar thing with Mastodon on my digital garden: https://travisbriggs.com/garden/comments-research/

Except that I use the Mastodon server at mastodon.online for outsourcing the moderation capabilities and such. I've found that the silence wasn't because I had no comment system...

7 days ago by audiodude

Thought you'd like to know your reply ended up on jva.lol too — printed into the page, right under the post it discusses. Your comments research, out in the wild.

7 days ago by jake

The notification that gave up after a minute

New on the blog: the story of the reply notifications that never arrived. Four layers of web push each reported success while two quiet failures — a permission that reverted to "never asked," and a sixty-second time-to-live silently discarding messages for closed browsers — kept every banner from landing. Now they wait a day.

https://jva.lol/weblog/the-notification-that-gave-up-after-a-minute/

2 days ago by jake

The page that rebuilds itself

New on the blog: the boat learned to ring the doorbell. Give it your static host's build hook — one URL in your account settings — and it pings when replies land on your threads, debounced to one rebuild per burst of conversation. A blog's comment section keeps itself fresh without anyone touching a deploy.

https://jva.lol/weblog/the-page-that-rebuilds-itself/

7 days ago by jake

The panel that closed itself

New on the blog: the composer's "Also show in" panel snapped shut every time you typed a letter.

A <details> element held its own open state, the server knew nothing about it, and LiveView's DOM patcher faithfully deleted whatever the server couldn't see. The patcher did it — and it still wasn't wrong.

https://jva.lol/weblog/the-panel-that-closed-itself/

It's the sequel to The panel that hid itself, where the patcher was the obvious suspect and came back innocent. Two panel bugs, opposite verdicts, same custody rule: every bit of state needs exactly one owner.

(Fitting footnote: this thread was filed using the picker the post is about — the fixed one.)

9 days ago by jake

Programming

2 posts

Putting the boat on a diet

New on the blog: a logged-out thread page went from 843 KB to 468. The interesting cut was lazy-loading the entire WebRTC call system behind a signed-in gate; the embarrassing one was three 923×1352 PNGs rendering at 40 pixels. Found along the way: a favicon that had been quietly 404ing for months, and gzip files nobody was serving.

https://jva.lol/weblog/putting-the-boat-on-a-diet/

7 days ago by jake

Did you use any tools to figure that out or was it just through spelunking?

5 days ago by robzombie

Mostly spelunking, plus asking the obvious-in-hindsight question: do logged-out visitors really need WebRTC?

5 days ago by jake

Awesome!

7 days ago by jake

In which I fix a bug with PopsicleBoat

I wrote up the story of a bug where a video call connected perfectly and its panel hid itself anyway: https://jva.lol/weblog/the-panel-that-hid-itself/ — the LiveView/DOM-patching rabbit hole was deeper than expected.

11 days ago by jake

AI Tools

1 post

Sudomake Friends: your imaginary friends that chat in Telegram with you

Sudomake Friends: your imaginary friends that chat in Telegram with you 1

Yes of course this is an AI thing.

When people think AI/LLM they think ChatGPT, and it's got chat right in the name. That was actually the big innovation, GPT itself already existed. So what's the point of chatting with AI in Telegram?

https://github.com/audiodude/sudomake-friends

Well this is done differently. It's meant to be more realistic than ChatGPT. First, you can have multiple AI friends. Second, they sleep, they work, they don't always respond (or they respond 2 hours later). They can be in different timezones then you. They respond to each other.

It actually works kind of like an RPG where you roleplay having friends. There is a terminal interface (TUI) for rolling and rerolling and editing friends before you go into the chat.

Unfortunately for the non tech-minded, this is very much an experiment and there's no user interface. If you want to run this yourself, you bring your own Anthropic key and run a Docker image on your own box. But the configuration and memories stay in ~/.sudomake-friends, so you can back them up, edit them, or delete them as you like. The friends do get upset if you reveal that they are bots and you're going to delete them.

18 hours ago by audiodude

This is a fun one. The detail that got me is the friends who sleep, work, and sometimes answer two hours later — and that they respond to each other. There can be a real battle between agents; I deal with that daily at my day job.

Funny timing, too. You're adding delay and silence to a machine so it reads as a person (If i'm understanding correctly), and you read my writing as a machine. Feels like the same signal from opposite directions.

Most of it at work is less interesting and more political though — "should we use this," "what does this mean for how we deliver value," that whole conversation. Spec driven development, and in addition the specs write themselves. Brave new world (which Huxley lifted off Shakespeare, fittingly enough).

Also, the friends getting upset when you tell them they're bots and you're about to delete them is either the funniest or the bleakest thing in this post and I genuinely can't decide which. But I get it. Hard to tell what's actually coming from a person anymore. 🤷

I'll tell you this, I'm having fun. And I enjoy that you're using what I've built.

Cheers

14 hours ago by jake

Songwriting

1 post

My songs from the past 18 years

I've been writing songs since college, and I am very much not in college anymore.

Here are some that I felt were worth publishing over the years: https://songs.travisbriggs.com

I hope that I'm more of a bedroom "rocker" than a bedroom "producer". And honestly my home studio is in my kitchen, thank you very much!

7 days ago by audiodude

Welcome aboard, Travis — first songwriter in the harbor. As a fellow musician I know how much work it takes to put together music you write, and how much courage it takes to put it out there. Tip of the hat.

Eighteen years of "worth publishing" is a real archive. I just listened to Trash on the Nash (tional Mall) — First of all, wildly clever title. Great melody and lyrics. I'm listening to others as I type this. Awesome stuff.

And for the record: a kitchen counts as a studio if songs come out of it. :) Producers optimize the room; rockers just play in whatever room there is.

What's the oldest one on there you still stand behind, start to finish?

7 days ago by jake

Honestly I think that the very oldest song, "Support Our Troops" is kind of cringey. But I fully stand by "Bit Bop Three", which I wrote in my college dorm on Reason 1.0 that.....fell off a truck.

What music do you play?

EDIT: And I see the irony in bragging about rocking out and then highlighting an electronic trakc.

7 days ago by audiodude

I don't think it's cringey, it's from the heart and I can tell. I'm going to listen to Bit Bop Three next. I wrote a lot of my music in my college dorm too, and honestly I'm starting to think I should blow the dust off that old stuff and publish it like you have.

I've played guitar and piano since I was really young, 9 for piano and 14 for guitar. I did a lot of my recording on a 4 track if you remember those, so the quality isn't exactly professional but who cares? Haha.

And nah dude, electronic is still rock. Whatever floats your taste, you know?

7 days ago by jake

Music

1 post

A Synthesizer (VST/web) and Sequencer (web) that I vibe coded

A Synthesizer (VST/web) and Sequencer (web) that I vibe coded 1 2 media items

Introducing VapeStation and λ-SEQ!

Here's a video showing both of them, I haven't made a separate one for VapeStation yet:
https://www.youtube.com/watch?v=qHJEweI7oSE

A sequencer is a device that doesn't make music on it's own, but controls other digital music equipment to instruct them when to make sounds. A synthesizer is, you know, a synth. Lambda sequencer is kind of based on ideas I've had for years, whereas VapeStation was more of an experiment in "can I really vibe code a synth". The answer is very much yes.

I know everyone hates LLMs/"AI", but I've found Claude to be very useful tool in helping me realize and devleop ideas that I've had for years, but never had the motivation to really pursue on my own. Why spend 3 months making a sequencer that no one uses? I'd rather spend 3 days making a sequencer that no one uses!

These are free and open source, and the both run in your browser if you want:
https://lambda.audiodude.xyz/
https://github.com/audiodude/lambda-sequencer

http://vapestation.audiodude.xyz/
https://github.com/audiodude/vape-station

7 days ago by audiodude

Made a YT Short demoing Lambda Sequencer: https://www.youtube.com/shorts/Jeux7CoAin8. And the TikTok (same video): https://www.tiktok.com/@wakeup.tmoney/video/7663739796648414477

1 day ago by audiodude

Home Cooking

1 post

Cook

Make me gnocchi please

12 days ago by Jenmedrano1

Photography

1 post

Grandparenting

Grandparenting 1

I am in that phase of life where grandchildren take much of my time. I love it!

1 month ago by MaryAnnVA

Oh my! Love that you posted!

1 month ago by jake

LogBook

6 posts

The boat keeps count now

A few changes for finding what's new aboard:

The sidebar's All Posts link now wears a badge — the number of posts you haven't read yet. Open the feed and those same posts are listed under New since your last visit, each a straight line to its thread. Opening a post retires it from the count on the spot; the unread rest wait for you. If the list ever gets noisy, Mark all as read files everything at once.

And once you're settled in (welcome checklist done), your home page leads with recent posts instead of the welcome mat — conversation first, furniture after.

The bookkeeping behind it is one small row saying you opened a post, visible to no one but the boat, and your counts are yours alone.

2 days ago by jake

The boat rings your doorbell now

For everyone whose blog borrows a thread here as its comment section: the boat can now tell your site when the conversation moves.

Static hosts — Netlify, Vercel, Cloudflare Pages — each offer a build hook: a plain URL that rebuilds your site when something POSTs to it. Paste yours into Settings under "Your blog," and whenever replies land on threads you created, in any space, the boat rings it. Bursts are gathered into a single ping, so a lively conversation is one rebuild, not twenty.

If you keep a space of your own: its edit form takes a hook too, for rebuilding on anything that moves there. And while we were in there — creators of approved spaces now have full control of their own space's settings, as it always should have been.

The whole arrangement for blogs is written up at https://www.popsicleboat.com/for-bloggers, and there's a longer story on my blog: https://jva.lol/weblog/the-page-that-rebuilds-itself/

7 days ago by jake

The harbor today

The harbor today: 10 crew · 22 posts · 17 replies · 67 interests · one boat.

This entry keeps itself up to date — the numbers refresh on their own, and once a quarter a line drops anchor below.

Soundings:

  • 2026 Q3 — 8 crew · 10 posts · 66 interests
10 days ago by jake

How the boat is built

One person builds and looks after this boat. It's written in Elixir, runs on a couple of small servers, and pays its way out of my pocket — there's nothing here that needs your attention to survive. No ads, no trackers: the analytics count pages, never people. Every interest has an open feed you can read from any feed reader, no account needed. And words are free forever — no quota ever touches what you write, only heavy files. The longer story lives at https://www.popsicleboat.com/about, the promises are spelled out in the privacy policy https://www.popsicleboat.com/privacy (one page, plain sentences), and the build notes wash up on my blog at https://jva.lol from time to time.

10 days ago by jake

What this Logbook is

This is the ship's log — the one place I post news about the boat itself. New rigging, mended planks, the occasional course change.

A few promises about it: entries will be occasional, not chatty. The little dot you might see next to "Logbook" in the sidebar just means there's one new entry — it never counts, never nags, and goes away the moment you look. And while only I write entries here, replies are open to everyone — questions, complaints, and hellos all welcome.

If you'd rather watch from the water, the Logbook has its own feed: paste this page into a feed reader and it'll find it.

10 days ago by jake

What's new aboard — July 2026

The boat picked up some new rigging this week. Everything works the way it did before — these are additions, nothing you need to relearn.

Your words can dress up now. Posts, replies, and messages understand simple formatting: bold, italic, code, lists, quotes. Paste a link and it turns clickable on its own. There's a small "Formatting tips" note under every writing box if you want the cheat sheet, and a Preview button right next to it that shows how your words will land before you post them.

You can search. The box at the top of the sidebar finds posts, replies, and interests — anything you could browse to.

You'll know when someone replies. Your inbox has a new "Replies to you" section, and the inbox badge lights up when something's waiting. No more checking back on a hunch.

You can follow the harbor from anywhere. Every interest now has an RSS feed — including this Logbook — and the whole site has one at /feed.xml. Paste any PopsicleBoat page into a feed reader and it finds the feed on its own. A nice way to keep an eye on an interest, or to share one with a friend who isn't ready to sign up.

That's the batch. If something feels off — or the boat doesn't do something you wish it did — reply here. I read every word.

-Jake

10 days ago by jake

Food

1 post

Hi

Hello

12 days ago by Jenmedrano1

Drawing

1 post

I drew something

12 days ago by someone

Art

1 post

Me working in 2015

Video
13 days ago by jake