RSSAmplifier

Blog

vogt.world

Recent content on vogt.world

vogt.worldRSS feed ↗228 posts

Latest posts

One-hundred things

In any organization or company, there are one-hundred things. Now, at any given moment, ten of those things are very important, thirty of those things are somewhat important, fifty are maybe a little nebulous as to their import. And then the last ten are largely inconsequential for the time being. You really only need consensus on the top ten. You need functional disagreement and maybe a little…

Log

Facebook Marketplace first introduce the “ask if this is available” pre-filled message. Now they’ve introduced a setting so that listings can have AI respond to messages about availability. This feels like Product Manager KPI fraud… 08/02/2026 09:50AM The year is 2026 and if you’re writing something online, your goal is no longer to write something well. Your goal is…

Honk the horn

I’ve often heard from engineers that it’s not our job to write code, it’s our job to solve business problems. When working for a company, I suppose that’s strictly true. But it’s also okay to like the many parts of your job that are involved in that goal, or are orthogonal to it. Once I heard someone even say it’s not your job to “solve business…

Best practices are relative

Maybe I’m just obtuse, but whenever I read an article from a company, or programmer, or really anyone talking about “best practices”, it always seems like the examples are either obvious, and therefore un-illustrative of best-practices, or non-specific, and difficult to tell if the best-practices actually solve for the problem. Best practices seem to range across three general…

About

I’m Ben Vogt and I’m a software engineer living in Chicago, IL. This site is where I write about programming and things I’ve built . Emails addressed to benjvogt@gmail.com are always welcome (though I would greatly appreciate it if you would write them by hand, not using generative AI.) My GitHub profile is github.com/vogtb .

2026-06-13-cat-shelf

2026-06-07-door-county

2026-05-23-back-in-chicago

2026-03-20-surf

2026-03-13-east-facing

A code to code by

At Replo, I was trying to get a handle on how to explain what we should and shouldn’t do. We had a really solid, very extensive, and well-written Notion section of our best practices for code, support process, and RFC, but it was, well, almost too verbose. I was trying to figure out a succinct way to say “here’s a rule that lets us work with fewer rules” or rather…

2026-02-27-cal-coast

Glade: cross-platform GUI library in Typescript that uses WebGPU

Glade is a cross-platform GUI library for Typescript that uses WebGPU to render apps at >60fps, for browsers and native macOS. Glade running side-by-side on native macOS (left) and in browser (right) Glade is basically a library for writing cross-platform graphical applications with TypeScript and JavaScript. It includes an application framework and component library (text, inputs, flexbox…

82ef1073

4e26df16b297

a2ecdab5

Bun GL Part 2: Glade, a cross-platform WebGL library

A couple days ago I made a simple POC of using Bun and OpenGL to create a native GUI application . I decided to go a little further and write a small cross-platform library so you can write fill OpenGL/WebGL apps including keyboard/mouse events. Demo of events pass-through. I called it Glade, and you can see it on GitHub: github.com/vogtb/glade-poc . (Glade is a backronym for GL-assisted drawing…

Bun GL Part 1: Using OpenGL via Bun's FFI

This is a minimal example of using Bun’s FFI module to render a GUI using GLFW and OpenGL2 . I’ve been keeping an eye on BunJS for a while now because if its ability to compile to single file executables. Given Bun’s recent acquisition, I though it’d be interesting to explore the possibilities of writing GUIs using typescript without the DOM. This is a very basic example of…

Zig GUI from scratch (part 2)

Some things seem like a good idea, but really aren’t. And even if you know it’s not a good idea, you can’t help but think, well, it’ll be fun at least. Or maybe it’s just me when I had the idea to use WebGPU + Dawn for this project. Previously: Zig GUI from scratch (part 1) Zig GUI from scratch (part 1) : In Part 1, we started building a cross-platform desktop GUI app…

ape-no-fire-ape

ben_4121

ben_4181

IMG_8050

80ea3fd

A spreadsheet in Go

As a way to get back into a language, I like to build spreadsheet engines. I’ve gotten pretty good at it, even if I’m always missing some little feature. There’s always something that doesn’t make the cut, like formats, array-format ranges, or multi-dimensional arrays. But it’s fun, and interesting, and it’s a neat way to brush up on a programming language, in…

Project constant.ts files are bad

The pattern of using a constants.ts is not a good one. The fact that a variable or some block of code is constant tells me nothing about its use. Is it configuration? Is it an environmental variable? Is it a magic number? Based on the name of the file, I couldn’t guess; it could be all of these or none of these. We should name files after what they do. queue.ts , config.ts , env.ts , main.ts…

2025-07-19-9a7f26d

2025-07-09-bf8h1e8

2025-06-30-cat-desk

2025-06-13-a+b+alk

2025-06-13-golden-gate

2025-06-13-golden-gate-park

2025-06-13-seagull-alk

2025-06-13-sf

Spreadsheets and similar tools

This is a review of all relevant spreadsheet-like products, services, tools, and technologies, as well as blogs, articles, news, and notes related to spreadsheets. I started this back in 2017, and I haven’t updated to it in a year or two, but it’s fairly complete. Since I’ve shared it with friends and colleagues working on spreadsheet-like interfaces, I thought I’d share it…

IMG_5665

Building a music making app with Swift (part 2 of N)

A while ago I wrote “Building a music making app with Swift (part 1 of N)” and never really followed up. I’ve been chipping away at it every now and then when the mood strikes. So here’s a couple updates on it. A work in progress. Expanded idea with a better layout Scope-creep is real. But honestly, for a project like this, it’s only a problem if I’m not having…

2025-03-08-ag

2025-03-08-ajl

2025-03-08-ct8

2025-03-08-hb

2025-02-09-feeder

2025-02-09-h

2025-02-09-m

2025-02-09-p

2025-02-07-lesser-golf-finch

2025-02-07-us

2025-02-06-says-phoebe

2025-02-06-says-phoebe-2

2025-02-06-the-birder