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