10 Mar 2023
•
blog
At work we have a moderately sized React project that uses Webpack to build.
We have a few customizations for Webpack, mainly to try to get it to go a bit
faster, but I decided to look into Vite primarily
because I want to try to improve our build speeds. I was surprised at the
amount of obstacles we encountered along the way, so I’ve tried to lay them
out here in case anyone else is looking to do the same.
More …
05 Sep 2022
•
blog
Inspired by
recent work on an automatically-generated HTTP API
I took a look at our WebSocket API. We had types defined on our backend, and some were
shared by our frontend thanks to the typescript-generator
plugin, but it was a hodge-podge of hand written TypeScript types and for loops with casts
to try to ensure the frontend and backend stayed in sync - in other words,
we had a lot of code that described the plumbing rather than doing useful things.
Here I’ll demonstrate how we manage to share WebSocket calls, listeners, and types across our frontend
and backend, ending up with a single clear and concise interface for us to use.
More …
30 Jul 2022
•
blog
At work we have a Java backend that exposes HTTP endpoints for our frontend to
call. Some do simple create/read/update/delete, some do specific requests, and
there are a bunch to remember with many different types of objects that are
returned. Because we rely on these API calls so much, we’ve put a lot of effort
into tooling to make the frontend/backend communication as seamless as possible
for our developers. Here is a brief overview before I go into detail:
More …
03 Jul 2022
•
blog
Docker is becoming the de facto standard for packaging web applications, and Docker Compose
is a pretty simple way to deploy it. One downside is that during a deployment, the old version
is taken down before the new version is deployed, causing a brief service outage for clients:
More …
08 Mar 2021
•
blog
So: You’ve got a nice fast Windows desktop, and a nice portable laptop, and you want to edit code in IntelliJ on
the laptop and run it on the desktop. Seems easy enough, right? VS Code does this pretty much out-of-the-box with
its Remote Development feature. But for (apparently complex architectural) reasons this is not so easily done on
JetBrains IDEs, so instead they’ve released software called Projector that allows them to run the IDE on the
server, but rendering the GUI over HTTP to your web browser. Sounds a little crazy but it works quite well!
More …