Design a site like this with
Get started

How to develop websites with Astro + Docker + ChromeOS

I was reading StackShare’s Top Developer Tools 2022 and noticed Astro is the #1 tool so figured I should check it out. I use an Acer Spin 713 Chromebook for my daily driver and it works pretty well for local dev, but it does have a few quirks, namely that the dev environment runs in its own containerized environment so you have to keep track of things like the container IP.

# Get the IP address of the Crostini container
IP_ADDR=$(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')

Next, start up a Node container. (If you don’t have Docker installed, follow this blog post.)

# Run the container
docker run -it --rm --entrypoint bash -p 3000:3000 node

Once you’re in the container, initialize a new Astro app.

npm create astro@latest
# say yes to the prompts

Run the app. The -- --host is important.

npm run dev -- --host

Now jump into your browser, plug in http://localhost:3000, and you should be good to go.

So that’ll get you going. Now get to web devving!


How to install Steam on ChromeOS

Newer Chromebooks are actually pretty good at playing games and thanks to GPU acceleration and Crostini, a Debian Linux container custom-built for ChromeOS, we can easily run Linux applications on ChromeOS without any special hacks.

You’ll need to enable the Linux environment in ChromeOS Settings. You can change your Linux disk size, but 20GB is good enough for me to have a couple games and still have room for dev tools. You probably won’t be able to make it a disk much bigger and still have room for your ChromeOS environment, though.

Once it’s set up, you’ll have to set up a username in the Linux terminal.

Now that you have the Linux environment set up, download steam.deb, the Steam installer for Linux. Once downloaded, open the Files app, right-click on the .deb file, select Open with…, then Install with Linux.

It might take a few minutes to install, and then it should appear in your programs under the Linux apps group.


When I started Steam the first time, I ran into some issues with missing libraries, but was able to resolve them by installing the necessary packages from the Linux terminal.

sudo dpkg --add-architecture i386
sudo apt update
sudo apt-get install libgl1-mesa-glx:i386

Well, that was pretty easy. Hope it works out for you. If not, I’d be interested to hear about your issues in the comments.

My $99 development Chromebook

This is inspired by Kenneth White’s $169 development Chromebook. This is mostly just some updates for 2019.

Last Black Friday, Wal-Mart had a Samsung Chromebook 3 for $99. It’s powered by a dual-core Intel Celeron with 4GB RAM, 16GB SSD, Bluetooth, 802.11n, SD card slot, two USB ports, webcam, and 10+ hours of battery runtime. I thought it would only be good for doing browser-based activities in CoderDojo, but it’s grown on me as a tablet replacement. Now, I’m hoping to even replace my notebook.

Following White’s advice, I made a Google account just for the device, but ultimately decided to go back to using my personal account because I wanted access to my Google Play purchases. But like White said, I can always Powerwash and use the device account when I travel to potentially hostile environments.

I changed my authentication to be through a hardware key (and Google Authenticator as a backup) which turns out to be very easy to use.

I’ve more or less gone with White’s guide in my build. In addition to his goals, I added a few:

  • Docker: I’m looking into this, but it looks like I might need a 32-bit x86 version to run under Termux.
  • ADB: I’m not even close to getting this working yet.

Some things to note:

  • It takes some getting used to Termux’s long-press on touchpad to copy/paste. There’s no CTRL+C/V options AFAIK.
  • If you store data in SD card, remember that it’s not encrypted by default.