[{"data":1,"prerenderedAt":427},["ShallowReactive",2],{"footer-vacatures-en":3,"case-nummi-data-driven-product-en":4,"content-by-keys-useCases-en-ai-toevoegen-aan-bestaande-software,eigen-data-en-kennis-gebruiken-met-ai,ai-toevoegen-aan-bestaand-product":187},[],{"id":5,"title":6,"approach":7,"body":22,"build":29,"card":42,"connections":47,"cta":48,"dataExamples":54,"description":26,"extension":67,"facts":68,"featured":83,"guardrails":47,"hero":84,"integrations":47,"key":89,"meta":90,"navigation":91,"offers":92,"order":102,"path":103,"proof":104,"relations":117,"result":137,"seo":149,"situation":152,"stem":165,"summary":166,"usecases":167,"visuals":179,"__hash__":186},"cases_en\u002Fcases\u002Fnummi-data-driven-product.md","nummi: steering product development with data",{"title":8,"steps":9},"How did we approach it?",[10,13,16,19],{"title":11,"text":12},"First measure where it really goes wrong","We analysed not just totals, but the whole user journey: first open, signup, first actions, engagement, D1 and D30 retention, acquisition source, social interaction, platform and user value. That let us tell bottlenecks apart from symptoms.\n",{"title":14,"text":15},"From analysis to a concrete product choice","The retention data showed that the registration wall lost many users, while players showed healthy playing behaviour after signup. Instead of building more gameplay features first, we added guest accounts so new players can start right away.\n",{"title":17,"text":18},"Roll out new ideas measurably","New onboarding is not simply switched on for everyone. The apps support a control and treatment variant via remote configuration and log separate milestones throughout the onboarding. That way we can assess afterwards where behaviour actually changes.\n",{"title":20,"text":21},"Link product data to business data","Besides gameplay and retention we look at subscriptions, ad revenue, acquisition and attribution. This lets us assess, for example per platform, which revenue model and which product investment make the most sense.\n",{"type":23,"value":24,"toc":25},"minimark",[],{"title":26,"searchDepth":27,"depth":27,"links":28},"",2,[],{"title":30,"intro":31,"points":32},"What did we build?","Data-driven product development takes more than an analytics script. Measurability has to run through the entire technical architecture, without the product itself becoming dependent on one dashboard or tool.\n",[33,36,39],{"title":34,"text":35},"A complete production backend","The Rails backend manages accounts, games, moves, friends, rankings, ratings, chat, bots, puzzles, subscriptions, notifications and a growing number of individual user statistics. Background work and recurring processes run via job queues.\n",{"title":37,"text":38},"Product analytics in both mobile apps","Firebase Analytics is the primary product analytics layer. The apps record events around, among other things, signup, gameplay, invitations, puzzles, ads, purchases, streaks and onboarding. Relevant user properties are also tracked so behaviour can be compared between groups.\n",{"title":40,"text":41},"Experiments and acquisition made measurable","Onboarding has its own measurable funnel with milestones from exposure and the first practice action to guest account creation, invitations, practice games and completion. Android also uses AppsFlyer for specific acquisition and purchase attribution.\n",{"tag":43,"title":44,"summary":45,"metric":46},"Product engineering","nummi: using data to guide product development","An online multiplayer product where retention, onboarding, engagement, acquisition, ads and subscriptions directly inform product decisions.","Only 54% made it past signup\u002Flogin. That analysis led to guest accounts.",null,{"title":49,"body":50,"primaryCta":51,"secondaryCta":52,"local":53},"Plenty of product data, but few answers yet?","Show us what your product does, what data you already collect and which decisions are now mostly made on gut feeling. We help set up both the software and the measurable product flow properly.\n","Book a call","View offer","Senior AI and software engineering from Delft, for organisations in Delft, The Hague, Rotterdam and the surrounding area.\n",{"title":55,"intro":56,"points":57},"More than one dashboard","We only combine data that helps make a product decision.\n",[58,61,64],{"title":59,"text":60},"Retention and activation","We look at where users first drop off, when they come back and which behaviour is associated with longer use.\n",{"title":62,"text":63},"Engagement and social effects","The analysis showed, for example, that 25.3% of users started games with friends and that active chatters sent almost thirty messages on average. Social interaction therefore turned out to be a more interesting retention signal than simply more solo functionality.\n",{"title":65,"text":66},"Revenue and acquisition","Ads, subscriptions, attribution and user value are compared with product behaviour. That way you can tell whether growth comes from more users, better retention, better monetisation or merely from more expensive paid traffic.\n","md",{"title":69,"items":70},"The case in brief",[71,74,77,80],{"label":72,"value":73},"Biggest bottleneck found","Only 54% got past signup\u002Flogin",{"label":75,"value":76},"Product decision","Retention data led to guest accounts",{"label":78,"value":79},"Experiments","Onboarding with control\u002Fvariant and its own funnel",{"label":81,"value":82},"Platform","Backend, iOS, Android, analytics and monetisation",false,{"headline":85,"intro":86,"primaryCta":87,"secondaryCta":88},"Measure where users drop off instead of guessing what they need.","With a digital product you can build features endlessly. The harder question is which change actually makes a difference. That is why at nummi we combine product development with analytics, cohort analyses, experiments and business data. Sometimes the data confirms an idea. Sometimes it shows that we were about to work on the wrong problem.\n","See how we work with data","Tell us what you want to build","nummi-data-driven-product",{},true,{"eyebrow":93,"primary":94},"Matching offer",{"key":95,"title":96,"text":97,"price":98,"result":99,"duration":100,"nextStep":101},"build-integrate","Build & Integrate","We build or professionalise a software product in which data, product logic, analytics and existing systems come together. From backend and integrations to the measuring points that help you make better product decisions afterwards.\n","Fixed price after scoping","Production-ready software with a measurable product flow","Depends on scope","First we determine which decisions the software and data actually need to support",4,"\u002Fcases\u002Fnummi-data-driven-product",{"title":105,"intro":106,"points":107},"Data changes the conversation","We learned the most from the assumptions that turned out right or wrong. That makes product development much more concrete.\n",[108,111,114],{"title":109,"text":110},"The registration wall became visible","Only 54% got past signup\u002Flogin. Of the people who did start, 68% already reached the first important gameplay threshold of 30 points. So the problem sat much earlier in the funnel than we could have seen from feature usage alone.\n",{"title":112,"text":113},"Not every new user is equally valuable","In the retention analysis, D1 retention of CPC users was around 21%, compared with about 39% for organic users. That was an important signal not to simply buy more paid traffic while the onboarding itself still had friction.\n",{"title":115,"text":116},"Platform data shapes the business model","In the same analysis, Android and iOS had comparable engagement, but a clearly different measured 120-day user value. That gave a concrete reason to approach monetisation differently per platform: more ad optimisation where that works and more attention to subscriptions where ad revenue lags behind.\n",{"buyerTriggerKeys":118,"useCaseKeys":120,"offerKeys":124,"solutionKey":125,"capabilityKeys":126},[119],"ai-laten-bouwen",[121,122,123],"ai-toevoegen-aan-bestaande-software","eigen-data-en-kennis-gebruiken-met-ai","ai-toevoegen-aan-bestaand-product",[95],"nummi",[127,128,129,130,131,132,133,134,135,136],"software-engineering","backend-engineering","product-engineering","data-engineering","analytics","experimentation","mobile-development","subscriptions","background-processing","production-engineering",{"title":138,"items":139},"What changed?",[140,143,146],{"title":141,"text":142},"Data pointed us to signup, not to yet another feature","In the analysis, only 54% of new users got past signup and login, and about 44 to 45% came back on day 1. At the same time, users who did start already took many actions on average on their first day. That made it clear that the first product threshold mattered more than extra gameplay behind it.\n",{"title":144,"text":145},"Guest accounts came straight from that analysis","New players can now start right away without first creating a full account. After the introduction we already saw fewer drop-offs. This decision started with behaviour we could point to in the data, not with a brainstorm.\n",{"title":147,"text":148},"We can actually compare the next onboarding","A more extensive onboarding is now in the product as an experiment. Control and variant stay consistent per installation and every important step has its own analytics. So soon we will not only be able to say that a flow 'feels better', but see whether more users actually become activated.\n",{"title":150,"description":151},"nummi: building a data-driven software product | 9to5 software","Case: how 9to5 software builds and develops nummi based on product data, retention, experiments, analytics and production engineering. From backend and mobile apps to dashboards, subscriptions and A\u002FB tests.\n",{"title":153,"intro":154,"points":155},"Where was the challenge?","Technically, nummi is an extensive product: multiplayer games, friends, chat, rankings, bots, puzzles, notifications, ads and subscriptions. But building more functionality does not automatically make the product better. To improve in a targeted way, product behaviour, technical events and business results had to be connected.\n",[156,159,162],{"title":157,"text":158},"A feature can feel logical and still deliver little","Leaderboards, badges, streaks, bots, onboarding, ads and subscriptions can all sound interesting. Without data, though, you do not know which investment solves the biggest problem.\n",{"title":160,"text":161},"The problem can be somewhere other than you think","Our retention analysis showed, for example, that users who actually started were already playing quite actively. The biggest drop-off happened before that: only 54% of new users got past signup and login.\n",{"title":163,"text":164},"Product, technology and business affect each other","A change in onboarding can affect retention. Acquisition affects the quality of new users. Ad revenue differs per platform and subscriptions call for different product choices again. You cannot make those decisions in isolation.\n","cases\u002Fnummi-data-driven-product","nummi is an online multiplayer product we have been building and developing for years. We use data to decide what to build, not just for reporting afterwards. Retention, onboarding, engagement, acquisition, advertising, subscriptions and gameplay are measured and used to make product decisions. A retention analysis, for example, led directly to guest accounts, and we build new onboarding as a measurable experiment instead of as a big gamble.\n",{"title":168,"items":169},"Where is this relevant?",[170,173,176],{"title":171,"text":172},"We build lots of features, but do not know what really makes a difference","Product development has a backlog full of ideas, but reliable data to set priorities is missing.\n",{"title":174,"text":175},"We have analytics, but mainly use them for reporting","The events already exist, but metrics and product decisions are not yet linked.\n",{"title":177,"text":178},"We want to experiment without making our product needlessly complex","New flows must be rolled out in a controlled way, measured and rolled back if needed, without building a separate experimentation world next to the real product.\n",{"hero":180,"situation":181,"approach":182,"build":183,"proof":184,"teaser":185},"\u002Fmedia\u002Fproducts\u002Fnummi-hero.webm","\u002Fmedia\u002Fproducts\u002Fnummi-situation.webp","ls-optimize-flow","\u002Fmedia\u002Fproducts\u002Fnummi-build.webp","\u002Fmedia\u002Fproducts\u002Fnummi-proof.webp","\u002Fmedia\u002Fproducts\u002Fnummi-teaser.webm","Fln_QYDpljCbM0fHL8o90W11XXbZWa_t82qFEUK3j8s",[188,269,347],{"id":189,"title":190,"body":191,"description":26,"desiredOutcome":195,"extension":67,"hero":207,"key":121,"meta":209,"navigation":91,"path":210,"problem":211,"proof":223,"recognition":235,"recommendedApproach":250,"relations":252,"seo":259,"stem":262,"summary":263,"visuals":264,"__hash__":268},"useCases_en\u002Fuse-cases\u002Fai-toevoegen-aan-bestaande-software.md","Add AI to existing software, an app or SaaS",{"type":23,"value":192,"toc":193},[],{"title":26,"searchDepth":27,"depth":27,"links":194},[],{"intro":196,"items":197},"The new AI functionality should feel like part of the product, not like a chatbot glued on later.\n",[198,201,204],{"title":199,"text":200},"AI fits the existing user flow","The feature supports what users are already trying to do.\n",{"title":202,"text":203},"The existing architecture stays manageable","AI is integrated without needlessly adding a second technical world.\n",{"title":205,"text":206},"Production risks are covered","Costs, latency, errors and uncertain model behaviour get a place in the design.\n",{"intro":208},"You don't need to build a completely new AI product. Often most of the value lies in one smart feature inside software users already know. We make sure that feature fits the existing product technically.\n",{},"\u002Fuse-cases\u002Fai-toevoegen-aan-bestaande-software",{"intro":212,"causes":213},"Integrating a standalone AI API is easy. Designing AI as a reliable part of existing product software is another story.\n",[214,217,220],{"title":215,"text":216},"Existing software already has rules","Data, permissions, business logic and user expectations are largely fixed.\n",{"title":218,"text":219},"AI introduces other failure modes","Latency, incorrect output and variable costs have to be handled in existing flows.\n",{"title":221,"text":222},"The new feature can end up too detached","A separate AI system quickly leads to duplicated data and logic.\n",{"intro":224,"points":225},"Understanding and extending existing software is a big part of our work. So AI doesn't need a greenfield to be built well.\n",[226,229,232],{"title":227,"text":228},"Understand the existing architecture first","We design the AI feature around what already works.\n",{"title":230,"text":231},"Integration over isolation","Data, auth and business logic are not duplicated unnecessarily.\n",{"title":233,"text":234},"Production from the design onwards","Reliability and operational consequences count before the feature goes live.\n",{"intro":236,"signals":237},"The problem is usually not how to call a model, but how the new functionality should relate to the existing product.\n",[238,241,244,247],{"title":239,"text":240},"The feature needs existing product data","AI has to work with users, documents or other information already in the product.\n",{"title":242,"text":243},"Permissions must simply keep working","AI must not suddenly expose information or actions that are protected elsewhere.\n",{"title":245,"text":246},"The existing UX should stay in charge","Users want a better workflow, not necessarily a chat interface.\n",{"title":248,"text":249},"You don't want to rebuild the current product","The AI layer has to connect to what already works well technically.\n",{"intro":251},"With Build & Integrate we add the AI functionality to the existing codebase and systems in a targeted way. When the new component is technically risky or still uncertain in substance, an AI Prototype Sprint can first prove the core.\n",{"buyerTriggerKeys":253,"primaryOfferKey":95,"offerKeys":254,"caseKeys":256,"relatedUseCaseKeys":257},[119],[95,255],"ai-prototype-sprint",[],[258,122],"agentic-workflows-bestaande-software",{"title":260,"description":261},"Add AI to existing software or SaaS | 9to5 software","Add AI features (ChatGPT, Claude, OpenAI API) to existing software? 9to5 designs, builds and integrates AI into existing apps and SaaS products.\n","use-cases\u002Fai-toevoegen-aan-bestaande-software","The product already exists. Now you want to add AI functionality without losing sight of the existing architecture, user experience and reliability.\n",{"hero":265,"problem":266,"proof":267},"sq-connect-nodes","sq-foundation-build","ls-system-connect","uIjq2lxyg3PeXyGhq82YeTX4j_ALcHznMSqDHe95r9k",{"id":270,"title":271,"body":272,"description":26,"desiredOutcome":276,"extension":67,"hero":288,"key":122,"meta":290,"navigation":91,"path":291,"problem":292,"proof":304,"recognition":316,"recommendedApproach":331,"relations":333,"seo":339,"stem":342,"summary":343,"visuals":344,"__hash__":346},"useCases_en\u002Fuse-cases\u002Feigen-data-en-kennis-gebruiken-met-ai.md","Make your own documents, data and knowledge usable for AI",{"type":23,"value":273,"toc":274},[],{"title":26,"searchDepth":27,"depth":27,"links":275},[],{"intro":277,"items":278},"You want to give AI access to relevant information of your own without putting everything into one uncontrollable data bin.\n",[279,282,285],{"title":280,"text":281},"Relevant information at the right moment","The AI only gets the context needed for the current task.\n",{"title":283,"text":284},"Sources stay traceable","Important output can be traced back to the underlying information.\n",{"title":286,"text":287},"Permissions and freshness stay intact","Users only see what they are allowed to see, and changes in sources can carry through into the solution.\n",{"intro":289},"A language model doesn't know your organisation by itself. If AI has to work with your own documents, product data or internal knowledge, that information has to be made available at the right moment and with the right permissions.\n",{},"\u002Fuse-cases\u002Feigen-data-en-kennis-gebruiken-met-ai",{"intro":293,"causes":294},"\"Giving our own data to AI\" sounds like one technical step, but usually consists of selection, retrieval, permissions and quality control.\n",[295,298,301],{"title":296,"text":297},"More context is not automatically better","A model actually gives worse answers when too much irrelevant information is included.\n",{"title":299,"text":300},"Sources have different structures","A PDF, a relational database and a ticketing system each call for a different approach.\n",{"title":302,"text":303},"Data permissions don't disappear with AI","Retrieval has to respect the same access that applies elsewhere in the organisation.\n",{"intro":305,"points":306},"The quality of an AI solution is often determined more by the context you provide than by the newest model. That's why we treat retrieval and data integration as fully-fledged engineering.\n",[307,310,313],{"title":308,"text":309},"Source and use case belong together","We don't just index everything because we can.\n",{"title":311,"text":312},"Existing permissions stay in charge","AI must not become a way around the access model.\n",{"title":314,"text":315},"No unnecessary platform layer","We only choose technical components the real problem requires.\n",{"intro":317,"signals":318},"This question arises when general AI works well, but business-specific context is missing.\n",[319,322,325,328],{"title":320,"text":321},"Knowledge is spread across many sources","Documents, databases and other systems each hold part of the context.\n",{"title":323,"text":324},"Copying into a prompt doesn't scale","Adding information by hand works for a demo, but not for structural use.\n",{"title":326,"text":327},"Information changes regularly","A static dataset quickly becomes outdated.\n",{"title":329,"text":330},"Not all knowledge is for everyone","Access rules from existing systems have to be preserved.\n",{"intro":332},"With Build & Integrate we build the technical layer that gives AI targeted access to your data and knowledge. If feasibility or answer quality is still uncertain, an AI Prototype Sprint can first validate the most important sources and use case.\n",{"buyerTriggerKeys":334,"primaryOfferKey":95,"offerKeys":335,"caseKeys":336,"relatedUseCaseKeys":337},[119],[95,255],[],[338,121],"interne-ai-assistent-laten-ontwikkelen",{"title":340,"description":341},"Use your own data and knowledge with AI | 9to5 software","Put your own documents and databases to work with AI? 9to5 builds RAG, retrieval, integrations and AI workflows around your existing information.\n","use-cases\u002Feigen-data-en-kennis-gebruiken-met-ai","The valuable information is already there. Now AI has to be able to work with it reliably, securely and practically.\n",{"hero":345,"problem":265,"proof":267},"sq-knowledge-filter","rQE5CNfHzt2_sDfHXKyafJGMwiRmtAudJssA1bEegxQ",{"id":348,"title":349,"body":350,"description":26,"desiredOutcome":354,"extension":67,"hero":366,"key":123,"meta":368,"navigation":91,"path":369,"problem":370,"proof":382,"recognition":394,"recommendedApproach":409,"relations":411,"seo":420,"stem":423,"summary":424,"visuals":425,"__hash__":426},"useCases_en\u002Fuse-cases\u002Fai-toevoegen-aan-bestaand-product.md","How do we add AI to our existing product?",{"type":23,"value":351,"toc":352},[],{"title":26,"searchDepth":27,"depth":27,"links":353},[],{"intro":355,"items":356},"You want to know which AI feature delivers enough user value and technically fits the product that already exists.\n",[357,360,363],{"title":358,"text":359},"A sharp product use case","You know which user can solve which problem better with AI.\n",{"title":361,"text":362},"A fitting technical architecture","The new functionality connects to existing data, auth and business logic.\n",{"title":364,"text":365},"A realistic implementation route","You know what needs testing first and what can then be built production-ready.\n",{"intro":367},"You don't have to make your product \"AI-first\" to use AI well. Often most of the value lies in one targeted improvement of an existing workflow. So the first question is not how to add AI, but where.\n",{},"\u002Fuse-cases\u002Fai-toevoegen-aan-bestaand-product",{"intro":371,"causes":372},"Adding AI to existing software is both a product choice and an architecture choice.\n",[373,376,379],{"title":374,"text":375},"The technology draws too much attention","An interesting AI possibility is not yet a useful product feature.\n",{"title":377,"text":378},"Existing data and permissions count","A feature has to fit the same user and security context as the rest of the product.\n",{"title":380,"text":381},"New failure modes are added","Variable quality, latency and model costs have to become part of the product experience.\n",{"intro":383,"points":384},"9to5 software likes working in existing products and codebases. So AI doesn't have to stay a separate experiment next to the real product.\n",[385,388,391],{"title":386,"text":387},"Product and technology together","We assess both user value and technical consequences.\n",{"title":389,"text":390},"Existing software remains the starting point","Auth, data and business logic are reused where possible.\n",{"title":392,"text":393},"From exploration to real implementation","If the use case holds up, the same engineers can also build the hard technical follow-up.\n",{"intro":395,"signals":396},"This often comes up when competitors launch AI features or users start asking what AI could mean in the product.\n",[397,400,403,406],{"title":398,"text":399},"There are several possible AI features","Summarising, generating, searching, agents and automation all seem interesting.\n",{"title":401,"text":402},"You don't want to build a gimmick","The feature has to demonstrably solve an existing user problem better.\n",{"title":404,"text":405},"The feature needs product data","AI has to be able to safely use information that is already in the software.\n",{"title":407,"text":408},"The existing architecture sets limits","You want to avoid one AI feature becoming a separate technical island.\n",{"intro":410},"In an AI Reality Check we first determine which AI use case has enough value and technical feasibility and how it fits into the existing product. An AI Prototype Sprint can then prove the core before a larger Build & Integrate implementation follows.\n",{"buyerTriggerKeys":412,"primaryOfferKey":414,"offerKeys":415,"caseKeys":416,"relatedUseCaseKeys":417},[413],"starten-met-ai","ai-reality-check",[414,255,95],[],[418,419],"ai-idee-technisch-haalbaar","ai-betrouwbaar-genoeg",{"title":421,"description":422},"Add AI to an existing product | 9to5 software","Adding AI to an existing app or SaaS product? 9to5 examines promising use cases, architecture, data, integrations and technical feasibility.\n","use-cases\u002Fai-toevoegen-aan-bestaand-product","You see opportunities to make your current software smarter, but first want to determine which AI functionality really adds something, technically and commercially.\n",{"hero":265,"problem":266,"proof":267},"RSVufcPhYOQ6qeNYCFlOmKFGLqdfCrZhxfRPGRtSLjM",1792049913035]