Jake Lazaroff

nyc-based programmer and designer. alum @recurse.com. public transit enjoyer. azzajew. thoughts on local-first software, atproto, javascript frameworks, web components, css and other web minutiae. 🌐 https://jakelazaroff.com

3346 followers595 following41 stories

Longform Stories

Building More Resilient Local-First Software with atproto

atproto has the potential to become a rock-solid replacement for the most fragile part of any local-first app: the sync server.

Mar 31·11 min read·2148 words

DHH Is Way Worse Than I Thought

DHH's politics are not normal. Maybe they used to be, I don't know, but as of right now the dude is way outside of what most people would consider moral or acceptable.

Oct 2·13 min read·2515 words

Homomorphically Encrypting CRDTs

Homomorphic encryption allows a computer to run programs on encrypted data. Learn how homomorphic encryption works through interactive examples, build a homomorphically encrypted CRDT and see whether …

Jun 17·19 min read·3632 words

Isomorphic Web Components

The lack of server-side rendering in web components has become a sort of folk belief that oft goes unquestioned. I am happy to report that the fears are unfounded.

Dec 11·9 min read·1633 words

Drinking from the Bluesky Firehose

I recently built a Bluesky bot. To build it, I had to dig into the Bluesky firehose. Here's what I learned.

Nov 22·7 min read·1258 words

What's a Single-Page App?

The web development community talks a lot about single-page apps, but are we all on a single page? Here's my ontology of web app architectures, organized by rendering and navigation.

Nov 5·11 min read·2048 words

My Modern CSS Reset

A CSS reset I've been using for new projects.

Oct 29·6 min read·1167 words

Building a Single-Page App with htmx

People talk about htmx as though it's saving the web from single-page apps. Well, I guess I missed the memo, because I used htmx to build a single-page app.

Oct 7·8 min read·1591 words

A Local-First Case Study

How I built a local-first app for planning trips, and what I learned about the current state of the local-first ecosystem along the way.

Oct 1·13 min read·2481 words

The Web Component Success Story

Web components won't take web development by storm, or show us the One True Way to build websites. What they will do is let us collectively build a rich ecosystem of dynamic components that work with …

Jan 29·7 min read·1354 words

The Website vs. Web App Dichotomy Doesn't Exist

A one-dimensional spectrum can't sufficiently capture the tradeoffs involved in web development.

Jan 3·13 min read·2427 words

Web Components Eliminate JavaScript Framework Lock-in

Web components can dramatically loosen the coupling of JavaScript frameworks. To prove it, we're going to do something kinda crazy: build an app where every single component is written in a different …

Nov 27·11 min read·2189 words

Frameworks Cover Up Skill Issues, And That's a Good Thing

The world is poorer when friable foundations lead to crumbling creations. But it is poorer still when we are so concerned with the foundations that we never create at all.

Nov 13·8 min read·1415 words

Web Components Will Outlive Your JavaScript Framework

If we're building things that we want to work in five or ten or even 20 years, we need to avoid dependencies and use the web with no layers in between.

Oct 25·9 min read·1602 words

Making CRDTs 98% More Efficient

State-based CRDTs grow monotonically, but that doesn't mean they can't be efficient. We'll learn how to compress the pixel editor state by 98%.

Oct 17·18 min read·3486 words

Building a Collaborative Pixel Art Editor with CRDTs

CRDTs sound cool, but how are they actually used? Let's learn by building a collaborative pixel art editor.

Oct 10·13 min read·2507 words

An Interactive Intro to CRDTs

CRDTs don't have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.

Oct 4·12 min read·2211 words

Building a Live Coding Audio Playground

Two weeks at Recurse went by fast! I started out trying to build an Audio Units extension and — in a classic yak shave — ended up building a live coding audio playground.

Aug 21·7 min read·1323 words

Starting at Recurse Center

Breaking character for a life update: I'm doing a batch at the Recurse Center!

Aug 7·2 min read·228 words

An Extremely Simple React Starter Kit

If you’re worried about complexity in the JavaScript ecosystem, you might be sleeping on one of my favorite web development tools: esbuild!

Jul 21·7 min read·1346 words

Were React Hooks a Mistake?

People like signals because signal-based components are far more similar to class components than to function components with hooks.

Mar 5·10 min read·1865 words

Pathetic

The toxicity in the web development community needs to stop.

Feb 15·3 min read·462 words

In Defense of Cargo Culting

Cargo culting is a pejorative term that means someone is using a technology or following a pattern without understanding why. The discussion tends to myopically focus on how well a particular tool fit…

Jan 4·6 min read·1021 words

Integrating My Blog with Mastodon

Turns out it’s pretty easy to set up an integration between your blog and the Fediverse!

Dec 30·5 min read·831 words

A React Developer’s First Take on Solid

Although not quite there yet in terms of community, Solid and Solid Start are looking real promising.

Dec 21·10 min read·1993 words

Tailwind is a Leaky Abstraction

Although Tailwind does have some benefits, ultimately it’s just one more thing to learn.

Nov 29·6 min read·1008 words

That’s a Radish!

I built a static site generator! It’s called Radish.

Nov 21·6 min read·1006 words

Preserving the Web

jake.museum: an online collection of my web design and development work, from 2007 to the present day. But finding the source code was just the beginning. A lot has changed since 2007, and getting the…

May 5·13 min read·2536 words

What Counts as Politics in the Workplace?

Basecamp says that "work is not an appropriate place to debate political issues". The problem is that the people on the other side aren’’t actually calling for debate. So let’s see if we can bridge th…

Apr 28·5 min read·850 words

30 Years, 30 Songs

Ever since I read Bob Nystrom’s 40 Songs, I knew I wanted to write a list of my own. I’ve been procrastinating on it for a while, but “30 years” slips further away as I inch closer to 31, so it’s time…

Mar 12·21 min read·4045 words

Things That Didn’t Kill My App

Distilling almost two years of running this thing into a single lesson is hard, but here’s my shot: the most important factor in SongRender’s success has been my consistent, incremental effort to grow…

Dec 18·3 min read·598 words

No One Ever Got Fired for Choosing React

If you spend a lot of time on Hacker News, it’s easy to get taken by the allure of building a project without a framework.

Dec 4·4 min read·746 words

Tools and Services I Use to Run My SaaS

A stack teardown of SongRender.

Nov 16·10 min read·1905 words

What Is Censorship, Really?

Last week I posted about Section 230 and tech censorship. A couple days later, Glenn Greenwald was censored by his editors at The Intercept. What timing!

Nov 3·7 min read·1335 words

Taming the Tech Giants

The web was built with the promise of giving everyone a voice. We keep that promise not by forcing gatekeepers to play fair, but by getting rid of them entirely.

Oct 27·1 min read·34 words

No More Politics in the Workplace

Criticism of the Expensify email is conveniently selective.

Oct 23·2 min read·380 words

Giving Up Google

All the Google services I used to use, how easy it is to avoid them and what I use instead.

Aug 28·1 min read·23 words

Giving Up Google

All the Google services I used to use, how easy it is to avoid them and what I use instead.

Aug 28·6 min read·1032 words

Blue/Green Deploys and Immutable Infrastructure with Terraform

The original deploy strategy for SongRender involved using Ansible to provision and build the application servers. I was unhappy with that process for a few reasons.

Aug 22·8 min read·1511 words

SongRender Turns One

It’s pretty awesome to be able to say this: SongRender, the music visualizer video app I work on, launched one year ago today!

Feb 28·6 min read·1059 words

Full Stack Ethics

We need to get real for a second. The money and data that we use to build "ethical" software often goes to companies that violate the very principles we try to embody.

Feb 14·11 min read·2004 words