<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://frankchiarulli.com/blog/</id>
    <title>The Personal Blog of Frank Chiarulli Jr.</title>
    <updated>2026-06-30T09:56:26.971Z</updated>
    <generator>Feed for Node.js</generator>
    <author>
        <name>Frank Chiarulli Jr.</name>
        <email>frank@frankchiarulli.com</email>
        <uri>https://frankchiarulli.com/blog/</uri>
    </author>
    <link rel="alternate" href="https://frankchiarulli.com/blog/"/>
    <link rel="self" href="https://frankchiarulli.com/blog/atom.xml"/>
    <subtitle>A blog by Frank Chiarulli Jr.</subtitle>
    <logo>https://github.com/fcjr.png</logo>
    <icon>https://frankchiarulli.com/blog//icon.png</icon>
    <entry>
        <title type="html"><![CDATA[Running a Virtual Machine on a Cloud Box That Can't Run Virtual Machines]]></title>
        <id>https://frankchiarulli.com/blog/nix-pvm/</id>
        <link href="https://frankchiarulli.com/blog/nix-pvm/"/>
        <updated>2026-06-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Cheap cloud servers can't run real VMs. Here's why, and how I got them to anyway.]]></summary>
    </entry>
    <entry>
        <title type="html"><![CDATA[I Shipped a Native macOS App in a Day]]></title>
        <id>https://frankchiarulli.com/blog/vibe-shift/</id>
        <link href="https://frankchiarulli.com/blog/vibe-shift/"/>
        <updated>2026-02-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Making polished, shippable desktop apps for yourself has never been easier.]]></summary>
    </entry>
    <entry>
        <title type="html"><![CDATA[ShiftAPI: Full-Stack Type Safety from Go]]></title>
        <id>https://frankchiarulli.com/blog/shiftapi/</id>
        <link href="https://frankchiarulli.com/blog/shiftapi/"/>
        <updated>2026-02-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[I've been craving full-stack type safety from Go for years. So I built it.]]></summary>
    </entry>
    <entry>
        <title type="html"><![CDATA[SMLL: Using 200MB of Neural Network to Save 400 Bytes]]></title>
        <id>https://frankchiarulli.com/blog/smll/</id>
        <link href="https://frankchiarulli.com/blog/smll/"/>
        <updated>2026-02-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We compressed Jane Austen to 10 bytes. The model weights required to decompress it are 200 megabytes.]]></summary>
    </entry>
    <entry>
        <title type="html"><![CDATA[RCade: Building a Community Arcade Cabinet]]></title>
        <id>https://frankchiarulli.com/blog/building-the-rcade/</id>
        <link href="https://frankchiarulli.com/blog/building-the-rcade/"/>
        <updated>2026-02-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A custom arcade cabinet that runs games made by the Recurse Center community.]]></summary>
    </entry>
    <entry>
        <title type="html"><![CDATA[I Signed the No Phone Home Pledge, You Should Too]]></title>
        <id>https://frankchiarulli.com/blog/no-phone-home/</id>
        <link href="https://frankchiarulli.com/blog/no-phone-home/"/>
        <updated>2025-07-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Digital identity systems shouldn't enable surveillance by default.]]></summary>
    </entry>
    <entry>
        <title type="html"><![CDATA[Quitting Comfort: I'm attending Recurse]]></title>
        <id>https://frankchiarulli.com/blog/attending-recurse/</id>
        <link href="https://frankchiarulli.com/blog/attending-recurse/"/>
        <updated>2025-06-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[I'm betting on myself.]]></summary>
    </entry>
</feed>