<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title><![CDATA[Jake McCrary's articles on inspiration]]></title>
  <link href="https://jakemccrary.com/atom.xml" rel="self"/>
  <link href="https://jakemccrary.com/"/>
  <updated>2026-03-14T17:06:03+00:00</updated>
  <id>https://jakemccrary.com/</id>
  <author>
    <name><![CDATA[Jake McCrary]]></name>
  </author>
  <entry>
    <id>https://jakemccrary.com/blog/shipping-little-apps-anywhere-anytime/index.html</id>
    <link href="https://jakemccrary.com/blog/shipping-little-apps-anywhere-anytime/index.html"/>
    <title><![CDATA[Shipping little apps anywhere, anytime]]></title>
    <updated>2025-11-28T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<div><p>I&apos;m a big fan of making <a href="/blog/2020/10/03/go-create-silly-small-programs/">small (sometimes silly) programs</a>. As a software developer, you have a superpower: you can identify problems in your life and fix them by creating some specific software that solves for exactly what you need. When scoped small enough, creating these tiny programs takes minimal time investment.</p><p>When you develop the practice of recognizing when a bit of software would be helpful, you see opportunities all the time. But you don&apos;t control when you get inspiration for these programs. So you come up with strategies for handling these bursts of inspiration.</p><p>One strategy: Write yourself a note (paper, email to yourself, some app on your phone) and maybe get around to it later. (You occasionally manage to get around to it later.) Another strategy: Think about the inspiration and trick yourself into thinking you&apos;ll remember it later when you&apos;re at a computer. You justify this by claiming if you forget it, it must not have been important.</p><p>These workflows are fine but they leave a lot of room for never following up. With modern AI tools, we can do better.</p><p>My new strategy:</p><ol><li>Inspiration strikes!</li><li>I pull out my phone and open my web browser to <a href="https://openai.com/codex/">OpenAI&apos;s Codex web app</a>.</li><li>I translate my inspiration into a task and type (or voice-to-text) it into Codex.</li><li>I submit the task to Codex, go about my day, and check on it later.</li><li>Later: read the diff, click the Codex button to open a PR, merge the PR through GitHub&apos;s mobile interface, and let GitHub Actions deploy the changes to GitHub Pages.</li></ol><p>I started using this technique in early summer 2025. Since then, I&apos;ve been able to develop and iterate on a handful of single-page web applications this way. As models improve, it is getting even easier to knock them out. It works well for either making a new application or tweaking an existing one.</p><p>Here is my setup:</p><ul><li>I have a single repo named <a href="https://github.com/jakemcc/experiments">experiments</a><a href="#fn-1" id="fnref1"><sup>1</sup></a> on GitHub.</li><li>This repo has a subdirectory per application.</li><li>The applications are in a variety of web languages (HTML, CSS, TypeScript, JavaScript, ClojureScript).</li><li>OpenAI Codex is linked with this experiments repo.</li></ul><p>With this setup, I&apos;m able to follow the above strategy with minimal friction. If I have an idea for a new little application, I open Codex and provide a description of what I want and what it should be called, and it usually manages to start work on it. When I have an idea for tweaking an application, I open Codex, tell it what subdirectory the app is in and what tweak I want made. All of this can be done from a smartphone.</p><p>When Codex is done, I do a quick scan through the diff, click the buttons to open a PR, merge it, wait for the deploy, and then check on the deployed artifacts. The apps end up published at <a href="https://jake.in/experiments">jake.in/experiments</a>.</p><p>It isn&apos;t all smooth; sometimes a problem is introduced. Depending on the problem, I&apos;ll either revert the code and try again or give Codex more instructions and try to have it fix it. If really needed, I&apos;ll fire up my laptop and fix it myself or iterate with AI on fixing the problem there.</p><p>The bar has been seriously lowered for creating specific software. Go do it. It is fun, but in a different way than traditional programming.</p><ol class="footnotes"><li class="footnote" id="fn-1"><p>I don&apos;t know if this limitation still exists, but when I was initially setting this up my experiments repo had zero commits. This caused problems in Codex that were fixed by adding a single commit.<a href="#fnref1">↩</a></p></li></ol></div>]]></content>
  </entry>
  <entry>
    <id>https://jakemccrary.com/blog/2020/10/03/go-create-silly-small-programs/index.html</id>
    <link href="https://jakemccrary.com/blog/2020/10/03/go-create-silly-small-programs/index.html"/>
    <title><![CDATA[Go create silly, small programs]]></title>
    <updated>2020-10-03T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<div><p>Over the summer, I developed a couple of small, sort of silly programs. One, <a href="https://jakemccrary.com/experiments/photo-fit/">Photo Fit</a>, is a little tool that runs in a web browser and resizes photos to fit as your phone&apos;s background. The other, <a href="https://default-equipment.herokuapp.com/">Default Equipment</a>, runs on Heroku and automates changing the &quot;bike&quot; of my Strava-tracked e-bike rides to be my <a href="https://onewheel.com/">onewheel</a>.</p><p>These weren&apos;t created to solve large problems in the world. There is no plan to make any money with them. As of October 2020, Default Equipment doesn&apos;t even work for other people (though it could, send me a message if you&apos;d like to use it and I&apos;ll get around to it).</p><p>Each was created to fix a minor annoyance in my life and, because these tools can live on the Internet, they can fix the same minor annoyance in other lives.</p><p>With an increasing amount of software in the world, being able to write software is nearly sorcery<a href="#fn-1" id="fnref1"><sup>1</sup></a>. As a developer, you can identify a problem in the world and then change the world to remove that problem. And, depending on the problem, you can remove it for everyone else.</p><p>Software developers aren&apos;t alone in being able to identify problems and remove them through creation. Carpenters can build shelves for their books. Cooks can prepare food to remove hunger. You can come up with nearly an infinite number of other examples.</p><p>The difference is that a solo developer can solve problems for an unknown number of other folks. This is enabled by the Internet enabled ease of distribution. This is very powerful.</p><p>Developers can expose their solution to others through a web application. Desktop or mobile applications can be distributed through various app stores or made available as a download. Source code can be made available for others to run. Being able to distribute easily and cheaply is a game changer.</p><p>A developer&apos;s change to the world might be a minor improvement. Photo Fit might never be used by anyone besides me. But it is still out there, making the world slightly better. It is available for someone to stumble upon when they are also annoyed by the same problem.</p><p>It felt good to write these tiny, useful programs. If you scope them small enough, there is a definitive ending point<a href="#fn-2" id="fnref2"><sup>2</sup></a>. This lets you feel that finishing-a-project satisfaction quickly. The small size also allows you experiment with new techniques and tools without committing to a large and ongoing commitment.</p><p>I wrote both Photo Fit and Default Equipment in TypeScript. Before the beginning of summer, I didn&apos;t know TypeScript and had little exposure to Node.js. Now I have some experience with both and gained that while making small improvements to my life and potentially the lives of others.</p><p>If you haven&apos;t developed software to solve a small problem recently, I&apos;d recommend doing it. Don&apos;t hesitate to remove a problem that feels silly. Removing those problems can still make your life slightly better and gives you an opportunity to learn. It feels good to remove an annoyance from your life. If you can, make that software available to others so their lives are improved as well. Take advantage of the power of easy distribution to improve the world and not just your tiny slice of it.</p><ol class="footnotes"><li class="footnote" id="fn-1"><p>This is taken to an extreme in the fantasy series <a href="https://www.goodreads.com/series/131379-magic-2-0">Magic 2.0</a>.<a href="#fnref1">↩</a></p></li><li class="footnote" id="fn-2"><p>Excluding any ongoing maintenance. But if you&apos;re making something small enough you can approach near zero ongoing maintenance. One of my longest running solve-my-own-problems application, Book Robot, has been operating for nearly 7 years with minimal effort.<a href="#fnref2">↩</a></p></li></ol></div>]]></content>
  </entry>
</feed>
