[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"header-categories":3,"post-git-workflow-strategies-small-teams":73,"parsed-post-19bdd417-e6a8-4273-a465-2df0218a1ef5":142},{"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":23,"viewCount":83,"commentEnabled":4,"publishedAt":84,"scheduledAt":11,"createdAt":85,"updatedAt":86,"seoTitle":87,"seoDescription":78,"seoKeywords":11,"authorId":88,"author":89,"coAuthors":94,"tags":95,"categories":106,"comments":109,"_count":110,"relatedPosts":112},"19bdd417-e6a8-4273-a465-2df0218a1ef5","git-workflow-strategies-small-teams","Git Workflow Strategies for Small Teams","Trunk-based development, feature branches, or GitFlow? A practical comparison for teams of 2-10 developers.","## The Problem\n\nEvery team argues about Git workflows. The truth: there's no universal best workflow — but there's probably a best one for *your* team.\n\n## Trunk-Based Development\n\nEveryone commits to `main` (or very short-lived branches):\n\n```bash\ngit checkout -b feature\u002Fadd-search  # lives \u003C 1 day\ngit commit -m \"feat: add search endpoint\"\ngit push origin feature\u002Fadd-search\n# PR reviewed and merged same day\n```\n\n**Best for:** Teams with strong CI, feature flags, and high trust.\n\n**Requires:**\n- Comprehensive test suite\n- Feature flags for incomplete work\n- Fast code reviews (\u003C 4 hours)\n\n## Feature Branch Workflow\n\nLonger-lived branches per feature:\n\n```bash\ngit checkout -b feature\u002Fuser-dashboard\n# Work for 2-5 days\ngit rebase main  # Keep up to date\ngit push origin feature\u002Fuser-dashboard\n# PR with thorough review\n```\n\n**Best for:** Most small teams. Balances independence with code quality.\n\n::callout{icon=\"i-lucide-git-branch\" color=\"primary\"}\nThe golden rule: rebase your feature branch on main daily. Merge conflicts grow exponentially with time.\n::\n\n## My Recommended Workflow\n\nFor teams of 2-10:\n\n1. **`main`** — always deployable, protected\n2. **Feature branches** — `feature\u002Fshort-description`\n3. **Squash merge** — clean history on main\n4. **No release branches** — deploy from main with tags\n5. **Hotfix branches** — branch from the tag, cherry-pick back\n\n## Commit Messages That Help\n\n```\nfeat: add user search with pagination\nfix: prevent duplicate form submissions\nrefactor: extract auth middleware into composable\ndocs: update API endpoint documentation\nchore: upgrade dependencies to latest\n```\n\n## PR Best Practices\n\n- Keep PRs under 400 lines of diff\n- Write a description explaining \"why\"\n- Include screenshots for UI changes\n- Self-review before requesting review\n- Respond to review comments within 4 hours\n\nThe best Git workflow is one your team actually follows consistently.\n","published","public","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1618477388954-7852f32655ec?w=1200&q=80",1624,"2026-06-29T06:03:16.300Z","2026-07-24T06:03:16.303Z","2026-07-28T17:18:08.561Z","Git Workflow Strategies for Small Teams | BitBlog","fddb5d93-7a2c-4d86-a06a-fa32e73a01c6",{"email":90,"bio":91,"id":88,"name":92,"avatarUrl":93},"mbeahessilfieprince@gmail.com","Fullstack Software Developer ","Mbeah Essilfie","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93322394?v=4",[],[96,101],{"id":97,"name":98,"color":99,"description":100},"devops","DevOps","#ff6c37","Development and Operations",{"id":102,"name":103,"color":104,"description":105},"architecture","Architecture","#795548","Software architecture patterns",[107,108],{"id":49,"name":50,"description":51},{"id":17,"name":18,"description":19},[],{"comments":111},0,[113,122,132],{"id":114,"slug":115,"title":116,"excerpt":117,"featuredImage":118,"viewCount":119,"readingTime":71,"publishedAt":120,"author":121},"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":88,"name":92,"avatarUrl":93},{"id":123,"slug":124,"title":125,"excerpt":126,"featuredImage":127,"viewCount":128,"readingTime":129,"publishedAt":130,"author":131},"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":88,"name":92,"avatarUrl":93},{"id":133,"slug":134,"title":135,"excerpt":136,"featuredImage":137,"viewCount":138,"readingTime":139,"publishedAt":140,"author":141},"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":88,"name":92,"avatarUrl":93},{"data":143,"body":145,"toc":415},{"title":144,"description":144},"",{"type":146,"children":147},"root",[148,157,171,177,191,203,214,222,242,248,253,261,270,281,287,292,355,361,371,377,405,410],{"type":149,"tag":150,"props":151,"children":153},"element","h2",{"id":152},"the-problem",[154],{"type":155,"value":156},"text","The Problem",{"type":149,"tag":158,"props":159,"children":160},"p",{},[161,163,169],{"type":155,"value":162},"Every team argues about Git workflows. The truth: there's no universal best workflow — but there's probably a best one for ",{"type":149,"tag":164,"props":165,"children":166},"em",{},[167],{"type":155,"value":168},"your",{"type":155,"value":170}," team.",{"type":149,"tag":150,"props":172,"children":174},{"id":173},"trunk-based-development",[175],{"type":155,"value":176},"Trunk-Based Development",{"type":149,"tag":158,"props":178,"children":179},{},[180,182,189],{"type":155,"value":181},"Everyone commits to ",{"type":149,"tag":183,"props":184,"children":186},"code",{"className":185},[],[187],{"type":155,"value":188},"main",{"type":155,"value":190}," (or very short-lived branches):",{"type":149,"tag":192,"props":193,"children":198},"pre",{"className":194,"code":195,"language":196,"meta":144,"style":197},"language-bash","git checkout -b feature\u002Fadd-search  # lives \u003C 1 day\ngit commit -m \"feat: add search endpoint\"\ngit push origin feature\u002Fadd-search\n# PR reviewed and merged same day\n","bash","undefined",[199],{"type":149,"tag":183,"props":200,"children":201},{"__ignoreMap":144},[202],{"type":155,"value":195},{"type":149,"tag":158,"props":204,"children":205},{},[206,212],{"type":149,"tag":207,"props":208,"children":209},"strong",{},[210],{"type":155,"value":211},"Best for:",{"type":155,"value":213}," Teams with strong CI, feature flags, and high trust.",{"type":149,"tag":158,"props":215,"children":216},{},[217],{"type":149,"tag":207,"props":218,"children":219},{},[220],{"type":155,"value":221},"Requires:",{"type":149,"tag":223,"props":224,"children":225},"ul",{},[226,232,237],{"type":149,"tag":227,"props":228,"children":229},"li",{},[230],{"type":155,"value":231},"Comprehensive test suite",{"type":149,"tag":227,"props":233,"children":234},{},[235],{"type":155,"value":236},"Feature flags for incomplete work",{"type":149,"tag":227,"props":238,"children":239},{},[240],{"type":155,"value":241},"Fast code reviews (\u003C 4 hours)",{"type":149,"tag":150,"props":243,"children":245},{"id":244},"feature-branch-workflow",[246],{"type":155,"value":247},"Feature Branch Workflow",{"type":149,"tag":158,"props":249,"children":250},{},[251],{"type":155,"value":252},"Longer-lived branches per feature:",{"type":149,"tag":192,"props":254,"children":256},{"className":194,"code":255,"language":196,"meta":144,"style":197},"git checkout -b feature\u002Fuser-dashboard\n# Work for 2-5 days\ngit rebase main  # Keep up to date\ngit push origin feature\u002Fuser-dashboard\n# PR with thorough review\n",[257],{"type":149,"tag":183,"props":258,"children":259},{"__ignoreMap":144},[260],{"type":155,"value":255},{"type":149,"tag":158,"props":262,"children":263},{},[264,268],{"type":149,"tag":207,"props":265,"children":266},{},[267],{"type":155,"value":211},{"type":155,"value":269}," Most small teams. Balances independence with code quality.",{"type":149,"tag":271,"props":272,"children":275},"callout",{"color":273,"icon":274},"primary","i-lucide-git-branch",[276],{"type":149,"tag":158,"props":277,"children":278},{},[279],{"type":155,"value":280},"The golden rule: rebase your feature branch on main daily. Merge conflicts grow exponentially with time.",{"type":149,"tag":150,"props":282,"children":284},{"id":283},"my-recommended-workflow",[285],{"type":155,"value":286},"My Recommended Workflow",{"type":149,"tag":158,"props":288,"children":289},{},[290],{"type":155,"value":291},"For teams of 2-10:",{"type":149,"tag":293,"props":294,"children":295},"ol",{},[296,309,325,335,345],{"type":149,"tag":227,"props":297,"children":298},{},[299,307],{"type":149,"tag":207,"props":300,"children":301},{},[302],{"type":149,"tag":183,"props":303,"children":305},{"className":304},[],[306],{"type":155,"value":188},{"type":155,"value":308}," — always deployable, protected",{"type":149,"tag":227,"props":310,"children":311},{},[312,317,319],{"type":149,"tag":207,"props":313,"children":314},{},[315],{"type":155,"value":316},"Feature branches",{"type":155,"value":318}," — ",{"type":149,"tag":183,"props":320,"children":322},{"className":321},[],[323],{"type":155,"value":324},"feature\u002Fshort-description",{"type":149,"tag":227,"props":326,"children":327},{},[328,333],{"type":149,"tag":207,"props":329,"children":330},{},[331],{"type":155,"value":332},"Squash merge",{"type":155,"value":334}," — clean history on main",{"type":149,"tag":227,"props":336,"children":337},{},[338,343],{"type":149,"tag":207,"props":339,"children":340},{},[341],{"type":155,"value":342},"No release branches",{"type":155,"value":344}," — deploy from main with tags",{"type":149,"tag":227,"props":346,"children":347},{},[348,353],{"type":149,"tag":207,"props":349,"children":350},{},[351],{"type":155,"value":352},"Hotfix branches",{"type":155,"value":354}," — branch from the tag, cherry-pick back",{"type":149,"tag":150,"props":356,"children":358},{"id":357},"commit-messages-that-help",[359],{"type":155,"value":360},"Commit Messages That Help",{"type":149,"tag":192,"props":362,"children":366},{"className":363,"code":365,"language":155},[364],"language-text","feat: add user search with pagination\nfix: prevent duplicate form submissions\nrefactor: extract auth middleware into composable\ndocs: update API endpoint documentation\nchore: upgrade dependencies to latest\n",[367],{"type":149,"tag":183,"props":368,"children":369},{"__ignoreMap":144},[370],{"type":155,"value":365},{"type":149,"tag":150,"props":372,"children":374},{"id":373},"pr-best-practices",[375],{"type":155,"value":376},"PR Best Practices",{"type":149,"tag":223,"props":378,"children":379},{},[380,385,390,395,400],{"type":149,"tag":227,"props":381,"children":382},{},[383],{"type":155,"value":384},"Keep PRs under 400 lines of diff",{"type":149,"tag":227,"props":386,"children":387},{},[388],{"type":155,"value":389},"Write a description explaining \"why\"",{"type":149,"tag":227,"props":391,"children":392},{},[393],{"type":155,"value":394},"Include screenshots for UI changes",{"type":149,"tag":227,"props":396,"children":397},{},[398],{"type":155,"value":399},"Self-review before requesting review",{"type":149,"tag":227,"props":401,"children":402},{},[403],{"type":155,"value":404},"Respond to review comments within 4 hours",{"type":149,"tag":158,"props":406,"children":407},{},[408],{"type":155,"value":409},"The best Git workflow is one your team actually follows consistently.",{"type":149,"tag":411,"props":412,"children":413},"style",{},[414],{"type":155,"value":144},{"title":144,"searchDepth":416,"depth":416,"links":417},2,[418,419,420,421,422,423],{"id":152,"depth":416,"text":156},{"id":173,"depth":416,"text":176},{"id":244,"depth":416,"text":247},{"id":283,"depth":416,"text":286},{"id":357,"depth":416,"text":360},{"id":373,"depth":416,"text":376}]