{"componentChunkName":"component---src-templates-article-js","path":"/articles/the-phases-of-craftship/the-5-phases/","result":{"data":{"post":{"id":"e64be7bc-da91-56c7-b122-75fcfb6a18e2","html":"<p>Two developers had calls with me recently.</p>\n<p>One is two and a half years in, bootcamp grad, working in a messy codebase, terrified he's falling behind and AI is going to finish the job. The other just shaved milliseconds off a request path at scale — worth millions a year — and is now dealing with colleagues who've started to resent how good he's gotten.</p>\n<p>Same industry. Same AI tools available to both of them. Completely different years.</p>\n<h2 id=\"Whats-the-core-problem\" style=\"position:relative;\">What's the core problem?<a href=\"#Whats-the-core-problem\" aria-label=\"Whats the core problem permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>The advice out there is split, and it's split because the developers are split.</p>\n<p>Half the internet is telling you AI is coming for your job. The other half is telling you to stop worrying and start building. Both groups are right — just not about the same person.</p>\n<h2 id=\"Whats-actually-true\" style=\"position:relative;\">What's actually true?<a href=\"#Whats-actually-true\" aria-label=\"Whats actually true permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>It depends entirely on where you're at.</p>\n<p>Not in a vague, \"everyone's on their own journey\" way. Literally — there are 5 phases developers move through, and the correct advice for someone in phase one is often the opposite of the correct advice for someone in phase five.</p>\n<h2 id=\"The-5-Phases-of-Craftship\" style=\"position:relative;\">The 5 Phases of Craftship<a href=\"#The-5-Phases-of-Craftship\" aria-label=\"The 5 Phases of Craftship permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<ol>\n<li><strong>Code-First</strong> — \"How do I make this work?\" You think in implementations. Every developer starts here.</li>\n<li><strong>Best Practice-First</strong> — \"How do I make this easy to change?\" You start designing through contracts, testable architecture, feedback loops.</li>\n<li><strong>Pattern-First</strong> — \"What is the true shape of this problem?\" You stop modeling structure and start modeling time — events, reactions, triggers in addition to understanding the way the business works.</li>\n<li><strong>Responsibility-First</strong> — \"Who should own this responsibility?\" Ownership replaces structure at every level — objects, services, teams, orgs. </li>\n<li><strong>Value-First</strong> — \"What creates the most value with the least complexity?\" Code becomes one tool among many. You become the business.</li>\n</ol>\n<p>Here's the thing though: <strong>the majority of the industry is stuck somewhere between Code-First and Best Practice-First.</strong></p>\n<p>And AI is <em>already</em> a master of Code-First.</p>\n<p><img src=\"/img/blog/5-phases/5-phases-ip.png\" alt=\"The 5 Phases of Craftship\"></p>\n<h2 id=\"The-core-problem-for-Code-First-developers-architectural-judgment\" style=\"position:relative;\">The core problem for Code-First developers: architectural judgment<a href=\"#The-core-problem-for-Code-First-developers-architectural-judgment\" aria-label=\"The core problem for Code First developers architectural judgment permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>\"It feels weird but I can't explain why.\"</p>\n<p>That's what a developer who joined <a href=\"https://tally.so/r/rjYOAp\">The Software Essentialist Mentorship Group</a> told me, describing some context/provider state management in her app. She wasn't guessing. She could <em>sense</em> it — that specific, uncomfortable feeling of something being off that every experienced developer knows.</p>\n<p>Here's the thing: she isn't junior. Her team lead comes to her with hard problems. She can solve those problems, but when asked <em>why</em> that particular approach was done that way, she goes quiet.</p>\n<p>What she's missing is the vocabulary to defend decisions she's already made correctly.</p>\n<p>I call this <strong>the Capable Outsider</strong>. It's one of the most common shadows of the Code-First phase — and it's exactly what \"architectural judgment\" means when it's missing.</p>\n<h2 id=\"As-you-move-through-the-phases-you-integrate-increasingly-powerful-archetypes\" style=\"position:relative;\">As you move through the phases, you integrate increasingly powerful archetypes<a href=\"#As-you-move-through-the-phases-you-integrate-increasingly-powerful-archetypes\" aria-label=\"As you move through the phases you integrate increasingly powerful archetypes permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>Here's what's actually happening underneath all this. As you move through the phases, you're integrating specific archetypes at each one.</p>\n<p>At Best Practice-First, you start integrating <strong>the Clarifier</strong> — someone who gets clear on requirements and expected behavior before touching implementation — and <strong>the Feedback Loop Engineer</strong>, obsessed with shortening the gap between decision and consequence.</p>\n<p>At Pattern-First, you integrate <strong>the Event Thinker</strong> and <strong>the Cartographer</strong> — developers who map the shape of a domain before writing a line of code.</p>\n<p>Keep climbing and you eventually integrate <strong>the Systems Engineer</strong>, <strong>the Solution Architect</strong>, and — at the top — <strong>the Essentialist</strong>: someone who removes complexity instead of adding it, who asks \"what can we eliminate?\" before \"what should we build?\"</p>\n<p>And every one of these has a shadow side that has to be managed, not just outgrown. The Clarifier's shadow is <strong>the Pattern Collector</strong> — applying design patterns by name without being able to reason about why. The Essentialist's shadow is <strong>the Business Tourist</strong> — speaking the language of value without genuinely understanding how the software creates it. Growth isn't leaving the shadow behind for good. It's learning to catch yourself sliding back into it.</p>\n<h2 id=\"The-solution-integrate-through-the-phases\" style=\"position:relative;\">The solution: integrate through the phases<a href=\"#The-solution-integrate-through-the-phases\" aria-label=\"The solution integrate through the phases permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>So the solution isn't \"learn more.\" It's integrate, one phase at a time, in order. You cannot skip Best Practice-First and land in Pattern-First. Judgment develops through encounter — you hit the wall, it humbles you, you integrate the capability, you move forward with a scar that's actually a map.</p>\n<p>As you do this, you end up learning what I call <strong>the 12 essentials</strong> — the small set of principles that stay true regardless of stack. Every single problem you'll ever hit in a codebase traces back to one of these 12 not being respected. Doesn't matter if it's DDD, TDD, BDD, CI, deployment pipelines. They're closer to universal laws than best practices.</p>\n<h2 id=\"Why-fundamentals-matter-more-than-ever-the-Mirror-Principle\" style=\"position:relative;\">Why fundamentals matter more than ever: the Mirror Principle<a href=\"#Why-fundamentals-matter-more-than-ever-the-Mirror-Principle\" aria-label=\"Why fundamentals matter more than ever the Mirror Principle permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>Here's the part that explains everything else in this article.</p>\n<p>Inside mirrors outside. Whatever capability you've actually integrated is the frame you solve problems from — and AI just gives that frame more horsepower. I call this <strong>the Mirror Principle</strong>.</p>\n<p>If you're Code-First and you hand your work to AI, you don't get better work. You get more of the same mess, produced faster. The gaps you have get amplified, not fixed.</p>\n<p>If you're Value-First, the mirror works the other way — you become exponentially more powerful, because the judgment guiding the AI is already sound.</p>\n<p>Two stories that show exactly what this looks like at the top:</p>\n<p>One of my graduates showed up to a team that was building something creating zero business value, said so, and shipped the actual fix over a weekend. The team he was on effectively made itself redundant — not because he set out to eliminate anyone, but because once you can see what's actually valuable, you can't unsee it, and the byproduct is that busywork stops having a place to hide.</p>\n<p>Another graduate got so fast that completing upwards of — I think it was, 20+ tickets in a day — started making other people on his team uncomfortable. His actual work now isn't more tickets. It's reading <em>Crucial Conversations</em> and deliberately slowing down so the people around him don't feel threatened.</p>\n<p>Same phase. Same capability. Two completely different problems to manage.</p>\n<h2 id=\"The-advice-is-different-depending-on-your-stage\" style=\"position:relative;\">The advice is different depending on your stage<a href=\"#The-advice-is-different-depending-on-your-stage\" aria-label=\"The advice is different depending on your stage permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>This is why I can't give one piece of advice that applies to everyone reading this. Fay's essay on agentic coding, Cal Newport's junior-year-wall analogy, \"just use AI more,\" \"just stop using AI\" — all of it is written for a specific phase, and it'll actively mislead you if you're not in that phase.</p>\n<h2 id=\"Where-are-you-Start-here\" style=\"position:relative;\">Where are you? Start here<a href=\"#Where-are-you-Start-here\" aria-label=\"Where are you Start here permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>Take the <a href=\"https://khalilstemmler.com/phases-quiz\">Phases of Craftship quiz</a> — 7 questions, personalized results. I'm also building a more in-depth archetype quiz that goes phase by phase into which specific archetype you're integrating (and which shadow you're managing) — that'll be live soon.</p>\n<h2 id=\"If-youre-Code-First-or-Best-Practice-First\" style=\"position:relative;\">If you're Code-First or Best Practice-First<a href=\"#If-youre-Code-First-or-Best-Practice-First\" aria-label=\"If youre Code First or Best Practice First permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>Your job right now is to catch up, deliberately and fast. The gap is closeable while it's still small — it gets more expensive to close every month you wait. <a href=\"https://www.essentialist.dev/the-software-essentialist\">The Software Essentialist</a> is where I teach this end to end, or <a href=\"https://tally.so/r/rjYOAp\">book a call with me</a> and we'll figure out exactly what to focus on first.</p>\n<h2 id=\"If-youre-Value-First\" style=\"position:relative;\">If you're Value-First<a href=\"#If-youre-Value-First\" aria-label=\"If youre Value First permalink\" class=\"link-icon after\"><svg aria-hidden=\"true\" height=\"20\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"20\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>Your problem is a completely different one. It's rarely technical anymore. It's personal development — learning to slow down, building the confidence to pitch what you know, figuring out how to build your own thing instead of just being excellent inside someone else's. A lot of the developers at this stage end up building their own SaaS or service business.</p>\n<p>If that's you, this is exactly the work we do inside <a href=\"https://tally.so/r/mDqK55\">the Abstractionist Mastermind</a>.</p>\n<p>And as always,\nTo Mastery</p>\n<p>Khalil</p>","fields":{"slug":"/articles/the-phases-of-craftship/the-5-phases/","readingTime":{"text":"7 min read"}},"headings":[{"depth":2,"id":"Whats-the-core-problem","value":"What's the core problem?"},{"depth":2,"id":"Whats-actually-true","value":"What's actually true?"},{"depth":2,"id":"The-5-Phases-of-Craftship","value":"The 5 Phases of Craftship"},{"depth":2,"id":"The-core-problem-for-Code-First-developers-architectural-judgment","value":"The core problem for Code-First developers: architectural judgment"},{"depth":2,"id":"As-you-move-through-the-phases-you-integrate-increasingly-powerful-archetypes","value":"As you move through the phases, you integrate increasingly powerful archetypes"},{"depth":2,"id":"The-solution-integrate-through-the-phases","value":"The solution: integrate through the phases"},{"depth":2,"id":"Why-fundamentals-matter-more-than-ever-the-Mirror-Principle","value":"Why fundamentals matter more than ever: the Mirror Principle"},{"depth":2,"id":"The-advice-is-different-depending-on-your-stage","value":"The advice is different depending on your stage"},{"depth":2,"id":"Where-are-you-Start-here","value":"Where are you? Start here"},{"depth":2,"id":"If-youre-Code-First-or-Best-Practice-First","value":"If you're Code-First or Best Practice-First"},{"depth":2,"id":"If-youre-Value-First","value":"If you're Value-First"}],"frontmatter":{"seriesId":null,"date":"2026-07-16T00:00:00-04:00","updated":"2026-07-16T00:00:00-04:00","title":"The 5 Phases of Craftship (Why AI Amplifies Wherever You Already Are)","templateKey":"article","description":"Two developers, same AI, opposite years — one terrified he's falling behind, the other having his best year yet. The difference isn't talent. It's which of the 5 Phases of Craftship they're in, and why AI amplifies whatever capability you've already built instead of replacing it.","tags":["The Phases of Craftship","The Metaphysics","AI","Code-First","Value-First"],"image":"/img/blog/5-phases/5-phases-ip.png","category":"The Phases of Craftship","anchormessage":null,"withInlineTableOfContents":null}},"allTableOfContents":{"edges":[{"node":{"internal":{"content":"{\n  \"seriesId\": \"client-side-architecture-basics\",\n  \"tableOfContents\": [\n    {\n      \"pageId\": \"introduction\",\n      \"name\": \"Welcome\",\n      \"slug\": \"/articles/client-side-architecture/introduction\"\n    },\n    {\n      \"pageId\": \"architecture\",\n      \"name\": \"I. Architecture\",\n      \"slug\": \"/articles/client-side-architecture/architecture\",\n      \"description\": \"Understanding what we need from a client-side architecture.\",\n      \"anchors\": [\n        {\n          \"id\": \"We-need-a-shared-language-to-talk-about-client-side-architecture\",\n          \"name\": \"Shared language\"\n        },\n        {\n          \"id\": \"Client-side-needs--testability-flexibility-and-maintainability\",\n          \"name\": \"Client-side needs\"\n        }\n      ]\n    },\n    {\n      \"pageId\": \"principles\",\n      \"name\": \"II. Principles\",\n      \"slug\": \"/articles/client-side-architecture/principles\",\n      \"description\": \"Influential design principles that we'll use as the philosophy for our design.\"\n    },\n    {\n      \"pageId\": \"layers\",\n      \"name\": \"III. Layers\",\n      \"slug\": \"/articles/client-side-architecture/layers\",\n      \"description\": \"Understanding the layers/concerns and their responsibilities in a client-side application.\",\n      \"anchors\": [\n        { \n          \"id\": \"Presentation-components\", \n          \"name\": \"Presentation components\"\n        },\n        { \n          \"id\": \"UI-logic\", \n          \"name\": \"UI logic\"\n        },\n        { \n          \"id\": \"Containercontroller\", \n          \"name\": \"Container/controller components\"\n        },\n        { \n          \"id\": \"Interaction-layer\", \n          \"name\": \"Interaction layer\"\n        },\n        { \n          \"id\": \"-Networking--data-fetching-infrastructure\", \n          \"name\": \"Networking & data fetching\"\n        }\n      ]\n    },\n    {\n      \"pageId\": \"conclusion\",\n      \"name\": \"IV. Conclusion\",\n      \"slug\": \"/articles/client-side-architecture/conclusion\",\n      \"description\": \"Let's recap and discuss next steps.\"\n    }\n  ]\n}\n"}}},{"node":{"internal":{"content":"{\n  \"seriesId\": \"solid-principles\",\n  \"tableOfContents\": [\n    {\n      \"name\": null,\n      \"pageId\": \"solid-typescript\",\n      \"slug\": null,\n      \"anchors\": [\n        {\n          \"id\": \"S-Single-Responsibilty-Principle\",\n          \"name\": \"Single Responsibility Principle\"\n        },\n        {\n          \"id\": \"Open-Closed-Principle\",\n          \"name\": \"Open-Closed Principle\"\n        },\n        {\n          \"id\": \"Liskov-Substition-Principle\",\n          \"name\": \"Liskov Substitution Principle\"\n        },\n        {\n          \"id\": \"Interface-Segregation-Principle\",\n          \"name\": \"Interface Segregation Principle\"\n        },\n        {\n          \"id\": \"Dependency-Inversion-Principle\",\n          \"name\": \"Dependency Inversion Principle\"\n        }\n      ]\n    }\n  ]\n}"}}}]}},"pageContext":{"id":"e64be7bc-da91-56c7-b122-75fcfb6a18e2","slug":"/articles/the-phases-of-craftship/the-5-phases/"}}}