{
    "archive_path": "archive/1792534000.896493",
    "base_url": "www.jamesgill.co/vibe-coding-trivialised",
    "basename": "",
    "bookmarked_date": "2026-10-20 22:06",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/www.jamesgill.co/vibe-coding-trivialised",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=www.jamesgill.co",
        "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.jamesgill.co/vibe-coding-trivialised/index.html"
    },
    "domain": "www.jamesgill.co",
    "extension": "",
    "hash": "GBGYYRY30N7BEV1KY91H",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--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.jamesgill.co"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-20T22:06:43.230363+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1792534000.896493",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T22:06:42.317834+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "120",
                    "--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.jamesgill.co/vibe-coding-trivialised/"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-20T22:06:43.669621+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1792534000.896493",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T22:06:43.243887+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://www.jamesgill.co/vibe-coding-trivialised/"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-10-20T22:06:51.498594+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1792534000.896493",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T22:06:48.537239+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmp4o2wi45d",
                    "https://www.jamesgill.co/vibe-coding-trivialised/"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-10-20T22:06:48.518886+00:00",
                "index_texts": [
                    "The phrase \u201cvibe coding\u201d has bothered me for some time.It\u2019s usually said with a smirk. Usually by experienced engineers.And that was appropriate for a while. 2024-25 were full of crypto-bro levels of fanfare fuelled by big egos building small apps in days.Most of that was hype was unwarranted.But we're in 2026 now. The slow boil has reached us.What is now possible with AI has evolved unimaginably.We've moved past \"vibes\", yet the term \u201cvibe coding\u201d has stuck.Empowerment isn't a \"vibe\"To many, the term implies that what\u2019s happening is casual. Loose. A founder waving at an LLM and hoping something compiles.But \u201cvibe\u201d massively undersells what\u2019s really going on.For someone like me \u2014 not an engineer by training \u2014 being able to build working software isn\u2019t about vibes. It\u2019s about empowerment, velocity, momentum. It\u2019s about user experience. It\u2019s about customers and satisfaction.Your product is a conversation with the market.I first heard this quote from Des Traynor on the Cheeky Pint podcast with John Collison and it\u2019s really stuck with me.For years, the path from idea to implementation looked something like this:Have an idea \u2192 explain it \u2192 write a spec \u2192 justify it \u2192 debate it \u2192 prioritise it \u2192 design it \u2192 refine it \u2192 debate it more \u2192 build it \u2192 test it \u2192 ship it \u2192 get feedback \u2192 repeat back to step 1.Every step added latency. Not just time \u2014 cognitive drag. Social drag. Justification drag.Not to mention, the very number of steps, the time consumed by passing through all these steps, and the very thought of even going through these steps, meant many ideas were never even attempted.It may sound harsh, but I've seen it in so many teams: engineering is where good ideas go to die.Now? If you're set up to embrace the world we're in, the journey is radically transformed:Idea \u2192 build \u2192 test \u2192 refine \u2192 ship \u2192 improve.And that is not a cycle that happens in months, weeks, or even days. It's a cycle that can happen in hours, if not minutes.Speed of iteration isn\u2019t a \"vibe\"Forgive me for linking to another Stripe founder, but I have long found Patrick Collison's \"Fast\" page immensely inspiring:\u00a0examples of people quickly accomplishing ambitious things together.Iteration speed is leverage.When building something new, the most valuable thing is rarely elegant code, a beautiful user interface, or following a set process or doing things in a certain way.It\u2019s really simple: all you really care about, to begin with, is whether the thing you are building is actually valuable.Does this flow make sense?Is this interaction clear?Does this feature solve the actual problem the user has?Before, for any product manager or designer or non-technical founder, exploring those questions meant being away from the product.Drawing, writing, designing. You would do a lot of work in places that were not the actual product. You would work in the abstract.Then, after that work was complete, another round of work would begin: you would need to persuade someone else to explore the proposal with you. It would require tightly aligned schedules, a shared set of values, shared appreciation of the customer, shared priorities, compromises. You'd need to align on whether your proposal even could be built. And that answer could often be at the whim of any engineer. And in many organisations, that answer is not always completely objective based on the pure difficult of the engineering effort involved.This whole process has now changed. The questions above can be answered directly.I don't say this to be disrespectful to great, professional engineers. Quite the opposite. But so few founders or PMs ever get to work with truly great engineers. Often they are held back by outsourced teams, or engineers over-worked and unable to spend the time required, or simply by those who are inexperienced or insufficiently passionate and motivated.Truly great engineers are needed more than ever, but the roles and responsibilities have changed. I don't see a split between product management, design, or front-end development any more.I don't need help validating small UI tweaks. Heck, I don't need help building the 1.0 of a piece of software.But that doesn't mean I don't need engineers. People like me desperately need help with the stuff that still sucks\u00a0\u2014 forward-thinking architecture decisions, industry-leading performance, robust security, pristine data migrations, and true scalability.The faster I can explore, the better the eventual product. And the best products are still a team effort.Empowered exploration: not a \"vibe\"For most of my career, if you weren\u2019t an engineer, your leverage was persuasion.You wrote PRDs.You created Figma files.You tried to be precise enough that someone else could execute your thinking.Something always got lost in translation.When I build something myself \u2014 even imperfectly \u2014 I\u2019m exploring with the product, not describing it.If your strength is empathy \u2014 if you spend your life talking to customers, using your own product, feeling friction, obsessing over tiny moments of confusion \u2014 the ability to implement directly isn\u2019t a \"vibe\". It\u2019s empowering, and it leads to fidelity.You reduce the distance between user pain and product change.Cutting out process theatre: not a vibeIn any team I have ever come across, there's some amount of theatre in software process.Tickets. Sprints. Point estimates. Triage. Backlogs. Retros. Standups. Agile. Jira. Velocity.These can all have their place. But so often, they are leant on as a sort of crutch of proof that \"we're functioning as well as we possibly can\".Sometimes that\u2019s rigour. Often it\u2019s friction disguised as rigour.The cost of trying something is dropping close to zero.You can assign actual work to robots in the sky.And you can try ten feature ideas in a single morning.I'm not saying you should have no process.I just think it might be worth rethinking some processes that were defined a decade ago.It\u2019s not anti-engineer. It\u2019s anti-latency.Great engineers are still invaluable. Possibly more than ever.But what\u2019s changed is who gets to initiate motion in the product itself.If you deeply understand the customer\u2026If you care about craft\u2026If you think structurally\u2026You can now build.Not perfectly. Not always beautifully. But meaningfully.With a wonderful team, I\u2019ve been building software for ~20 years now. For most of that time, my job was translating ideas into designs and persuading others to execute on them. That translation layer was necessary \u2014 and sometimes frustrating.What\u2019s changed isn\u2019t that I\u2019ve become an engineer.It\u2019s that the gap between empathy and execution has collapsed.Call it whatever you like.But it's so much more than a vibe."
                ],
                "output": "readability",
                "pwd": "/data/archive/1792534000.896493",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T22:06:46.414159+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--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.jamesgill.co/vibe-coding-trivialised/"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-20T22:06:46.405482+00:00",
                "index_texts": null,
                "output": "\u201cVibe coding\u201d is a category error",
                "pwd": "/data/archive/1792534000.896493",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T22:06:46.386775+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--reject=js,mjs,woff,woff2,ttf,otf,eot,mp4,m4v,mov,webm,ogv,mkv,avi,flv",
                    "--timeout=120",
                    "--restrict-file-names=windows",
                    "--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",
                    "--timestamping",
                    "https://www.jamesgill.co/vibe-coding-trivialised/"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-10-20T22:06:46.375333+00:00",
                "index_texts": null,
                "output": "www.jamesgill.co/vibe-coding-trivialised/index.html",
                "pwd": "/data/archive/1792534000.896493",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T22:06:43.680522+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": "\u201cVibe coding\u201d is a category error",
        "warc": null,
        "wget": "www.jamesgill.co/vibe-coding-trivialised/index.html"
    },
    "link_dir": "/data/archive/1792534000.896493",
    "newest_archive_date": "2026-10-20T22:06:48.537239+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-10-20T22:06:42.317834+00:00",
    "path": "/vibe-coding-trivialised/",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "2cecda27-86a0-4a51-a234-4cbf8ca6b7c6",
    "sources": [
        "/data/sources/1792534000-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1792534000.896493",
    "title": "\u201cVibe coding\u201d is a category error",
    "updated": "2026-10-20T22:06:42.315806+00:00",
    "updated_date": "2026-10-20 22:06",
    "url": "https://www.jamesgill.co/vibe-coding-trivialised/"
}