[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"header-categories":3,"post-ai-powered-development-llms-effectively":73,"parsed-post-b4bcf3b7-77e9-492c-9ca1-6001c38d9999":143},{"success":4,"data":5},true,{"items":6,"pagination":70},[7,16,24,32,40,48,56,63],{"id":8,"name":9,"description":10,"parentId":11,"createdAt":12,"updatedAt":12,"parent":11,"children":13,"_count":14},"ai-future","AI & The Future","Artificial intelligence and emerging technology",null,"2026-07-24T06:02:45.990Z",[],{"posts":15},1,{"id":17,"name":18,"description":19,"parentId":11,"createdAt":20,"updatedAt":20,"parent":11,"children":21,"_count":22},"tools-productivity","Tools & Productivity","Developer tools and workflow optimization","2026-07-24T06:02:45.712Z",[],{"posts":23},7,{"id":25,"name":26,"description":27,"parentId":11,"createdAt":28,"updatedAt":28,"parent":11,"children":29,"_count":30},"career","Career & Growth","Professional development for developers","2026-07-24T06:02:45.486Z",[],{"posts":31},3,{"id":33,"name":34,"description":35,"parentId":11,"createdAt":36,"updatedAt":36,"parent":11,"children":37,"_count":38},"opinion","Opinion & Analysis","Industry analysis and technical opinions","2026-07-24T06:02:45.272Z",[],{"posts":39},6,{"id":41,"name":42,"description":43,"parentId":11,"createdAt":44,"updatedAt":44,"parent":11,"children":45,"_count":46},"tutorials","Tutorials","Step-by-step learning guides","2026-07-24T06:02:44.965Z",[],{"posts":47},21,{"id":49,"name":50,"description":51,"parentId":11,"createdAt":52,"updatedAt":52,"parent":11,"children":53,"_count":54},"software-engineering","Software Engineering","Best practices, patterns, and principles","2026-07-24T06:02:44.689Z",[],{"posts":55},24,{"id":57,"name":58,"description":59,"parentId":11,"createdAt":60,"updatedAt":60,"parent":11,"children":61,"_count":62},"devops-cloud","DevOps & Cloud","Infrastructure, deployment, and cloud computing","2026-07-24T06:02:44.453Z",[],{"posts":39},{"id":64,"name":65,"description":66,"parentId":11,"createdAt":67,"updatedAt":67,"parent":11,"children":68,"_count":69},"web-development","Web Development","Frontend and backend web development tutorials and guides","2026-07-24T06:02:44.169Z",[],{"posts":55},{"page":15,"limit":71,"total":71,"totalPages":15,"hasNext":72,"hasPrev":72},8,false,{"success":4,"data":74},{"id":75,"slug":76,"title":77,"excerpt":78,"content":79,"status":80,"visibility":81,"featuredImage":82,"canonicalUrl":11,"readingTime":83,"viewCount":84,"commentEnabled":4,"publishedAt":85,"scheduledAt":11,"createdAt":86,"updatedAt":87,"seoTitle":88,"seoDescription":78,"seoKeywords":11,"authorId":89,"author":90,"coAuthors":95,"tags":96,"categories":107,"comments":110,"_count":111,"relatedPosts":113},"b4bcf3b7-77e9-492c-9ca1-6001c38d9999","ai-powered-development-llms-effectively","AI-Powered Development: Using LLMs Effectively as a Developer","A pragmatic guide to integrating AI tools into your development workflow without sacrificing code quality or understanding.","## AI Is a Tool, Not a Replacement\n\nLLMs are incredibly powerful for development — when used correctly. The key is knowing where they excel and where they'll lead you astray.\n\n## Where AI Excels\n\n1. **Boilerplate generation** — CRUD endpoints, test scaffolding, type definitions\n2. **Code translation** — Converting between languages or frameworks\n3. **Documentation** — Generating JSDoc, README sections, API docs\n4. **Exploration** — \"Show me 3 approaches to implement X\"\n5. **Debugging** — \"Why might this produce a race condition?\"\n\n## Where AI Struggles\n\n1. **Novel architecture decisions** — It optimizes for common patterns\n2. **Business logic** — It doesn't know your domain\n3. **Security** — It may suggest insecure patterns that \"work\"\n4. **Performance** — It writes correct but not necessarily optimal code\n5. **Consistency** — It doesn't remember your project conventions\n\n## Effective Prompting Patterns\n\n```\n\u002F\u002F Instead of: \"Write a user authentication system\"\n\u002F\u002F Be specific:\n\n\"Write a Nuxt 3 server middleware that:\n- Reads a JWT from the Authorization header\n- Verifies it using jose library\n- Attaches the decoded user to event.context.user\n- Returns 401 for missing\u002Finvalid tokens\n- Skips auth for routes matching \u002Fapi\u002Fpublic\u002F**\n\nUse TypeScript, handle edge cases, include error types.\"\n```\n\n::callout{icon=\"i-lucide-brain\" color=\"primary\"}\nThe better your prompt describes constraints, error cases, and existing patterns, the better the output. Treat it like writing a detailed ticket for a developer.\n::\n\n## The Review-Everything Rule\n\nNever commit AI-generated code without:\n\n1. **Reading every line** — Understand what it does\n2. **Testing edge cases** — AI often misses boundaries\n3. **Checking security** — Look for hardcoded values, missing validation\n4. **Verifying dependencies** — It may suggest packages that don't exist\n5. **Matching conventions** — Adapt to your project's style\n\n## My Workflow\n\n1. **Think first** — Design the solution mentally\n2. **Generate scaffold** — Use AI for the boring parts\n3. **Review and adapt** — Make it fit your project\n4. **Test thoroughly** — AI doesn't run your tests\n5. **Refactor** — Clean up to your standards\n\n## The Learning Trap\n\nIf you can't write the code without AI, you don't understand it well enough to maintain it. Use AI to accelerate, not to skip learning.\n\nAI makes good developers faster. It doesn't make non-developers into developers.\n","published","public","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1504639725590-34d0984388bd?w=1200&q=80",9,259,"2026-06-15T06:03:33.036Z","2026-07-24T06:03:33.039Z","2026-07-28T17:11:51.289Z","AI-Powered Development: Using LLMs Effectively as a Developer | BitBlog","fddb5d93-7a2c-4d86-a06a-fa32e73a01c6",{"email":91,"bio":92,"id":89,"name":93,"avatarUrl":94},"mbeahessilfieprince@gmail.com","Fullstack Software Developer ","Mbeah Essilfie","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93322394?v=4",[],[97,102],{"id":98,"name":99,"color":100,"description":101},"typescript","TypeScript","#3178c6","Typed superset of JavaScript",{"id":103,"name":104,"color":105,"description":106},"ai","AI & ML","#8e44ad","Artificial Intelligence and Machine Learning",[108,109],{"id":17,"name":18,"description":19},{"id":8,"name":9,"description":10},[],{"comments":112},0,[114,123,133],{"id":115,"slug":116,"title":117,"excerpt":118,"featuredImage":119,"viewCount":120,"readingTime":71,"publishedAt":121,"author":122},"2997028f-4d22-4eb7-9d86-894a54cb559a","building-type-safe-apis-nuxt3-prisma","Building Type-Safe APIs with Nuxt 3 and Prisma","Learn how to build end-to-end type-safe APIs using Nuxt 3 server routes and Prisma ORM for a seamless developer experience.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1498050108023-c5249f4df085?w=1200&q=80",1922,"2026-07-23T06:02:46.910Z",{"id":89,"name":93,"avatarUrl":94},{"id":124,"slug":125,"title":126,"excerpt":127,"featuredImage":128,"viewCount":129,"readingTime":130,"publishedAt":131,"author":132},"da9e4553-8b0d-411e-b4ec-f9684017e163","mastering-tailwind-css-design-systems","Mastering Tailwind CSS: From Utility Classes to Design Systems","Go beyond basic utility classes and learn how to build cohesive, maintainable design systems with Tailwind CSS.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555066931-4365d14bab8c?w=1200&q=80",257,10,"2026-07-21T06:02:49.268Z",{"id":89,"name":93,"avatarUrl":94},{"id":134,"slug":135,"title":136,"excerpt":137,"featuredImage":138,"viewCount":139,"readingTime":140,"publishedAt":141,"author":142},"50add5fc-4026-4267-b917-7f71ea9e35b0","complete-guide-vue3-composables","The Complete Guide to Vue 3 Composables","Understand the power of Vue 3's Composition API through practical, real-world composable patterns that you can use today.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1517694712202-14dd9538aa97?w=1200&q=80",990,12,"2026-07-19T06:02:51.753Z",{"id":89,"name":93,"avatarUrl":94},{"data":144,"body":146,"toc":453},{"title":145,"description":145},"",{"type":147,"children":148},"root",[149,158,164,170,226,232,285,291,303,314,320,325,378,384,437,443,448],{"type":150,"tag":151,"props":152,"children":154},"element","h2",{"id":153},"ai-is-a-tool-not-a-replacement",[155],{"type":156,"value":157},"text","AI Is a Tool, Not a Replacement",{"type":150,"tag":159,"props":160,"children":161},"p",{},[162],{"type":156,"value":163},"LLMs are incredibly powerful for development — when used correctly. The key is knowing where they excel and where they'll lead you astray.",{"type":150,"tag":151,"props":165,"children":167},{"id":166},"where-ai-excels",[168],{"type":156,"value":169},"Where AI Excels",{"type":150,"tag":171,"props":172,"children":173},"ol",{},[174,186,196,206,216],{"type":150,"tag":175,"props":176,"children":177},"li",{},[178,184],{"type":150,"tag":179,"props":180,"children":181},"strong",{},[182],{"type":156,"value":183},"Boilerplate generation",{"type":156,"value":185}," — CRUD endpoints, test scaffolding, type definitions",{"type":150,"tag":175,"props":187,"children":188},{},[189,194],{"type":150,"tag":179,"props":190,"children":191},{},[192],{"type":156,"value":193},"Code translation",{"type":156,"value":195}," — Converting between languages or frameworks",{"type":150,"tag":175,"props":197,"children":198},{},[199,204],{"type":150,"tag":179,"props":200,"children":201},{},[202],{"type":156,"value":203},"Documentation",{"type":156,"value":205}," — Generating JSDoc, README sections, API docs",{"type":150,"tag":175,"props":207,"children":208},{},[209,214],{"type":150,"tag":179,"props":210,"children":211},{},[212],{"type":156,"value":213},"Exploration",{"type":156,"value":215}," — \"Show me 3 approaches to implement X\"",{"type":150,"tag":175,"props":217,"children":218},{},[219,224],{"type":150,"tag":179,"props":220,"children":221},{},[222],{"type":156,"value":223},"Debugging",{"type":156,"value":225}," — \"Why might this produce a race condition?\"",{"type":150,"tag":151,"props":227,"children":229},{"id":228},"where-ai-struggles",[230],{"type":156,"value":231},"Where AI Struggles",{"type":150,"tag":171,"props":233,"children":234},{},[235,245,255,265,275],{"type":150,"tag":175,"props":236,"children":237},{},[238,243],{"type":150,"tag":179,"props":239,"children":240},{},[241],{"type":156,"value":242},"Novel architecture decisions",{"type":156,"value":244}," — It optimizes for common patterns",{"type":150,"tag":175,"props":246,"children":247},{},[248,253],{"type":150,"tag":179,"props":249,"children":250},{},[251],{"type":156,"value":252},"Business logic",{"type":156,"value":254}," — It doesn't know your domain",{"type":150,"tag":175,"props":256,"children":257},{},[258,263],{"type":150,"tag":179,"props":259,"children":260},{},[261],{"type":156,"value":262},"Security",{"type":156,"value":264}," — It may suggest insecure patterns that \"work\"",{"type":150,"tag":175,"props":266,"children":267},{},[268,273],{"type":150,"tag":179,"props":269,"children":270},{},[271],{"type":156,"value":272},"Performance",{"type":156,"value":274}," — It writes correct but not necessarily optimal code",{"type":150,"tag":175,"props":276,"children":277},{},[278,283],{"type":150,"tag":179,"props":279,"children":280},{},[281],{"type":156,"value":282},"Consistency",{"type":156,"value":284}," — It doesn't remember your project conventions",{"type":150,"tag":151,"props":286,"children":288},{"id":287},"effective-prompting-patterns",[289],{"type":156,"value":290},"Effective Prompting Patterns",{"type":150,"tag":292,"props":293,"children":297},"pre",{"className":294,"code":296,"language":156},[295],"language-text","\u002F\u002F Instead of: \"Write a user authentication system\"\n\u002F\u002F Be specific:\n\n\"Write a Nuxt 3 server middleware that:\n- Reads a JWT from the Authorization header\n- Verifies it using jose library\n- Attaches the decoded user to event.context.user\n- Returns 401 for missing\u002Finvalid tokens\n- Skips auth for routes matching \u002Fapi\u002Fpublic\u002F**\n\nUse TypeScript, handle edge cases, include error types.\"\n",[298],{"type":150,"tag":299,"props":300,"children":301},"code",{"__ignoreMap":145},[302],{"type":156,"value":296},{"type":150,"tag":304,"props":305,"children":308},"callout",{"color":306,"icon":307},"primary","i-lucide-brain",[309],{"type":150,"tag":159,"props":310,"children":311},{},[312],{"type":156,"value":313},"The better your prompt describes constraints, error cases, and existing patterns, the better the output. Treat it like writing a detailed ticket for a developer.",{"type":150,"tag":151,"props":315,"children":317},{"id":316},"the-review-everything-rule",[318],{"type":156,"value":319},"The Review-Everything Rule",{"type":150,"tag":159,"props":321,"children":322},{},[323],{"type":156,"value":324},"Never commit AI-generated code without:",{"type":150,"tag":171,"props":326,"children":327},{},[328,338,348,358,368],{"type":150,"tag":175,"props":329,"children":330},{},[331,336],{"type":150,"tag":179,"props":332,"children":333},{},[334],{"type":156,"value":335},"Reading every line",{"type":156,"value":337}," — Understand what it does",{"type":150,"tag":175,"props":339,"children":340},{},[341,346],{"type":150,"tag":179,"props":342,"children":343},{},[344],{"type":156,"value":345},"Testing edge cases",{"type":156,"value":347}," — AI often misses boundaries",{"type":150,"tag":175,"props":349,"children":350},{},[351,356],{"type":150,"tag":179,"props":352,"children":353},{},[354],{"type":156,"value":355},"Checking security",{"type":156,"value":357}," — Look for hardcoded values, missing validation",{"type":150,"tag":175,"props":359,"children":360},{},[361,366],{"type":150,"tag":179,"props":362,"children":363},{},[364],{"type":156,"value":365},"Verifying dependencies",{"type":156,"value":367}," — It may suggest packages that don't exist",{"type":150,"tag":175,"props":369,"children":370},{},[371,376],{"type":150,"tag":179,"props":372,"children":373},{},[374],{"type":156,"value":375},"Matching conventions",{"type":156,"value":377}," — Adapt to your project's style",{"type":150,"tag":151,"props":379,"children":381},{"id":380},"my-workflow",[382],{"type":156,"value":383},"My Workflow",{"type":150,"tag":171,"props":385,"children":386},{},[387,397,407,417,427],{"type":150,"tag":175,"props":388,"children":389},{},[390,395],{"type":150,"tag":179,"props":391,"children":392},{},[393],{"type":156,"value":394},"Think first",{"type":156,"value":396}," — Design the solution mentally",{"type":150,"tag":175,"props":398,"children":399},{},[400,405],{"type":150,"tag":179,"props":401,"children":402},{},[403],{"type":156,"value":404},"Generate scaffold",{"type":156,"value":406}," — Use AI for the boring parts",{"type":150,"tag":175,"props":408,"children":409},{},[410,415],{"type":150,"tag":179,"props":411,"children":412},{},[413],{"type":156,"value":414},"Review and adapt",{"type":156,"value":416}," — Make it fit your project",{"type":150,"tag":175,"props":418,"children":419},{},[420,425],{"type":150,"tag":179,"props":421,"children":422},{},[423],{"type":156,"value":424},"Test thoroughly",{"type":156,"value":426}," — AI doesn't run your tests",{"type":150,"tag":175,"props":428,"children":429},{},[430,435],{"type":150,"tag":179,"props":431,"children":432},{},[433],{"type":156,"value":434},"Refactor",{"type":156,"value":436}," — Clean up to your standards",{"type":150,"tag":151,"props":438,"children":440},{"id":439},"the-learning-trap",[441],{"type":156,"value":442},"The Learning Trap",{"type":150,"tag":159,"props":444,"children":445},{},[446],{"type":156,"value":447},"If you can't write the code without AI, you don't understand it well enough to maintain it. Use AI to accelerate, not to skip learning.",{"type":150,"tag":159,"props":449,"children":450},{},[451],{"type":156,"value":452},"AI makes good developers faster. It doesn't make non-developers into developers.",{"title":145,"searchDepth":454,"depth":454,"links":455},2,[456,457,458,459,460,461,462],{"id":153,"depth":454,"text":157},{"id":166,"depth":454,"text":169},{"id":228,"depth":454,"text":231},{"id":287,"depth":454,"text":290},{"id":316,"depth":454,"text":319},{"id":380,"depth":454,"text":383},{"id":439,"depth":454,"text":442}]