{
    "archive_path": "archive/1787686101.586901",
    "base_url": "www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand",
    "basename": "",
    "bookmarked_date": "2026-08-25 19:28",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=www.autodidacts.io",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": "www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/index.html"
    },
    "domain": "www.autodidacts.io",
    "extension": "",
    "hash": "1D3KZR3KZMJD4SK2GR8M",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "60",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.google.com/s2/favicons?domain=www.autodidacts.io"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-08-25T19:31:55.525317+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1787686101.586901",
                "schema": "ArchiveResult",
                "start_ts": "2026-08-25T19:31:54.982520+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-08-25T19:31:55.936671+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1787686101.586901",
                "schema": "ArchiveResult",
                "start_ts": "2026-08-25T19:31:55.531144+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-08-25T19:32:06.397936+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1787686101.586901",
                "schema": "ArchiveResult",
                "start_ts": "2026-08-25T19:32:03.981789+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmpo6zyycti",
                    "https://www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-08-25T19:32:03.974497+00:00",
                "index_texts": [
                    "I like building things: it makes me happy. Learning and discovering things is a close second, but building is more satisfactory.\nSince I\u2019m not that good at actually, you know, building things, the thrill of \u201cbuilding\u201d, in my case, has mostly come from writing software. Software is one of the easiest ways to create something satisfyingly useful out of nothing.\nFor a long time I\u2019ve known, at some level, how much joy building gives me. [1] But it really sunk in while working on two recent hobby software projects. They were both dumb little Python scrapers that I cobbled together, that did something useful that I\u2019d wanted for a long time. (Link, link.) They were pretty basic, but gave me so much irrational pleasure. It was the most fun I\u2019d had programming in years. [2]\nThen, [cue Jaws theme song] AI came along.\nLike pretty much everyone else, I\u2019ve been cautiously experimenting with AI-assisted coding. We are past the point where we can easily dismiss AI as \u201cstupid\u201d (though it is), or \u201cdoesn\u2019t actually make me more productive\u201d. So, in classic motte and bailey fashion, I am retreating, while pretending not to: AI coding is less fun.\nThis seems counter-intuitive, because vibecoding is absolutely thrilling \u2026 AT FIRST.\nRefactoring vibecoded software? Not thrilling.\nI\u2019m not going to claim, as some do, that vibecoding doesn\u2019t give the thrill of actually building something. Because it does, partly.\nI think that one of the things that\u2019s driving the adoption of vibecoding is that it frontloads the fun, at both the project- and career level.\n\n\nThe Vibecoding Thrill Curve\n\nIf I have an idea, I can usually get a working prototype very quickly, with very little effort. Instant dopamine!\nSimilarly, someone with no coding experience can \u201ccode\u201d an app, and it will probably work. Instant dopamine!\nI have a personal policy against frontloading the fun. So, I don\u2019t like this, just like I don\u2019t like getting paid for work I haven\u2019t done, going into debt, and arrangements where someone else does my work today in trade for me doing their work tomorrow.\nI posit that there are several distinct sources of thrill/satisfaction when building something:\n\nThe thrill of the idea\nThe thrill of making the idea real\nThe satisfaction of hard-won accomplishment\nThe satisfaction of a job well done\nThe thrill of learning\nThe satisfaction making something that solves a problem you have\n\nVibecoding, in general, can give you 1, 2, and 6. But 3, 4, and 5 are not natural consequence of vibecoding.\nIn tenuous defense of vibecoding:\nI can, and have, built things with AI that I either never could have, or never would have, built otherwise. Mostly, it\u2019s cases where it would not be worth me spending weeks building it by hand, but if I can build it in minutes or days, it is worth it.\n\n\nI one-shotted a has-this-already-been-submitted-to-hackernews bookmarklet (HN?), based on Taylor Troesh\u2019s Discuss on HN snippet. It gave me significant satisfaction, solved a problem I had, I use it regularly on my Wallabag favourites page.\n\n\nIn very little time, I vibecoded \u201cParty Market\u201d, a prediction market simulator party game to go along with a flash lecture on prediction markets, and ran a market on \u201chow long will I drone on for\u201d, live, during my lecture. It turned a dry and boring lecture into grade-A entertainment. The code was garbage and it was full of bugs, but I never could have done it writing it by hand in that amount of time. It wasn\u2019t a choice between doing it with AI and doing it by hand: it was a choice between doing it with AI and not doing it at all.\n\n\nWhen a fire chief I know was going to invest way too much money in an \u201cAI appliance\u201d that didn\u2019t even say which Nvidia card it had, or what model/generation of Xeon it was, I vibecoded with free plan Lumo, in two afternoon sessions, a functional Pyronear based Wildfire Early Warning System that ran in realtime on a live feed on my laptop, and was able to detect the first frame of smoke on the ignition footage I fed it.\n\n\nI built a browser-based Kobo database migration assistant (link), so that people unfamiliar with SQLite can move their books and annotations to a new device.\n\n\nWhen a singing lesson with my vocal coach fell through, I built the realtime pitch training app I\u2019ve always wanted \u2014 and have planned to build for about a decade.\n\n\nIn most of these cases, I was immensely pleased with the results, but the process wasn\u2019t fun the way writing my dumb little scrapers was fun. Of course, handwritten software development isn\u2019t always fun. My first Golang project was, for large sections of time, with a deadline, certified Not Fun\u2122. Fighting the Rust compiler the first time I tried to write, like, twenty lines of Rust code was Not Fun\u2122. But it was, in the long run, Type II fun, because it gave me the sense of accomplishment, and the glorious I did it! feeling (And, next time, it would be easier.)\nI\u2019ve tried everything from local models running in llama-server, to copy-and-pasting from free, no sign-up services (Phind, Lumo, etc) for one-shot scripts, to full on remote server Clod Masterpiece 200\u2122 all-you-can-eat plan with custom-written auto-approval hooks that were worryingly close to \u2013dangerously-skip-permissions, developing algorithmic trading models.\nIt\u2019s all the same: it\u2019s \u201cproductive\u201d, but I don\u2019t like the way it makes me feel, and I don\u2019t like the quality of the output. It manages to make me feel dumb and superfluous (and, sometimes, dirty for even using it), without earning my respect.\nThe word \u201cdopamine\u201d made me think: vibecoding is a bit like a series of first dates or one night stands. You don\u2019t develop a relationship with the project: you don\u2019t get the same kind of warm fuzzies, oxytocin, attachment. The problem with a dopamine-only life is that thrills become dull with repetition.\nAnother way to look at it: vibecoding introduces a layer between you and reality. I am the kind of person that thinks, in general, reality is more fun when experienced first-hand.\nVibecoding is like being an executive of a large company that is barely under your control. You never feel like you really know what\u2019s going on, and there\u2019s always the suspicion of sabotage and loafing. Things appear fully formed, but not quite how you imagined. Sometimes they work, and sometimes they don\u2019t, and there\u2019s nothing you can do about it, other than pouring more money into the black box, and yelling louder. So that\u2019s what you do. \nThis essay was outlined in blue ink by candlelight. AI wasn\u2019t even allowed to correct my typos: savour them.\n\n\n\nAs a kid, I wanted to be an inventor, which neatly combines building and discovery. Writing and songwriting, my other main activities, are also forms of building that, like software, require mercifully little contact with physical reality and other humans. \u21a9\ufe0e\n\nI\u2019d mostly been writing shell scripts, and Bash is not known for being fun. \u21a9\ufe0e"
                ],
                "output": "readability",
                "pwd": "/data/archive/1787686101.586901",
                "schema": "ArchiveResult",
                "start_ts": "2026-08-25T19:32:02.118347+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-08-25T19:32:02.114056+00:00",
                "index_texts": null,
                "output": "Vibecoding isn't as fun as writing code by hand\u00a0\u2014 The Autodidacts",
                "pwd": "/data/archive/1787686101.586901",
                "schema": "ArchiveResult",
                "start_ts": "2026-08-25T19:32:02.101586+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--backup-converted",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--timeout=60",
                    "--restrict-file-names=windows",
                    "--warc-file=/data/archive/1787686101.586901/warc/1787686315",
                    "--page-requisites",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) wget/GNU Wget 1.21.3",
                    "--compression=auto",
                    "https://www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-08-25T19:32:02.096034+00:00",
                "index_texts": null,
                "output": "www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/index.html",
                "pwd": "/data/archive/1787686101.586901",
                "schema": "ArchiveResult",
                "start_ts": "2026-08-25T19:31:55.943532+00:00",
                "status": "succeeded"
            }
        ]
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": null,
        "dom": null,
        "favicon": "favicon.ico",
        "git": null,
        "media": null,
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "Vibecoding isn't as fun as writing code by hand\u00a0\u2014 The Autodidacts",
        "warc": null,
        "wget": "www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/index.html"
    },
    "link_dir": "/data/archive/1787686101.586901",
    "newest_archive_date": "2026-08-25T19:32:03.981789+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-08-25T19:31:54.982520+00:00",
    "path": "/vibecoding-isnt-as-fun-as-writing-code-by-hand/",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "b45b6248-68f7-4c32-9f22-c10cc9fa8991",
    "sources": [
        "/data/sources/1787686101-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1787686101.586901",
    "title": "Vibecoding isn't as fun as writing code by hand\u00a0\u2014 The Autodidacts",
    "updated": "2026-08-25T19:31:54.981876+00:00",
    "updated_date": "2026-08-25 19:31",
    "url": "https://www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/"
}