[{"data":1,"prerenderedAt":1631},["ShallowReactive",2],{"news:\u002Fnews\u002Fcost-of-seven-disconnected-tools":3,"news:all":171},{"id":4,"title":5,"author":6,"body":7,"category":153,"cover":154,"date":155,"description":156,"draft":157,"extension":158,"featured":157,"hero":159,"meta":160,"navigation":161,"path":162,"seo":163,"stem":164,"tags":165,"updated":169,"__hash__":170},"blog\u002Fnews\u002Fcost-of-seven-disconnected-tools.md","The real cost of running your shop on seven disconnected tools","The CNEX team",{"type":8,"value":9,"toc":146},"minimark",[10,14,17,22,25,42,62,66,69,89,92,97,101,108,115,122],[11,12,13],"p",{},"It never starts as seven tools. It starts as a CRM. Then a project tool, because the CRM's tasks were clunky. Then a chat app, a phone system, a password manager, a shared drive, a form builder. Each one was \"just $12 a seat.\" None of them talk to each other.",[11,15,16],{},"That's the trap: the stack creeps, and the cost hides.",[18,19,21],"h2",{"id":20},"the-visible-cost-vs-the-real-one","The visible cost vs the real one",[11,23,24],{},"The invoices are the part you can see — and they're the cheap part. The real bill is paid in time:",[26,27,28,32,39],"ul",{},[29,30,31],"li",{},"A contact re-typed from the inbox into the CRM.",[29,33,34,38],{},[35,36,37],"em",{},"\"Did anyone reply to Acme?\""," asked in three different apps.",[29,40,41],{},"A follow-up that lived only in someone's head because no tool owned it.",[11,43,44,45,49,61],{},"People switch between apps over a thousand times a day, and context-switching can eat ",[46,47,48],"strong",{},"up to 40% of productive time.",[50,51,52],"sup",{},[53,54,60],"a",{"href":55,"ariaDescribedBy":56,"dataFootnoteRef":58,"id":59},"#user-content-fn-1",[57],"footnote-label","","user-content-fnref-1","1"," On a billable team, that's not a productivity stat — it's margin walking out the door.",[18,63,65],{"id":64},"a-60-second-tally","A 60-second tally",[11,67,68],{},"Want your real number? Don't count dollars — count seams. Multiply it out:",[26,70,71,77,83],{},[29,72,73,76],{},[46,74,75],{},"Tools × seats."," Six tools across eight people is 48 separate logins to provision, bill and offboard.",[29,78,79,82],{},[46,80,81],{},"Switches × minutes."," Every hand-off between two tools is a place work slips and time leaks.",[29,84,85,88],{},[46,86,87],{},"Re-typed records."," Every field entered twice is a field that can disagree with itself.",[11,90,91],{},"If the total makes you wince, that's the integration tax — and it grows every time you hire.",[93,94],"portal-figure",{"caption":95,"shot":96},"One place: the client, the calls, the email and the tasks — entered once, visible to everyone.","clients",[18,98,100],{"id":99},"one-platform-instead-of-seven","One platform instead of seven",[11,102,103,104,107],{},"The fix isn't another tool — it's ",[35,105,106],{},"fewer"," of them. When your CRM, projects, calls and inbox live in one system, the re-typing disappears and the seams close, because there's nothing to bridge.",[11,109,110,111],{},"We built a quick calculator so you can put a number on what your current stack costs versus one platform. ",[53,112,114],{"href":113},"\u002Fcompare\u002Fstack","Count what your stack is costing you →",[116,117,119],"cta",{"href":113,"title":118},"See what your stack really costs",[11,120,121],{},"Two sliders, your team size and your tool count — and an honest estimate of the time you're leaking.",[123,124,127,132],"section",{"className":125,"dataFootnotes":58},[126],"footnotes",[18,128,131],{"className":129,"id":57},[130],"sr-only","Footnotes",[133,134,135],"ol",{},[29,136,138,139],{"id":137},"user-content-fn-1","Sourced from published context-switching research; figures are indicative, not a measured CNEX-Flow benchmark. ",[53,140,145],{"href":141,"ariaLabel":142,"className":143,"dataFootnoteBackref":58},"#user-content-fnref-1","Back to reference 1",[144],"data-footnote-backref","↩",{"title":58,"searchDepth":147,"depth":147,"links":148},2,[149,150,151,152],{"id":20,"depth":147,"text":21},{"id":64,"depth":147,"text":65},{"id":99,"depth":147,"text":100},{"id":57,"depth":147,"text":131},"guides","\u002Fimages\u002Fnews\u002Fog-cost-stack.png","2026-04-28","Your subscriptions are the cheap part. The real bill for a stack of disconnected tools is the time your team loses jumping between them — here's how to count it.",false,"md","cost-stack",{},true,"\u002Fnews\u002Fcost-of-seven-disconnected-tools",{"title":5,"description":156},"news\u002Fcost-of-seven-disconnected-tools",[166,167,168],"tool-sprawl","operations","it-agency",null,"KehEINiOUUz7gFlhFZLMrkHB4gsyS4-LW-I2uojxKa4",[172,274,350,426,504,622,713,801,907,999,1241,1489],{"id":173,"title":174,"author":6,"body":175,"category":260,"cover":261,"date":262,"description":263,"draft":157,"extension":158,"featured":157,"hero":264,"meta":265,"navigation":161,"path":266,"seo":267,"stem":268,"tags":269,"updated":169,"__hash__":273},"blog\u002Fnews\u002Fa-week-running-our-company-on-cnex-flow.md","A week of running our company on CNEX-Flow",{"type":8,"value":176,"toc":253},[177,180,184,187,190,194,205,209,213,220,224,231,235,238,246],[11,178,179],{},"The best way to trust a tool is to watch the people who made it actually use it. So here's an honest, unglamorous week of running our own company on CNEX-Flow — no highlight reel, just the loop.",[18,181,183],{"id":182},"monday-the-inbox-sorts-itself","Monday — the inbox sorts itself",[11,185,186],{},"A prospect emails. By the time we open the portal, it's already a contact on the CRM with the email filed against it. No re-typing, no \"I'll log that later.\" The day starts from a clean source of truth.",[93,188],{"caption":189,"shot":96},"Monday's inbox, already filed: the client, the email, the next step — one timeline.",[18,191,193],{"id":192},"tuesday-talking-to-the-portal-mid-call","Tuesday — talking to the portal mid-call",[11,195,196,197,200,201,204],{},"On a call with a customer, we ask Connekz ",[35,198,199],{},"\"what did we promise Acme last time?\""," and ",[35,202,203],{},"\"create a follow-up for Friday\""," — without touching the mouse. The notes write themselves into the right record while we stay in the conversation.",[93,206],{"caption":207,"shot":208},"Tuesday's call: ask, and Connekz answers from the live record.","voice",[18,210,212],{"id":211},"wednesday-handing-work-to-connekz","Wednesday — handing work to Connekz",[11,214,215,216,219],{},"A well-defined ticket — a small feature with clear acceptance criteria — goes to Connekz. It writes the tests, implements, and opens a PR. We get on with the harder design work it ",[35,217,218],{},"can't"," do.",[18,221,223],{"id":222},"thursday-the-human-gate","Thursday — the human gate",[11,225,226,227,230],{},"We review the PR. One inline comment, a quick fix, and it's green again. This is the part we never skip: ",[46,228,229],{},"a human reads and merges every change."," That's the whole reason the loop is safe.",[18,232,234],{"id":233},"friday-what-shipped-and-what-didnt","Friday — what shipped, and what didn't",[11,236,237],{},"Some of the week shipped through Connekz; some needed a senior's judgement and stayed with us. That's the honest split — and it's the point. The predictable work got absorbed so the hard work got our full attention.",[11,239,240,241,245],{},"That's the loop, every week. If you want the origin story behind it, ",[53,242,244],{"href":243},"\u002Fstory","read how we built CNEX-Flow with it",".",[116,247,250],{"href":248,"title":249},"\u002Fproduct\u002Fconnekz","Run your shop the way we run ours",[11,251,252],{},"One platform for the client work, the calls and the code — with an AI across all of it. Start a free month and try the loop.",{"title":58,"searchDepth":147,"depth":147,"links":254},[255,256,257,258,259],{"id":182,"depth":147,"text":183},{"id":192,"depth":147,"text":193},{"id":211,"depth":147,"text":212},{"id":222,"depth":147,"text":223},{"id":233,"depth":147,"text":234},"engineering","\u002Fimages\u002Fnews\u002Fog-the-week.png","2026-05-22","We don't just build CNEX-Flow — we run our own shop on it. Here's an honest, ordinary week: the client work, the calls, the code, and where a human stepped in.","the-week",{},"\u002Fnews\u002Fa-week-running-our-company-on-cnex-flow",{"title":174,"description":263},"news\u002Fa-week-running-our-company-on-cnex-flow",[270,271,272],"build-in-public","connekz","dogfooding","M2qyUaMCQLf6MjktH_DLctrwwhXiTpOIGjP4tJMDedY",{"id":275,"title":276,"author":6,"body":277,"category":337,"cover":338,"date":339,"description":340,"draft":157,"extension":158,"featured":161,"hero":341,"meta":342,"navigation":161,"path":343,"seo":344,"stem":345,"tags":346,"updated":169,"__hash__":349},"blog\u002Fnews\u002Fwhat-shipped-this-month.md","What shipped this month",{"type":8,"value":278,"toc":332},[279,282,286,289,292,296,299,309,313,316],[11,280,281],{},"We ship small and often. Here's what landed this month — nothing earth-shattering, just steady progress you can use today.",[18,283,285],{"id":284},"calls-and-messages-in-one-thread","Calls and messages in one thread",[11,287,288],{},"Your in-app chat, SMS, and phone calls with a client now live in a single thread. No more stitching the story together across three tools — open a company and read the whole conversation top to bottom.",[93,290],{"caption":291,"shot":96},"One client, one timeline — calls, messages and tasks together.",[18,293,295],{"id":294},"post-call-summaries-you-can-act-on","Post-call summaries you can act on",[11,297,298],{},"When a call ends, CNEX-Flow drafts a summary and a short list of suggested follow-ups. You review them, edit anything that's off, and save — nothing is filed without your say-so.",[300,301,302],"tip",{},[11,303,304,305,308],{},"Every AI suggestion on a call is a ",[46,306,307],{},"draft",". You stay in the loop: review, edit, then save. Nothing posts to a client or a record on its own.",[18,310,312],{"id":311},"a-quicker-sprint-board","A quicker sprint board",[11,314,315],{},"The board got faster to load and smoother to drag on. Small thing, but you live in it all day — so it matters.",[11,317,318,319,323,324,200,328,331],{},"That's the month. Want the running list as it happens? Grab the ",[53,320,322],{"href":321},"\u002Fnews\u002Frss.xml","RSS feed",", and see where we're headed on the ",[53,325,327],{"href":326},"\u002Fproduct\u002Fai-engineer","AI engineer",[53,329,330],{"href":248},"Connekz"," pages.",{"title":58,"searchDepth":147,"depth":147,"links":333},[334,335,336],{"id":284,"depth":147,"text":285},{"id":294,"depth":147,"text":295},{"id":311,"depth":147,"text":312},"news","\u002Fimages\u002Fnews\u002Fog-comms-thread.png","2026-05-20","A short, honest roundup of what landed in CNEX-Flow this month — unified call threads, post-call AI summaries, and a faster sprint board.","comms-thread",{},"\u002Fnews\u002Fwhat-shipped-this-month",{"title":276,"description":340},"news\u002Fwhat-shipped-this-month",[347,348],"releases","product","8lcb0_WNa09jt-eeOzFEwW_yfo4xcYMl5Sbm-UyKT6E",{"id":351,"title":352,"author":6,"body":353,"category":153,"cover":415,"date":416,"description":417,"draft":157,"extension":158,"featured":157,"hero":418,"meta":419,"navigation":161,"path":420,"seo":421,"stem":422,"tags":423,"updated":169,"__hash__":425},"blog\u002Fnews\u002Ftake-on-more-clients-without-hiring.md","How to take on more clients without hiring (or dropping the ball)",{"type":8,"value":354,"toc":410},[355,358,365,369,372,376,379,383,390,394,397,400],[11,356,357],{},"Every growing IT shop hits the same wall. More clients want in, but your senior people are already maxed — so you either hire ahead of revenue (risky) or turn work away (painful). Quality is the thing that quietly suffers in between.",[11,359,360,361,364],{},"There's a third path: don't add people to do the predictable work — ",[35,362,363],{},"delegate"," it.",[18,366,368],{"id":367},"the-bottleneck-is-rarely-the-hard-stuff","The bottleneck is rarely the hard stuff",[11,370,371],{},"Look at where your seniors' hours actually go. A surprising chunk isn't the gnarly architecture — it's the well-defined work around it: CRUD pages, integrations, refactors, test coverage, the fixes. Necessary, valuable, and a poor use of your most expensive people.",[18,373,375],{"id":374},"delegate-the-predictable-keep-the-hard","Delegate the predictable, keep the hard",[11,377,378],{},"That predictable tier is exactly what an AI engineering teammate is good at. Write a clear ticket, hand it to Connekz, and get a tested PR back — while your seniors stay on the work only they can do.",[93,380],{"caption":381,"shot":382},"The predictable work, delegated: a clear ticket in, a tested PR out — your seniors never touched it.","run",[11,384,385,386,389],{},"You're not lowering the bar, because ",[46,387,388],{},"you still review every PR."," You're just spending your senior hours where they actually move the needle.",[18,391,393],{"id":392},"the-math","The math",[11,395,396],{},"A full dev teammate that ships overnight costs less than one contractor day a month. For a shop weighing \"hire a junior vs turn down a project,\" that's a different equation entirely — capacity you can switch on this week, without the payroll risk.",[11,398,399],{},"Take on the next client. Let Connekz absorb the predictable load. Keep your quality — and your weekends.",[116,401,403],{"href":326,"title":402},"Add capacity without adding headcount",[11,404,405,406,245],{},"See how the AI engineer ships the predictable work — then check what it costs on the ",[53,407,409],{"href":408},"\u002Fpricing","pricing page",{"title":58,"searchDepth":147,"depth":147,"links":411},[412,413,414],{"id":367,"depth":147,"text":368},{"id":374,"depth":147,"text":375},{"id":392,"depth":147,"text":393},"\u002Fimages\u002Fnews\u002Fog-capacity.png","2026-05-16","Growth usually forces a choice: take on more work and let quality slip, or hold the line and turn clients away. Here's a third option — delegate the predictable work, keep your seniors on the hard problems.","capacity",{},"\u002Fnews\u002Ftake-on-more-clients-without-hiring",{"title":352,"description":417},"news\u002Ftake-on-more-clients-without-hiring",[418,424,167],"ai-engineer","jIl1cEPIS9CEP6oNawwZwfAri7MpTGbpLh_KJMF73Rs",{"id":427,"title":428,"author":6,"body":429,"category":260,"cover":493,"date":494,"description":495,"draft":157,"extension":158,"featured":157,"hero":496,"meta":497,"navigation":161,"path":498,"seo":499,"stem":500,"tags":501,"updated":169,"__hash__":503},"blog\u002Fnews\u002Fwhy-our-ai-engineer-writes-tests-first.md","Why our AI engineer writes the tests first",{"type":8,"value":430,"toc":488},[431,438,444,448,455,458,462,472,476,479,482],[11,432,433,434,437],{},"Ask most AI coding tools to \"build X\" and they'll write X, then maybe some tests that conveniently pass. That's backwards — and it's why so much AI output is ",[35,435,436],{},"almost"," right.",[11,439,440,441],{},"Connekz does it the other way round: ",[46,442,443],{},"the tests come first.",[18,445,447],{"id":446},"done-should-mean-proven","\"Done\" should mean \"proven\"",[11,449,450,451,454],{},"When the acceptance criteria become tests ",[35,452,453],{},"before"," a line of implementation, \"done\" stops being a vibe and starts being a fact. The code has to satisfy the behaviour you actually asked for — not just look plausible in a diff.",[93,456],{"caption":457,"shot":382},"Acceptance criteria → tests → implementation → green suite → PR. In that order.",[18,459,461],{"id":460},"it-kills-the-almost-right","It kills the \"almost right\"",[11,463,464,465,200,468,471],{},"Most of the frustration with AI code is the gap between ",[35,466,467],{},"looks done",[35,469,470],{},"is done",". Tests-first closes that gap: an edge case that isn't handled is a red test, caught before the PR ever reaches you — not a bug you discover in production on a Friday.",[18,473,475],{"id":474},"you-still-review","You still review",[11,477,478],{},"Tests-first doesn't replace your judgement; it earns your review. What lands in your PR queue already has green tests against clear criteria, so the time you spend reviewing is spent on the things that actually need a human — design, trade-offs, taste — not hunting for obvious breakage.",[11,480,481],{},"That's the whole reason we trust Connekz with real work: not because it's clever, but because it proves itself first, every time.",[116,483,485],{"href":326,"title":484},"See the tests-first loop",[11,486,487],{},"Assign a real task and watch the tests go green before the PR opens.",{"title":58,"searchDepth":147,"depth":147,"links":489},[490,491,492],{"id":446,"depth":147,"text":447},{"id":460,"depth":147,"text":461},{"id":474,"depth":147,"text":475},"\u002Fimages\u002Fnews\u002Fog-tests-first.png","2026-05-10","The single most important thing Connekz does isn't writing code — it's writing the tests before the code. Here's why that ordering is what makes AI-written work trustworthy.","tests-first",{},"\u002Fnews\u002Fwhy-our-ai-engineer-writes-tests-first",{"title":428,"description":495},"news\u002Fwhy-our-ai-engineer-writes-tests-first",[424,502,271],"testing","QQJ2gUOIfXBVhstXJQeEdLC0foHjG0lvRDHHIM-X5do",{"id":505,"title":506,"author":6,"body":507,"category":153,"cover":610,"date":611,"description":612,"draft":157,"extension":158,"featured":157,"hero":613,"meta":614,"navigation":161,"path":615,"seo":616,"stem":617,"tags":618,"updated":169,"__hash__":621},"blog\u002Fnews\u002Fwho-has-access-to-what.md","Can you say, right now, who has access to what?",{"type":8,"value":508,"toc":605},[509,512,519,523,530,534,537,569,572,576,587,591,598],[11,510,511],{},"A contractor finished a project three months ago. Quick question: do they still have access to that client's files? If you had to think about it, you're not alone — and that pause is exactly what your cyber-insurer is worried about.",[11,513,514,515,518],{},"For a growing IT shop, ",[35,516,517],{},"\"who can see what?\""," gets harder to answer with every hire, every tool, and every client.",[18,520,522],{"id":521},"why-access-gets-messy","Why access gets messy",[11,524,525,526,529],{},"The problem isn't carelessness — it's that access lives in too many places. Every tool has its own permissions, set per-tool, per-hire. So offboarding someone means remembering all seven places they had a login, and ",[35,527,528],{},"that"," depends on memory. Orphaned accounts are how breaches (and failed audits) happen.",[18,531,533],{"id":532},"a-5-minute-audit","A 5-minute audit",[11,535,536],{},"Try this right now: pick someone who left or rolled off in the last quarter, and check each system:",[26,538,539,545,551,557,563],{},[29,540,541,544],{},[46,542,543],{},"Email \u002F shared drive"," — still a member of any client folders?",[29,546,547,550],{},[46,548,549],{},"CRM"," — still an active user?",[29,552,553,556],{},[46,554,555],{},"Repos \u002F hosting"," — keys or seats still active?",[29,558,559,562],{},[46,560,561],{},"Password manager"," — still in shared vaults?",[29,564,565,568],{},[46,566,567],{},"The client's own systems"," — still on their allow-list?",[11,570,571],{},"If you can't get to a confident \"all clear\" in five minutes, that's the gap an attacker (or an auditor) walks through.",[18,573,575],{"id":574},"one-access-model-not-seven","One access model, not seven",[11,577,578,579,582,583,586],{},"The fix is to stop managing access tool-by-tool. In CNEX-Flow, a person's access comes from their ",[46,580,581],{},"role and division"," — provision on hire, revoke on exit, in one place, with a full audit trail and a reverse lookup that answers ",[35,584,585],{},"\"who can see this client?\""," instantly.",[93,588],{"caption":589,"shot":590},"A member's real, effective permissions — what they can see, and exactly why.","access",[11,592,593,594,597],{},"And here's the part that matters for AI: ",[46,595,596],{},"if your login can't see it, neither can your AI."," Connekz inherits the exact same permissions, so asking it a question can never leak what your role couldn't already access.",[116,599,602],{"href":600,"title":601},"\u002Fsolutions\u002Fit","Know exactly who can see what",[11,603,604],{},"See how one access model — provision, revoke, audit, reverse-lookup — replaces the per-tool scramble.",{"title":58,"searchDepth":147,"depth":147,"links":606},[607,608,609],{"id":521,"depth":147,"text":522},{"id":532,"depth":147,"text":533},{"id":574,"depth":147,"text":575},"\u002Fimages\u002Fnews\u002Fog-access-panel.png","2026-05-06","For an MSP, the scariest question isn't from a client — it's from your cyber-insurer. Here's why access gets messy as you grow, a 5-minute orphaned-account audit, and how one access model fixes it.","access-panel",{},"\u002Fnews\u002Fwho-has-access-to-what",{"title":506,"description":612},"news\u002Fwho-has-access-to-what",[590,619,620],"msp","security","Q5nJoj4OCsVrk_lXIHcaMXu7LcPv-dVXiP1NRfBxAGg",{"id":623,"title":624,"author":6,"body":625,"category":337,"cover":703,"date":704,"description":705,"draft":157,"extension":158,"featured":157,"hero":706,"meta":707,"navigation":161,"path":708,"seo":709,"stem":710,"tags":711,"updated":169,"__hash__":712},"blog\u002Fnews\u002Foperate-your-portal-by-voice.md","Now live: operate your portal by voice",{"type":8,"value":626,"toc":697},[627,638,642,649,652,658,662,673,677,684,688,691],[11,628,629,630,633,634,637],{},"You shouldn't have to click through five screens to answer ",[35,631,632],{},"\"what's going on with Acme?\""," — so now you don't. ",[46,635,636],{},"Connekz operates your portal by voice"," (or chat, if you'd rather type).",[18,639,641],{"id":640},"ask-and-act","Ask, and act",[11,643,644,645,648],{},"It's not a chatbot bolted on the side. Connekz can read ",[35,646,647],{},"and"," do:",[93,650],{"caption":651,"shot":208},"Connekz knows the company you're looking at — ask, and it answers from your live data.",[11,653,654,657],{},[35,655,656],{},"\"What's the deal status with Acme? Create a follow-up for Friday. Move this card to ongoing.\""," It reads your CRM, creates the task, moves the card — real actions on your real data, in seconds.",[18,659,661],{"id":660},"it-knows-where-you-are","It knows where you are",[11,663,664,665,668,669,672],{},"Connekz is ",[46,666,667],{},"page-aware."," Open a client and ask ",[35,670,671],{},"\"what's new here?\""," — it knows which client you mean, so you never re-type context. During a customer call, that means you never touch your mouse.",[18,674,676],{"id":675},"scoped-to-your-role","Scoped to your role",[11,678,679,680,683],{},"The important part: Connekz only ever does what ",[46,681,682],{},"your"," role allows. If your login can't delete a project, neither can Connekz when you ask. Same permissions as a human teammate, enforced every time.",[18,685,687],{"id":686},"available-now","Available now",[11,689,690],{},"Voice + chat are included on every plan. Open the floating sphere, and start talking.",[116,692,694],{"href":248,"title":693},"Talk to your portal",[11,695,696],{},"See the voice interface in action — read your pipeline, create tasks, move work, all hands-free.",{"title":58,"searchDepth":147,"depth":147,"links":698},[699,700,701,702],{"id":640,"depth":147,"text":641},{"id":660,"depth":147,"text":661},{"id":675,"depth":147,"text":676},{"id":686,"depth":147,"text":687},"\u002Fimages\u002Fnews\u002Fog-voice-driven.png","2026-05-02","Stop clicking through your portal — talk to it. Connekz now reads and runs your CRM, projects and tasks by voice or chat, knows the page you're on, and only does what your role allows.","voice-driven",{},"\u002Fnews\u002Foperate-your-portal-by-voice",{"title":624,"description":705},"news\u002Foperate-your-portal-by-voice",[347,271,208],"me8TQJEtWE9MBpC7pf2Q6ToHBo25yjdwYU9tzMCWQ0U",{"id":4,"title":5,"author":6,"body":714,"category":153,"cover":154,"date":155,"description":156,"draft":157,"extension":158,"featured":157,"hero":159,"meta":798,"navigation":161,"path":162,"seo":799,"stem":164,"tags":800,"updated":169,"__hash__":170},{"type":8,"value":715,"toc":792},[716,718,720,722,724,734,743,745,747,761,763,765,767,771,775,779],[11,717,13],{},[11,719,16],{},[18,721,21],{"id":20},[11,723,24],{},[26,725,726,728,732],{},[29,727,31],{},[29,729,730,38],{},[35,731,37],{},[29,733,41],{},[11,735,44,736,738,61],{},[46,737,48],{},[50,739,740],{},[53,741,60],{"href":55,"ariaDescribedBy":742,"dataFootnoteRef":58,"id":59},[57],[18,744,65],{"id":64},[11,746,68],{},[26,748,749,753,757],{},[29,750,751,76],{},[46,752,75],{},[29,754,755,82],{},[46,756,81],{},[29,758,759,88],{},[46,760,87],{},[11,762,91],{},[93,764],{"caption":95,"shot":96},[18,766,100],{"id":99},[11,768,103,769,107],{},[35,770,106],{},[11,772,110,773],{},[53,774,114],{"href":113},[116,776,777],{"href":113,"title":118},[11,778,121],{},[123,780,782,785],{"className":781,"dataFootnotes":58},[126],[18,783,131],{"className":784,"id":57},[130],[133,786,787],{},[29,788,138,789],{"id":137},[53,790,145],{"href":141,"ariaLabel":142,"className":791,"dataFootnoteBackref":58},[144],{"title":58,"searchDepth":147,"depth":147,"links":793},[794,795,796,797],{"id":20,"depth":147,"text":21},{"id":64,"depth":147,"text":65},{"id":99,"depth":147,"text":100},{"id":57,"depth":147,"text":131},{},{"title":5,"description":156},[166,167,168],{"id":802,"title":803,"author":6,"body":804,"category":260,"cover":896,"date":897,"description":898,"draft":157,"extension":158,"featured":157,"hero":899,"meta":900,"navigation":161,"path":901,"seo":902,"stem":903,"tags":904,"updated":169,"__hash__":906},"blog\u002Fnews\u002Fquality-checked-before-it-lands.md","“Quality-checked before it lands” — what that actually means",{"type":8,"value":805,"toc":889},[806,812,819,823,834,837,841,847,851,854,858,865,869,876,883],[11,807,808,809,811],{},"If you've tried an AI coding tool lately, you've probably felt the specific frustration of code that's ",[35,810,436],{}," right — close enough to look done, wrong enough to waste your afternoon. Most developers don't trust AI output anymore, and honestly, that scepticism is healthy.",[11,813,814,815,818],{},"So when we say Connekz's work is ",[46,816,817],{},"\"quality-checked before it lands,\""," we owe you specifics. Here's what that phrase actually means.",[18,820,822],{"id":821},"it-writes-the-tests-first","It writes the tests first",[11,824,825,826,829,830,833],{},"Before a line of implementation, Connekz pins the behaviour with tests written against your acceptance criteria. \"Done\" stops meaning ",[35,827,828],{},"\"it looks right\""," and starts meaning ",[35,831,832],{},"\"it's proven against what you asked for.\""," That single ordering change kills most of the \"almost right.\"",[93,835],{"caption":836,"shot":382},"Tests first, the suite runs green, then a PR — not the other way round.",[18,838,840],{"id":839},"its-checked-before-it-reaches-you","It's checked before it reaches you",[11,842,843,844,846],{},"Tests run green and the obvious mistakes get caught ",[35,845,453],{}," it ever lands in your pull-request queue. You're not the first line of defence against rough edges — you're the last word on a change that's already been put through its paces. What reaches you is worth your time.",[18,848,850],{"id":849},"it-pauses-and-asks-instead-of-guessing","It pauses and asks instead of guessing",[11,852,853],{},"When a task is ambiguous or something's missing, Connekz comments on the card and waits. It doesn't barrel ahead and hope. A paused task you can answer beats a confident wrong answer every time.",[18,855,857],{"id":856},"you-merge","You merge",[11,859,860,861,864],{},"And the gate that never moves: Connekz opens a pull request. ",[46,862,863],{},"A human reviews and merges."," Nothing reaches main on the AI's say-so.",[18,866,868],{"id":867},"what-this-is-not","What this is not",[11,870,871,872],{},"It's not \"fully autonomous,\" and we'd never claim it is. You're in the loop on every change — by design, not as a limitation. We keep an honest, public list of where Connekz still needs you. ",[53,873,875],{"href":874},"\u002Flimits","See what Connekz can't do →",[11,877,878,879,882],{},"That's the whole trade: not blind trust in AI, but AI whose output has ",[35,880,881],{},"earned"," a review.",[116,884,886],{"href":326,"title":885},"See it ship, then judge for yourself",[11,887,888],{},"Assign a real task, watch the tests and the PR, and merge only when you're happy.",{"title":58,"searchDepth":147,"depth":147,"links":890},[891,892,893,894,895],{"id":821,"depth":147,"text":822},{"id":839,"depth":147,"text":840},{"id":849,"depth":147,"text":850},{"id":856,"depth":147,"text":857},{"id":867,"depth":147,"text":868},"\u002Fimages\u002Fnews\u002Fog-review-gate.png","2026-04-24","In 2026, most developers don't trust AI output — and they're right to be wary. Here's exactly what we mean when we say Connekz's work is quality-checked before it reaches your PR queue.","review-gate",{},"\u002Fnews\u002Fquality-checked-before-it-lands",{"title":803,"description":898},"news\u002Fquality-checked-before-it-lands",[424,905,271],"quality","27tJ0yKVhT1OkVuoZXuXW2fkY0OO9BOrdixgFFEZ3ss",{"id":908,"title":909,"author":6,"body":910,"category":337,"cover":989,"date":990,"description":991,"draft":157,"extension":158,"featured":157,"hero":992,"meta":993,"navigation":161,"path":994,"seo":995,"stem":996,"tags":997,"updated":169,"__hash__":998},"blog\u002Fnews\u002Fdrag-a-task-to-connekz.md","New: drag a task to Connekz and get a pull request",{"type":8,"value":911,"toc":984},[912,919,925,929,932,935,942,946,949,969,971,978],[11,913,914,915,918],{},"Today Connekz graduates from \"the assistant in the corner\" to a ",[46,916,917],{},"teammate on your sprint board"," — with an avatar and an hourly rate, sitting in the same column as your humans.",[11,920,921,922],{},"The headline: ",[46,923,924],{},"you can drag a task to Connekz and get a pull request back.",[18,926,928],{"id":927},"how-it-works","How it works",[11,930,931],{},"You assign a card exactly the way you'd assign one to a person. From there, Connekz takes over the predictable part:",[93,933],{"caption":934,"shot":382},"Drag the card to Connekz → tests written → suite green → PR opened, ready for your review.",[11,936,937,938,941],{},"It reads the acceptance criteria, spins up a real workspace, finds the prerequisites in your codebase, ",[46,939,940],{},"writes the tests first",", then the implementation. It runs lint, types and the full suite, and opens a pull request with the diff.",[18,943,945],{"id":944},"what-you-stay-in-control-of","What you stay in control of",[11,947,948],{},"Nothing about the review changes — that's the point:",[26,950,951,957,963],{},[29,952,953,956],{},[46,954,955],{},"Tests first",", so \"done\" means proven.",[29,958,959,962],{},[46,960,961],{},"Quality-checked before it lands"," — what reaches your PR queue is worth reviewing.",[29,964,965,968],{},[46,966,967],{},"You merge."," Connekz opens the PR; a human always says the final yes.",[18,970,687],{"id":686},[11,972,973,974,977],{},"AI engineer roles are included from the ",[46,975,976],{},"Starter"," plan up. If you already write clear acceptance criteria, you'll feel the difference on day one.",[116,979,981],{"href":326,"title":980},"Put an AI engineer on your board",[11,982,983],{},"See exactly how it works — assign a card, get a tested PR, review every change.",{"title":58,"searchDepth":147,"depth":147,"links":985},[986,987,988],{"id":927,"depth":147,"text":928},{"id":944,"depth":147,"text":945},{"id":686,"depth":147,"text":687},"\u002Fimages\u002Fnews\u002Fog-board-assign.png","2026-04-22","Connekz is now a first-class teammate on your sprint board. Assign a card like you would to any developer — it writes the tests, opens a PR, and waits for your review.","board-assign",{},"\u002Fnews\u002Fdrag-a-task-to-connekz",{"title":909,"description":991},"news\u002Fdrag-a-task-to-connekz",[347,424,271],"qZMlrCFv3shJTQJwN44Crz16mCtfjUm0-sE-hxqRCJs",{"id":1000,"title":1001,"author":6,"body":1002,"category":260,"cover":1231,"date":1232,"description":1233,"draft":157,"extension":158,"featured":157,"hero":1234,"meta":1235,"navigation":161,"path":1236,"seo":1237,"stem":1238,"tags":1239,"updated":169,"__hash__":1240},"blog\u002Fnews\u002Fbuilt-in-3-months-with-an-ai-engineer.md","How we built CNEX-Flow in three months with an AI engineer",{"type":8,"value":1003,"toc":1224},[1004,1010,1013,1017,1020,1046,1049,1053,1060,1063,1066,1141,1145,1148,1167,1173,1177,1180,1200,1205,1209,1212,1220],[11,1005,1006,1007,1009],{},"People ask how a team this small shipped a platform this big this fast. The honest answer: we built ",[46,1008,330],{}," — our AI engineering teammate — first, then used it to build the rest of CNEX-Flow, with a human reviewing every pull request.",[11,1011,1012],{},"It's not magic, and it isn't \"fire your engineers.\" It's a working pattern you could run tomorrow. Here it is, warts and all.",[18,1014,1016],{"id":1015},"the-working-pattern","The working pattern",[11,1018,1019],{},"It's the same loop you'd run with any developer — just faster on the predictable parts:",[133,1021,1022,1028,1034,1040],{},[29,1023,1024,1027],{},[46,1025,1026],{},"Plan."," A human writes a task with clear acceptance criteria.",[29,1029,1030,1033],{},[46,1031,1032],{},"Execute."," Connekz reads the criteria and the codebase, writes the tests, then the implementation.",[29,1035,1036,1039],{},[46,1037,1038],{},"Review."," It runs the suite and opens a PR. A human reviews and merges.",[29,1041,1042,1045],{},[46,1043,1044],{},"Repeat."," It remembers what went wrong last time and doesn't repeat it.",[11,1047,1048],{},"The whole thing hinges on step 3. Connekz opens a pull request — you review it and merge. You're the project manager; it's the developer.",[18,1050,1052],{"id":1051},"a-real-task-start-to-finish","A real task, start to finish",[11,1054,1055,1056,1059],{},"Take a routine one: ",[35,1057,1058],{},"\"Build a CSV contact-import page with column mapping and validation.\""," Clear, well-specified, the kind of work that quietly eats a senior's afternoon.",[93,1061],{"caption":1062,"shot":382},"Acceptance criteria in, tests-first, suite green, PR opened — you review and merge.",[11,1064,1065],{},"Connekz pinned the behaviour with tests, wrote the implementation, ran lint + types + the full suite, and opened a PR with the diff. We reviewed it like any other. That's most of CNEX-Flow: the CRM, the boards, the unified call threads, the post-call summaries — shipped this way, reviewed by a human.",[1067,1068,1072],"pre",{"className":1069,"code":1070,"language":1071,"meta":58,"style":58},"language-ts shiki shiki-themes github-light github-dark","\u002F\u002F The task, the way Connekz reads it: acceptance criteria first.\nexport interface Task {\n  title: string\n  acceptanceCriteria: string[]\n  \u002F\u002F Tests are written against these BEFORE the implementation.\n}\n","ts",[1073,1074,1075,1084,1101,1115,1129,1135],"code",{"__ignoreMap":58},[1076,1077,1080],"span",{"class":1078,"line":1079},"line",1,[1076,1081,1083],{"class":1082},"sJ8bj","\u002F\u002F The task, the way Connekz reads it: acceptance criteria first.\n",[1076,1085,1086,1090,1093,1097],{"class":1078,"line":147},[1076,1087,1089],{"class":1088},"szBVR","export",[1076,1091,1092],{"class":1088}," interface",[1076,1094,1096],{"class":1095},"sScJk"," Task",[1076,1098,1100],{"class":1099},"sVt8B"," {\n",[1076,1102,1104,1108,1111],{"class":1078,"line":1103},3,[1076,1105,1107],{"class":1106},"s4XuR","  title",[1076,1109,1110],{"class":1088},":",[1076,1112,1114],{"class":1113},"sj4cs"," string\n",[1076,1116,1118,1121,1123,1126],{"class":1078,"line":1117},4,[1076,1119,1120],{"class":1106},"  acceptanceCriteria",[1076,1122,1110],{"class":1088},[1076,1124,1125],{"class":1113}," string",[1076,1127,1128],{"class":1099},"[]\n",[1076,1130,1132],{"class":1078,"line":1131},5,[1076,1133,1134],{"class":1082},"  \u002F\u002F Tests are written against these BEFORE the implementation.\n",[1076,1136,1138],{"class":1078,"line":1137},6,[1076,1139,1140],{"class":1099},"}\n",[18,1142,1144],{"id":1143},"the-non-negotiable-you-review-every-pr","The non-negotiable: you review every PR",[11,1146,1147],{},"Speed without review is just faster mistakes. So the rules never bend:",[26,1149,1150,1156,1162],{},[29,1151,1152,1155],{},[46,1153,1154],{},"Tests first."," \"Done\" means proven, not hopeful.",[29,1157,1158,1161],{},[46,1159,1160],{},"Quality-checked before it lands."," Work passes a multi-stage review before it reaches your queue.",[29,1163,1164,1166],{},[46,1165,967],{}," Nothing reaches main without a human saying yes.",[11,1168,1169,1170],{},"That's why the output is worth reviewing instead of being a pile of \"almost right.\" ",[53,1171,1172],{"href":326},"See how the AI engineer works →",[18,1174,1176],{"id":1175},"what-it-doesnt-do","What it doesn't do",[11,1178,1179],{},"We're upfront about the edges — it's the honest part, and the useful one:",[26,1181,1182,1188,1194],{},[29,1183,1184,1187],{},[46,1185,1186],{},"Vague tasks get vague results."," It pauses and asks rather than guessing, but garbage in still slows things down.",[29,1189,1190,1193],{},[46,1191,1192],{},"It won't make product calls."," Architecture and trade-offs are human work.",[29,1195,1196,1199],{},[46,1197,1198],{},"Net-new, fuzzy R&D"," is where your seniors shine. Hand Connekz the well-defined work so they can stay on the hard problems.",[11,1201,1202,1203],{},"We keep a running, public list of the limits. ",[53,1204,875],{"href":874},[18,1206,1208],{"id":1207},"why-this-matters-for-your-shop","Why this matters for your shop",[11,1210,1211],{},"You don't need to build a platform to use this. The same loop — write a clear ticket, let Connekz ship the predictable work, review the PR — gives a 5-person shop the throughput of a much larger one, without the hiring. That's the whole pitch, and we're the proof: we run our own company on it.",[116,1213,1214],{"href":326,"title":980},[11,1215,1216,1217,245],{},"Assign a card, get a tested PR, and review every change before it lands — or read the longer ",[53,1218,1219],{"href":243},"build story",[1221,1222,1223],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":58,"searchDepth":147,"depth":147,"links":1225},[1226,1227,1228,1229,1230],{"id":1015,"depth":147,"text":1016},{"id":1051,"depth":147,"text":1052},{"id":1143,"depth":147,"text":1144},{"id":1175,"depth":147,"text":1176},{"id":1207,"depth":147,"text":1208},"\u002Fimages\u002Fnews\u002Fog-constellation.png","2026-04-18","CNEX-Flow was built by Connekz — our AI engineering teammate — with one human reviewing the PRs. Here's the exact working pattern, honestly, including what it doesn't do.","constellation",{},"\u002Fnews\u002Fbuilt-in-3-months-with-an-ai-engineer",{"title":1001,"description":1233},"news\u002Fbuilt-in-3-months-with-an-ai-engineer",[424,270,271],"Ns8nvW_T7iWY9iUy2PSZxYbWAjoBHbG53Z9ZNyFxBdE",{"id":1242,"title":1243,"author":6,"body":1244,"category":153,"cover":1478,"date":1479,"description":1480,"draft":157,"extension":158,"featured":157,"hero":1481,"meta":1482,"navigation":161,"path":1483,"seo":1484,"stem":1485,"tags":1486,"updated":169,"__hash__":1488},"blog\u002Fnews\u002Fcracks-in-a-growing-it-shop.md","Why work slips through the cracks in a growing IT shop",{"type":8,"value":1245,"toc":1470},[1246,1257,1260,1264,1267,1304,1311,1315,1331,1349,1353,1356,1403,1409,1413,1420,1423,1427,1433,1437,1451,1457],[11,1247,1248,1249,1252,1253,1256],{},"Every IT shop owner knows the feeling: a client emails ",[35,1250,1251],{},"\"any update?\""," and your stomach drops, because you genuinely don't know. The task didn't get dropped because someone was careless. It got dropped because it fell into the gap ",[46,1254,1255],{},"between"," two tools.",[11,1258,1259],{},"The good news: dropped balls are a predictable, fixable problem — not a \"we need to try harder\" problem. Here's where they happen, a quick way to audit your own shop, and the one change that closes the gaps for good.",[18,1261,1263],{"id":1262},"where-work-actually-disappears","Where work actually disappears",[11,1265,1266],{},"A single client request crosses a lot of boundaries before it's done:",[26,1268,1269,1276,1283,1290,1297],{},[29,1270,1271,1272,1275],{},"It ",[46,1273,1274],{},"arrives"," in an inbox.",[29,1277,1278,1279,1282],{},"It gets ",[46,1280,1281],{},"logged"," (maybe) in a CRM.",[29,1284,1285,1286,1289],{},"It becomes ",[46,1287,1288],{},"work"," on a board.",[29,1291,1292,1293,1296],{},"It generates a ",[46,1294,1295],{},"call"," or two.",[29,1298,1299,1300,1303],{},"It needs a ",[46,1301,1302],{},"follow-up"," nobody clearly owns.",[11,1305,1306,1307,1310],{},"Every arrow between those steps is a ",[35,1308,1309],{},"seam"," — and seams are where things slip. The more you grow, the more seams you have, and the more of your day you spend being the human glue holding them together.",[18,1312,1314],{"id":1313},"the-integration-tax","The integration tax",[11,1316,1317,1318,1321,1322,245,1325,1330],{},"You don't notice the cost because it's paid in small change: a re-typed contact here, a ",[35,1319,1320],{},"\"did anyone reply to Acme?\""," there, a follow-up that lived only in someone's head. But it adds up. People switch between apps over a thousand times a day, and context-switching can quietly eat up to ",[46,1323,1324],{},"40% of productive time",[50,1326,1327],{},[53,1328,60],{"href":55,"ariaDescribedBy":1329,"dataFootnoteRef":58,"id":59},[57]," For a billable team, that's not a productivity stat — it's margin.",[1332,1333,1334],"callout",{},[11,1335,1336,1337,1340,1341,1344,1345,1348],{},"The fix isn't ",[35,1338,1339],{},"more"," discipline or ",[35,1342,1343],{},"another"," tool. It's ",[46,1346,1347],{},"fewer seams"," — putting the inbox, the CRM, the board and the calls in one place that shares context automatically.",[18,1350,1352],{"id":1351},"a-2-minute-audit-the-5-seams","A 2-minute audit: the 5 seams",[11,1354,1355],{},"Want to find your own leaks? Walk one real client request through your shop and ask the smell-test at each seam. If the honest answer is \"it depends who's around,\" that seam is leaking.",[133,1357,1358,1367,1376,1385,1394],{},[29,1359,1360,1363,1364],{},[46,1361,1362],{},"Inbox → CRM."," A client emails. ",[35,1365,1366],{},"Does it become a record automatically, or does it depend on someone remembering to log it?",[29,1368,1369,1372,1373],{},[46,1370,1371],{},"CRM → board."," A deal turns into work. ",[35,1374,1375],{},"Does a project actually get created, or is it a mental note until someone chases it?",[29,1377,1378,1381,1382],{},[46,1379,1380],{},"Board → call."," A task needs a conversation. ",[35,1383,1384],{},"Does the call get made and logged against the client — or does it vanish into someone's phone?",[29,1386,1387,1390,1391],{},[46,1388,1389],{},"Call → follow-up."," The call ends with a promise. ",[35,1392,1393],{},"Is the next step written down and owned, or is it \"I'll remember\"?",[29,1395,1396,1399,1400],{},[46,1397,1398],{},"Follow-up → owner."," The follow-up comes due. ",[35,1401,1402],{},"Does someone get nudged automatically, or does it rely on a human noticing?",[11,1404,1405,1406,1408],{},"Most shops leak at seams 1, 4 and 5 — the hand-offs that depend on memory. That's where the ",[35,1407,1251],{}," emails come from.",[18,1410,1412],{"id":1411},"the-one-change-that-closes-the-gaps","The one change that closes the gaps",[11,1414,1415,1416,1419],{},"When the email, the client record, the project and the calls all live in ",[46,1417,1418],{},"one system",", the follow-up can't fall between tools — because there's no \"between.\" The next step is attached to the client, visible to the whole team, and surfaced the moment it's due.",[93,1421],{"caption":1422,"shot":96},"Calls, email, tasks and deals on one client timeline — nothing re-typed between tools.",[18,1424,1426],{"id":1425},"what-it-looks-like-on-a-busy-tuesday","What it looks like on a busy Tuesday",[11,1428,1429,1430,1432],{},"You don't go hunting for the dropped ball. It comes to you — ",[35,1431,453],{}," the client notices.",[93,1434],{"caption":1435,"shot":1436},"The overdue follow-up surfaces itself, with the next action one click away.","followup",[11,1438,1439,1440,1443,1444,1447,1448,245],{},"That's the whole idea behind CNEX-Flow's front office: remove the seams, and the dropped ball has nowhere to fall. If ",[35,1441,1442],{},"\"nothing slips through the cracks\""," is the feeling you're after, ",[53,1445,1446],{"href":600},"see how it works for IT teams"," — or, if it's the sheer number of tools that's the real problem, ",[53,1449,1450],{"href":113},"count what your stack is costing you",[116,1452,1454],{"href":600,"title":1453},"Close the gaps in your shop",[11,1455,1456],{},"See how CNEX-Flow puts your clients, projects and calls on one timeline — so the follow-up can't slip.",[123,1458,1460,1463],{"className":1459,"dataFootnotes":58},[126],[18,1461,131],{"className":1462,"id":57},[130],[133,1464,1465],{},[29,1466,138,1467],{"id":137},[53,1468,145],{"href":141,"ariaLabel":142,"className":1469,"dataFootnoteBackref":58},[144],{"title":58,"searchDepth":147,"depth":147,"links":1471},[1472,1473,1474,1475,1476,1477],{"id":1262,"depth":147,"text":1263},{"id":1313,"depth":147,"text":1314},{"id":1351,"depth":147,"text":1352},{"id":1411,"depth":147,"text":1412},{"id":1425,"depth":147,"text":1426},{"id":57,"depth":147,"text":131},"\u002Fimages\u002Fnews\u002Fog-the-gap.png","2026-04-15","The dropped ball is rarely a people problem — it's a gap-between-tools problem. Here's a 2-minute audit of where work disappears in a growing IT shop, and the one change that closes the gaps.","the-gap",{},"\u002Fnews\u002Fcracks-in-a-growing-it-shop",{"title":1243,"description":1480},"news\u002Fcracks-in-a-growing-it-shop",[168,1487,167],"crm","wwCffPyuwprVDiM_-XAt7Fsg1nzi-jGAnYJnxqJwKTE",{"id":1490,"title":1491,"author":6,"body":1492,"category":337,"cover":1620,"date":1621,"description":1622,"draft":157,"extension":158,"featured":157,"hero":1623,"meta":1624,"navigation":161,"path":1625,"seo":1626,"stem":1627,"tags":1628,"updated":169,"__hash__":1630},"blog\u002Fnews\u002Fintroducing-cnex-flow.md","Introducing CNEX-Flow: run your whole IT shop from one place",{"type":8,"value":1493,"toc":1613},[1494,1500,1507,1511,1514,1534,1537,1541,1544,1547,1552,1556,1562,1565,1571,1574,1581,1584,1590,1594,1601,1607],[11,1495,1496,1497,1499],{},"We were running our own IT shop across seven browser tabs — a CRM here, a project tool there, a chat app, a phone line, a spreadsheet holding it all together with hope. The work didn't fall through the cracks because anyone was careless. It fell through the gaps ",[46,1498,1255],{}," the tools.",[11,1501,1502,1503,1506],{},"So we built the thing we wished existed. Today we're opening it up to the first teams: ",[46,1504,1505],{},"CNEX-Flow"," — one platform to run your whole IT shop.",[18,1508,1510],{"id":1509},"one-platform-three-jobs","One platform, three jobs",[11,1512,1513],{},"CNEX-Flow does three things that usually need three (or seven) separate products:",[26,1515,1516,1522,1528],{},[29,1517,1518,1521],{},[46,1519,1520],{},"Run your client work"," — CRM, projects, calls and email in one place.",[29,1523,1524,1527],{},[46,1525,1526],{},"Ship the work"," — assign tasks to Connekz, your AI engineering teammate.",[29,1529,1530,1533],{},[46,1531,1532],{},"Operate it by voice"," — talk to your portal instead of clicking around it.",[11,1535,1536],{},"Here's what each looks like.",[18,1538,1540],{"id":1539},"run-your-client-work-in-one-place","Run your client work in one place",[11,1542,1543],{},"Clients, deals, follow-ups, the email thread, the call you had on Tuesday — all on one timeline, on the client's record. Nothing gets re-typed between tools, and the follow-up can't slip between apps, because there's no \"between.\"",[93,1545],{"caption":1546,"shot":96},"Every client's history — calls, email, deals — on one timeline.",[11,1548,1549,1550,245],{},"That's the whole idea behind the front office. If \"nothing slips through the cracks\" is the feeling you're after, ",[53,1551,1446],{"href":600},[18,1553,1555],{"id":1554},"ship-the-work-with-an-ai-engineer","Ship the work with an AI engineer",[11,1557,1558,1559,1561],{},"This is the part people don't expect. ",[46,1560,330],{}," is a teammate on your sprint board — with an avatar and an hourly rate. You drag a task to it the way you would to a person. It reads the acceptance criteria, writes the tests, runs the suite, and opens a pull request — quality-checked before it lands. You review. You merge.",[93,1563],{"caption":1564,"shot":382},"Assign a card. Connekz writes the tests, opens a PR — you review and merge.",[11,1566,1567,1568],{},"It won't make your product calls or merge for you, and it pauses to ask when a task is ambiguous. But for the predictable work that eats a senior's afternoon, it's genuinely fast. ",[53,1569,1570],{"href":326},"Meet the AI engineer →",[18,1572,1532],{"id":1573},"operate-it-by-voice",[11,1575,1576,1577,1580],{},"You don't have to click through any of this. Talk to Connekz. ",[35,1578,1579],{},"\"What's the deal status with Acme? Create a follow-up for Friday. Move this to ongoing.\""," It knows the page you're on, and it only ever does what your role allows.",[93,1582],{"caption":1583,"shot":208},"Connekz knows the company you're looking at — no re-typing context.",[11,1585,1586,1587],{},"No mouse, mid-call. ",[53,1588,1589],{"href":248},"See Connekz →",[18,1591,1593],{"id":1592},"built-in-aotearoa-in-the-open","Built in Aotearoa, in the open",[11,1595,1596,1597,1600],{},"Here's the honest part: a small team at cnex.co.nz built CNEX-Flow in about three months — and we built most of it ",[46,1598,1599],{},"with Connekz",", one human reviewing the pull requests. We run our own shop on it every day. It's the receipt for everything above.",[11,1602,1603,1604],{},"We're letting the first teams in now and shipping improvements every week. If you run a 5–30 person IT or software shop, we'd love your eyes on it. ",[53,1605,1606],{"href":243},"Read the build story →",[116,1608,1610],{"href":408,"title":1609},"Run your shop from one place",[11,1611,1612],{},"Start a free month — cancel anytime — or see what each plan includes.",{"title":58,"searchDepth":147,"depth":147,"links":1614},[1615,1616,1617,1618,1619],{"id":1509,"depth":147,"text":1510},{"id":1539,"depth":147,"text":1540},{"id":1554,"depth":147,"text":1555},{"id":1573,"depth":147,"text":1532},{"id":1592,"depth":147,"text":1593},"\u002Fimages\u002Fnews\u002Fog-clients-shell.png","2026-04-10","Why we built CNEX-Flow — one platform to run your client work, ship the code with Connekz, and operate it all by voice. Built in Aotearoa, in the open.","clients-shell",{},"\u002Fnews\u002Fintroducing-cnex-flow",{"title":1491,"description":1622},"news\u002Fintroducing-cnex-flow",[1629,348,271],"announcement","jFZ2MBufxJbx9tWpV0XMStE3p_FyImMSyeL1pC2tBYY",1779844570877]