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