[{"data":1,"prerenderedAt":2968},["ShallowReactive",2],{"content:site":3,"content:services":29,"content:audiences\u002Fowners-and-ceos":649,"content:posts":703,"content:audiences":2790},{"name":4,"description":5,"email":6,"location":7,"linkedin":8,"footerBlurb":9,"nav":10,"cta":26},"LuminateOne","Software development, integrations, AI tools and reporting for New Zealand businesses and startups.","hello@luminate.one","Hamilton, Waikato, New Zealand","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fluminateone","Software development, integrations, AI and reporting. Based in Hamilton, working across New Zealand and overseas.",[11,14,17,20,23],{"label":12,"to":13},"Who we help","\u002F#who-we-help",{"label":15,"to":16},"Services","\u002F#services",{"label":18,"to":19},"Work","\u002F#work",{"label":21,"to":22},"About","\u002Fabout",{"label":24,"to":25},"Articles","\u002Farticles",{"label":27,"to":28},"Talk to us","\u002F#contact",[30,130,269,360,453,560],{"slug":31,"order":32,"code":33,"title":34,"summary":35,"seoTitle":36,"seoDescription":37,"hero":38,"outcomes":62,"options":75,"fits":95,"faqs":111,"cta":127},"laravel",0,"","Laravel development","Laravel is where most of our work starts. New applications, upgrades and ongoing development on existing codebases.","New Zealand's Leading Laravel Experts","New Zealand's leading Laravel and PHP specialists. New applications, upgrades, hosting and maintenance from a Laravel team in Hamilton.",{"title":39,"intro":40,"primaryCta":61},"Laravel development, upgrades and support",[41],{"_type":42,"_key":43,"style":44,"markDefs":45,"children":46},"block","kg5","normal",[],[47,52,57],{"_type":48,"_key":49,"text":50,"marks":51},"span","kg6","We develop ",[],{"_type":48,"_key":53,"text":54,"marks":55},"kg7","new Laravel applications",[56],"strong",{"_type":48,"_key":58,"text":59,"marks":60},"kg8",", take over and upgrade existing ones, and connect them to the other systems your business uses. Most of our AI, integration and reporting work runs on Laravel too.",[],"Discuss a Laravel project",[63,66,69,72],{"title":64,"text":65},"New applications","Customer products and internal systems built on Laravel and Vue.",{"title":67,"text":68},"Upgrades","Move older Laravel and PHP versions forward and keep dependencies supported.",{"title":70,"text":71},"Existing codebases","Maintenance, fixes and new features on applications someone else started.",{"title":73,"text":74},"Connected systems","APIs and integrations between Laravel and the rest of your software.",{"eyebrow":76,"title":77,"intro":78,"items":79},"Laravel work","New builds, upgrades and ongoing care","Most Laravel work falls into one of these. A project often moves between them over time.",[80,83,86,89,92],{"title":81,"text":82},"Application development","Design and build a Laravel application around your requirements, with Vue for the interface where it suits. We plan the data structures, permissions and integrations before the build starts.",{"title":84,"text":85},"Upgrades and takeovers","Review the condition of an existing application, upgrade its Laravel and PHP versions and set up what is needed to maintain it. The review tells you what is involved before you commit to the work.",{"title":87,"text":88},"Hosting and maintenance","Keep the application updated, monitored and backed up, with development time for fixes and changes. The arrangement depends on the application and the support it needs.",{"title":90,"text":91},"Laravel developers for your team","Add experienced Laravel developers to your project to fix performance problems, solve difficult bugs or strengthen the application structure.",{"title":93,"text":94},"AI in Laravel applications","Add AI features to a Laravel application, such as document reading, search and automated decisions, using your own data and business rules.",{"eyebrow":96,"title":97,"intro":98,"photo":99,"items":101},"Why Laravel","A framework that holds up over time","We start with Laravel because it lets us build quickly and leaves you with an application other developers can work on.",{"placeholder":100},"Photo. Laravel code in an editor beside the running application",[102,105,108],{"title":103,"text":104},"Widely used","A large community and a familiar structure, so the application isn't tied to one developer.",{"title":106,"text":107},"Security built in","Protection against common attacks, with regular releases and security fixes.",{"title":109,"text":110},"A complete toolkit","Queues, scheduling, authentication and testing come with the framework.",{"eyebrow":112,"title":113,"items":114},"Questions","About Laravel development",[115,118,121,124],{"question":116,"answer":117},"Can you take over our Laravel application?","Usually, yes. We start by reviewing the codebase, versions, hosting and documentation, so you know what is involved before we take it on.",{"question":119,"answer":120},"Our application runs an old Laravel version. Is that a problem?","Older versions stop receiving security fixes. We can assess what an upgrade involves and whether it can happen in stages.",{"question":122,"answer":123},"Do you work with businesses in Australia?","Yes. We are based in Hamilton and work with Laravel clients across New Zealand and Australia.",{"question":125,"answer":126},"Do you only work in Laravel?","Laravel is where we start, and most of our applications use it. We also work with Vue, other PHP frameworks and whatever systems the application needs to connect to.",{"title":128,"text":129,"label":61},"Tell us about your Laravel project","Describe the application, its Laravel version if it already exists, and what you need done.",{"slug":131,"order":132,"code":33,"title":133,"summary":134,"seoTitle":135,"seoDescription":136,"hero":137,"outcomes":157,"options":170,"fits":190,"gallery":218,"faqs":251,"cta":266},"integrations",1,"Integrations","Connect business software, machines and IoT devices with Nebula, our integration platform.","Software and machine integrations in NZ","Integrations and automation from LuminateOne in Hamilton. Connect business software, databases, machines and IoT devices using Nebula.",{"title":138,"intro":139,"primaryCta":156},"Connect the systems your business relies on",[140],{"_type":42,"_key":141,"style":44,"markDefs":142,"children":143},"kgh",[],[144,148,152],{"_type":48,"_key":145,"text":146,"marks":147},"kgi","We connect business software, machines and IoT devices using ",[],{"_type":48,"_key":149,"text":150,"marks":151},"kgj","Nebula",[56],{"_type":48,"_key":153,"text":154,"marks":155},"kgk",", our integration platform. Bring equipment data into your systems, move information between applications and automate tasks across them.",[],"Discuss an integration",[158,161,164,167],{"title":159,"text":160},"Less duplicate entry","Transfer information between systems without re-entering the same records.",{"title":162,"text":163},"Business rules","Handle field mappings, calculations and validation within the connection.",{"title":165,"text":166},"Scheduled tasks","Automate work that needs to run at particular times or in response to events.",{"title":168,"text":169},"Operational visibility","Make the status of transfers and automated tasks easier to track.",{"eyebrow":171,"title":172,"intro":173,"items":174},"What we do","Data connections and automated tasks","An integration may link applications, collect data from equipment or coordinate work across several systems.",[175,178,181,184,187],{"title":176,"text":177},"Application integrations","Connect cloud applications, databases and custom software using the interfaces available. Map records and fields so the receiving system gets the information it needs.",{"title":179,"text":180},"Machine and IoT integrations","Collect data from machines, sensors and connected devices through their available interfaces. Bring readings, status and events into business systems and dashboards.",{"title":182,"text":183},"Workflow automation","Run tasks on a schedule or in response to an event, with rules for validation, exceptions and actions that need approval.",{"title":185,"text":186},"AI-assisted processing","Combine document reading or information extraction with defined integration rules. AI connections can also provide access to selected functions through MCP.",{"title":188,"text":189},"Changes to existing connections","Adapt integrations when an application changes, new information is needed or a business process is revised.",{"eyebrow":191,"title":192,"intro":193,"photo":194,"items":199},"Connections","What we can connect","Business software, factory equipment, sensors and other connected systems.",{"image":195,"placeholder":198},{"src":196,"alt":197},"\u002Fimages\u002Fnebula\u002Flaptop-machine.webp","Nebula machine summary with live units, rate and motor temperature, and its integrations to SAP Business One, MaintainX, InfluxDB and Power BI, all synced","Photo. The Nebula dashboard on a screen, or a factory floor",[200,203,206,209,212,215],{"title":201,"text":202},"Time, payroll and billing","Transfer approved time records to pay and billing systems, with the relevant mappings and calculations.",{"title":204,"text":205},"Machines and production equipment","Bring machine status, output and operating data into production reports and maintenance systems.",{"title":207,"text":208},"IoT devices and sensors","Collect readings such as temperature, energy use and equipment condition for monitoring, reporting and alerts.",{"title":210,"text":211},"Access control systems","Bring door status and access events into operational dashboards.",{"title":213,"text":214},"Operational data","Bring information from production or job systems into the applications used by the wider business.",{"title":216,"text":217},"Scheduled operations","Run recurring data transfers and system tasks without a manual trigger.",{"eyebrow":150,"title":219,"intro":220,"items":221},"One view of a manufacturing site","An example Nebula dashboard for a factory. Machine data, the staff roster and service schedules come from separate systems and show on one screen.",[222,230,237,244],{"wide":223,"photo":224,"caption":229},true,{"image":225,"placeholder":228},{"src":226,"alt":227},"\u002Fimages\u002Fnebula\u002Fattendance.webp","Nebula attendance screen with the day shift, clock-in times and who is late, on break or on leave","Screenshot. Attendance","Who is on site this shift, who clocked in late and who is on leave.",{"photo":231,"caption":236},{"image":232,"placeholder":235},{"src":233,"alt":234},"\u002Fimages\u002Fnebula\u002Fservice-windows.webp","Weekly service window for each machine, with its day, start time and next service","Screenshot. Service windows","Each machine stops once a week for service. Moving a window updates machine status and the production figures.",{"photo":238,"caption":243},{"image":239,"placeholder":242},{"src":240,"alt":241},"\u002Fimages\u002Fnebula\u002Fproduction.webp","Units made by each machine on each day of the month, coloured against target","Screenshot. Production","Units each machine made per day this month. Green met the target, red fell short.",{"wide":223,"photo":245,"caption":250},{"image":246,"placeholder":249},{"src":247,"alt":248},"\u002Fimages\u002Fnebula\u002Fmachines.webp","Status, output today, utilisation and next service for each factory machine","Screenshot. Machines","Every machine with its status, output today, utilisation and next service.",{"eyebrow":112,"title":252,"items":253},"About integrations",[254,257,260,263],{"question":255,"answer":256},"What is Nebula?","Nebula is our integration platform. We use it to connect systems and run automated tasks with business-specific rules.",{"question":258,"answer":259},"Can you connect our systems?","That depends on the interfaces and permissions available. An API, database connection or supported file exchange can provide a route. Send us the system names and what needs to move between them.",{"question":261,"answer":262},"Could an existing connector do the job?","It may. The choice depends on the systems, the logic required and the ongoing cost of running the connection. A built-in integration is worth checking before commissioning custom work.",{"question":264,"answer":265},"What needs to be considered after launch?","Access, monitoring, error handling and changes to the connected systems all affect how an integration is maintained. Hosting, support and licensing arrangements depend on the proposed solution.",{"title":267,"text":268,"label":156},"Which systems need to connect?","Tell us what information needs to move, in which direction and how often.",{"slug":270,"order":271,"code":272,"title":273,"summary":274,"seoTitle":275,"seoDescription":276,"hero":277,"outcomes":297,"options":309,"fits":323,"faqs":342,"cta":357},"web-and-mobile",2,"03 · S","Web & mobile development","Custom applications, customer portals and business software, with development and ongoing maintenance.","Custom software and app development in NZ","Custom web and mobile software for New Zealand businesses and startups. Laravel and Vue development from LuminateOne in Hamilton.",{"title":278,"intro":279,"primaryCta":296},"Web and mobile applications for your business",[280],{"_type":42,"_key":281,"style":44,"markDefs":282,"children":283},"kgl",[],[284,288,292],{"_type":48,"_key":285,"text":286,"marks":287},"kgm","We build ",[],{"_type":48,"_key":289,"text":290,"marks":291},"kgn","web and mobile applications",[56],{"_type":48,"_key":293,"text":294,"marks":295},"kgo",", including customer portals, subscription products and internal business systems. We use Laravel and Vue, connect the application to your other software, and maintain it as requirements change.",[],"Discuss a project",[298,301,304,306],{"title":299,"text":300},"Purpose-built functionality","Support the tasks and requirements that existing products do not cover.",{"title":302,"text":303},"Usable interfaces","Give customers and staff a clear way to complete the work they need to do.",{"title":73,"text":305},"Link the application to payments, accounting and other business software.",{"title":307,"text":308},"Further development","Maintain and extend the application as requirements change.",{"eyebrow":310,"title":311,"intro":312,"items":313},"Development","New applications and existing platforms","The work may involve a new product, an addition to an established system or an application that needs ongoing care.",[314,317,320],{"title":315,"text":316},"Application design and development","Translate business requirements into interfaces, data structures and application behaviour. The scope depends on who will use the software and what they need to accomplish.",{"title":318,"text":319},"System integrations","Connect the application to other software through suitable APIs and integrations, including Nebula where appropriate.",{"title":321,"text":322},"Maintenance and improvements","Investigate issues, update dependencies and develop additional functionality in existing applications. Taking over a platform depends on its condition and technical requirements.",{"eyebrow":324,"title":325,"intro":326,"photo":327,"items":329},"Applications","Software for customers and operations","Custom development can support a distinct product or a particular part of the business.",{"placeholder":328},"Product screens on laptop and phone",[330,333,336,339],{"title":331,"text":332},"Customer portals","Accounts, bookings, orders and other services customers need to access directly.",{"title":334,"text":335},"Internal systems","Applications for managing jobs, records and workflows specific to your organisation.",{"title":337,"text":338},"Subscription products","Member access, recurring billing and the features that make up a subscription service.",{"title":340,"text":341},"Existing Laravel applications","Maintenance, improvements and integration work on an established codebase.",{"eyebrow":112,"title":343,"items":344},"About a software project",[345,348,351,354],{"question":346,"answer":347},"What affects the cost?","The features, integrations, data migration and operating requirements all contribute. Existing designs or software can also affect the scope. A useful estimate needs enough detail about these requirements.",{"question":349,"answer":350},"Can you work on an existing application?","We can assess whether it fits our technical experience. The framework, codebase, documentation and current hosting arrangements help establish what is involved.",{"question":352,"answer":353},"What about hosting and support?","These need to suit the application, its users and the level of support required. They form part of the project discussion rather than a single arrangement for every application.",{"question":355,"answer":356},"What about ownership and access?","Code ownership, third-party licences, repository access and hosting accounts should be explicit in the project agreement.",{"title":358,"text":359,"label":296},"Tell us about the application","Describe who will use it, what it needs to do and any existing systems it needs to work with.",{"slug":361,"order":362,"code":363,"title":364,"summary":365,"seoTitle":366,"seoDescription":367,"hero":368,"outcomes":387,"options":400,"fits":416,"faqs":435,"cta":450},"ai-at-work",3,"02 · E","AI at work","AI workspaces, assistants and integrations built around your information and business systems.","AI solutions and automation for NZ businesses","Practical AI implementation for New Zealand businesses: workspace configuration, business system connections, assistants and team training.",{"title":369,"intro":370,"primaryCta":386},"Connect AI to your business systems",[371],{"_type":42,"_key":372,"style":44,"markDefs":373,"children":374},"kgd",[],[375,378,382],{"_type":48,"_key":376,"text":286,"marks":377},"kge",[],{"_type":48,"_key":379,"text":380,"marks":381},"kgf","AI assistants, document processing tools and connections to business systems",[56],{"_type":48,"_key":383,"text":384,"marks":385},"kgg",". We also configure shared AI workspaces and train teams to use them, with access and review steps suited to the task.",[],"Discuss AI in your business",[388,391,394,397],{"title":389,"text":390},"Relevant context","Business documents and instructions available where your team uses AI.",{"title":392,"text":393},"System connections","Access to information in your existing software, within defined permissions.",{"title":395,"text":396},"Task-specific tools","Assistants and automations for particular jobs and workflows.",{"title":398,"text":399},"Practical adoption","Training and guidance tied to the tools and tasks your team uses.",{"eyebrow":171,"title":401,"intro":402,"items":403},"From workspace setup to custom integrations","The appropriate setup depends on the task, the information involved and the systems you already use.",[404,407,410,413],{"title":405,"text":406},"Tool selection and configuration","Assess tools against your requirements and existing subscriptions. Configure shared context, instructions and access for the intended use.",{"title":408,"text":409},"Connections to business systems","Build connections that let AI retrieve information or carry out defined actions in other software. MCP is one approach we use for these integrations.",{"title":411,"text":412},"Assistants and automation","Develop tools for tasks such as searching documents, extracting information and preparing responses, with review points appropriate to the work.",{"title":414,"text":415},"Team training","Help people use the configured tools, recognise their limitations and decide when an output needs checking.",{"eyebrow":417,"title":418,"intro":419,"photo":420,"items":422},"Potential applications","Where AI can help","A clear task and a way to check the output make it easier to judge whether AI is useful.",{"placeholder":421},"Photo. Team at work, natural light",[423,426,429,432],{"title":424,"text":425},"Document search","Find relevant information across policies, procedures and other business documents.",{"title":427,"text":428},"Information extraction","Read information from forms or invoices for validation and use in another system.",{"title":430,"text":431},"Inbox and support assistance","Summarise enquiries, categorise messages or prepare replies for review.",{"title":433,"text":434},"Business system queries","Retrieve customer, job or invoice information through a controlled connection.",{"eyebrow":112,"title":436,"items":437},"About AI implementation",[438,441,444,447],{"question":439,"answer":440},"Do we need a particular AI tool?","The choice depends on your tasks, subscriptions, access requirements and the information involved. An existing tool may be sufficient; some work calls for a custom integration.",{"question":442,"answer":443},"How is access to our information handled?","The setup needs to account for provider data terms, account settings and permissions in each connected system. These need to be assessed for the information and actions involved.",{"question":445,"answer":446},"Does AI need to replace our existing software?","An integration can make information in existing systems available to AI. What is possible depends on the access those systems provide.",{"question":448,"answer":449},"What is MCP?","Model Context Protocol is a standard for connecting AI applications to tools and information sources. It can be used to expose specific functions from your business software.",{"title":451,"text":452,"label":386},"Where could AI be useful in your business?","Describe the task, the tools you use and what a useful result would look like.",{"slug":454,"order":455,"code":456,"title":457,"summary":458,"seoTitle":459,"seoDescription":460,"hero":461,"outcomes":492,"options":505,"fits":518,"faqs":539,"cta":557},"data-and-reporting",4,"04 · W","Data & reporting","Connect business data and develop reports that help you understand performance and operations.","BigQuery, Power BI and data reporting in NZ","BigQuery, Power BI and data reporting from LuminateOne, a Google Cloud Partner in New Zealand. Bring your business data into useful dashboards.",{"title":462,"intro":463,"primaryCta":491},"Bring your data together for better reporting",[464],{"_type":42,"_key":465,"style":44,"markDefs":466,"children":471},"kgp",[467],{"_key":468,"_type":469,"href":470},"kgt","link","https:\u002F\u002Fcloud.google.com\u002Ffind-a-partner\u002Fpartner\u002Fluminateone",[472,475,479,483,487],{"_type":48,"_key":473,"text":286,"marks":474},"kgq",[],{"_type":48,"_key":476,"text":477,"marks":478},"kgr","reports and dashboards",[56],{"_type":48,"_key":480,"text":481,"marks":482},"kgs"," using data from your sales, job, financial and operational systems. We combine records, automate data preparation and show the detail your team needs to track performance. LuminateOne is a ",[],{"_type":48,"_key":484,"text":485,"marks":486},"kgu","Google Cloud Partner",[468],{"_type":48,"_key":488,"text":489,"marks":490},"kgv",".",[],"Discuss your reporting",[493,496,499,502],{"title":494,"text":495},"Connected information","Combine relevant records from the systems involved in a business question.",{"title":497,"text":498},"Consistent measures","Make definitions and calculations explicit so reports can be compared meaningfully.",{"title":500,"text":501},"Less manual preparation","Reduce repeated exports and spreadsheet assembly where the source systems allow it.",{"title":503,"text":504},"Useful detail","See the figures at the level needed to investigate performance and make decisions.",{"eyebrow":171,"title":506,"intro":507,"items":508},"Data connections, reports and dashboards","We connect source data, prepare it for reporting and build the reports and dashboards your team uses.",[509,512,515],{"title":510,"text":511},"Data integration","Bring information from different systems into a form that can be compared and analysed. This includes matching records, handling differences in structure and checking source data.",{"title":513,"text":514},"Reports and dashboards","Build recurring reports and dashboards in Power BI or as custom dashboards, with agreed measures, clear calculations and refresh timing suited to the source data.",{"title":516,"text":517},"Reporting infrastructure","Develop the storage, transformations and refresh arrangements needed for the reporting workload, whether it uses an existing MySQL or SQL Server database or a data warehouse such as Google BigQuery.",{"eyebrow":324,"title":519,"intro":520,"photo":521,"items":526},"Questions that span more than one system","Reporting is especially useful when understanding a result means joining operational and financial information.",{"image":522,"placeholder":525},{"src":523,"alt":524},"\u002Fimages\u002Fnebula\u002Finsights.webp","Production analytics dashboard with OEE, units against target, downtime by cause, OEE by line, output by hour and a month forecast","Photo. Reporting dashboard on a screen in a meeting",[527,530,533,536],{"title":528,"text":529},"Job and customer performance","Compare time, costs and invoices to understand margins and the work behind them.",{"title":531,"text":532},"Sales and billing","Compare pipeline, completed work and invoicing to see where revenue stands.",{"title":534,"text":535},"Management reporting","Bring agreed measures together for recurring business reviews.",{"title":537,"text":538},"Operational dashboards","Show job, stock or capacity information, with refresh timing suited to the available data.",{"eyebrow":112,"title":540,"items":541},"About data and reporting",[542,545,548,551,554],{"question":543,"answer":544},"Do we need a data warehouse?","Not necessarily. Existing reports or a direct connection may be sufficient. A separate warehouse may help when reporting needs to combine sources, preserve history or support more complex analysis.",{"question":546,"answer":547},"Are you a Google Cloud Partner?","Yes. We are listed in Google's partner directory. Google approved our data solution for BigQuery in 2024. We use Google Cloud where it suits the project, alongside tools such as Power BI.",{"question":549,"answer":550},"Can you use the tools we already have?","That depends on what they can connect to and the reporting requirements. Existing licences, access controls and maintenance needs are relevant to the choice.",{"question":552,"answer":553},"How current will the reports be?","Refresh timing depends on source system access, data volumes and how current the information needs to be. The report should make that timing clear to its users.",{"question":555,"answer":556},"What about sensitive data?","The reporting setup needs to account for who can access the source records, where data is stored and which details each audience needs to see.",{"title":558,"text":559,"label":491},"What do you need your reporting to show?","Tell us which systems hold the information and what you need to understand from it. We'll come back with how we would approach it.",{"slug":561,"order":562,"code":33,"title":563,"summary":564,"seoTitle":565,"seoDescription":566,"hero":567,"outcomes":587,"options":600,"fits":614,"faqs":633,"cta":645},"tech-advice",5,"Technical advice","Help reviewing a software proposal, assessing an existing application or deciding what to build.","Technology advice for NZ businesses","Technology advice for New Zealand businesses and startups. Assess software proposals, review existing systems and consider what to build or buy.",{"title":568,"intro":569,"primaryCta":586},"Advice on software, suppliers and investment",[570],{"_type":42,"_key":571,"style":44,"markDefs":572,"children":573},"kg9",[],[574,578,582],{"_type":48,"_key":575,"text":576,"marks":577},"kga","We review ",[],{"_type":48,"_key":579,"text":580,"marks":581},"kgb","software proposals and existing applications",[56],{"_type":48,"_key":583,"text":584,"marks":585},"kgc",", compare suppliers and help plan development work. A review can cover scope, costs, technical condition and the work needed to maintain or extend a system.",[],"Discuss a decision",[588,591,594,597],{"title":589,"text":590},"Compare proposals","Understand differences in scope, assumptions and ongoing costs.",{"title":592,"text":593},"Assess existing systems","Identify technical constraints, maintenance needs and areas of risk.",{"title":595,"text":596},"Plan investment","Consider priorities, dependencies and the implications of delaying work.",{"title":598,"text":599},"Build or buy","Compare custom development with products already available.",{"eyebrow":601,"title":602,"intro":603,"items":604},"What we review","Proposals, applications and project plans","Get a review of a specific proposal, an existing application or the scope of a new project.",[605,608,611],{"title":606,"text":607},"Software and supplier reviews","Examine what a proposal covers, what it leaves open and how it fits your requirements. A useful comparison includes implementation, maintenance and the cost of future changes.",{"title":609,"text":610},"System reviews","Look at the software you rely on, its dependencies and the practical options for maintaining, extending or replacing it.",{"title":612,"text":613},"Technology planning","Connect proposed technical work to business priorities, with attention to cost, risk and the order in which decisions need to be made.",{"eyebrow":615,"title":616,"intro":617,"photo":618,"items":620},"Where it helps","When a technical review helps","Before choosing a supplier, replacing a system or taking over an application.",{"placeholder":619},"Photo. Two people at a table going through a document",[621,624,627,630],{"title":622,"text":623},"Comparing quotes","Establish whether suppliers are pricing the same requirements and responsibilities.",{"title":625,"text":626},"Replacing a system","Consider data migration, existing integrations and the effect on day-to-day operations.",{"title":628,"text":629},"Taking over software","Understand the condition of an application and what is needed to keep it running.",{"title":631,"text":632},"Planning a new product","Explore technical choices before committing to a substantial build.",{"eyebrow":112,"title":634,"items":635},"About technical advice",[636,639,642],{"question":637,"answer":638},"Can you review a proposal from another supplier?","Yes. We can help assess its scope, assumptions and technical approach against what you need.",{"question":640,"answer":641},"Can advice lead to development work?","Yes. We also build software and integrations. Where we propose our own services or Nebula platform, we explain how they fit the requirements.",{"question":643,"answer":644},"What should we send you?","A description of the decision, any relevant proposal or system details, and any deadline you are working towards. Please leave out passwords and sensitive records.",{"title":646,"text":647,"label":648},"Tell us what you’re weighing up","Send us the proposal, application details or project outline you want help with.","Get in touch",{"slug":650,"order":132,"label":651,"title":652,"summary":653,"seoDescription":654,"intro":655,"signs":680,"help":687,"firstStep":699,"relatedServices":702},"owners-and-ceos","Owners and CEOs","Software for running your business","Build or improve business software, connect systems and reduce manual work.","Software development and integrations for New Zealand business owners and CEOs. Improve existing applications, connect systems and automate manual work.",[656,672],{"_type":42,"_key":657,"style":44,"markDefs":658,"children":659},"k9",[],[660,664,668],{"_type":48,"_key":661,"text":662,"marks":663},"ka","We build and maintain ",[],{"_type":48,"_key":665,"text":666,"marks":667},"kb","business software",[56],{"_type":48,"_key":669,"text":670,"marks":671},"kc",", connect systems and automate recurring work. That can mean a new application, improvements to an existing platform or an integration that removes repeated data entry.",[],{"_type":42,"_key":673,"style":44,"markDefs":674,"children":675},"kd",[],[676],{"_type":48,"_key":677,"text":678,"marks":679},"ke","We also develop AI tools and reporting, and can help review a software proposal or plan a project before development starts.",[],{"title":681,"items":682},"Work you may need done",[683,684,685,686],"Extending or replacing a system the business relies on.","Reducing manual work between applications.","Bringing business information together for reporting.","Comparing proposals for new software.",{"title":688,"items":689},"Build, connect and improve your systems",[690,693,696],{"title":691,"text":692},"Improve existing systems","Explore whether an integration, reporting change or targeted development could address the need.",{"title":694,"text":695},"Develop new software","Build applications where the business needs functionality that existing products do not provide.",{"title":697,"text":698},"Review a proposal or plan a project","Work through requirements, costs and dependencies before development starts.",{"title":700,"text":701,"label":648},"Discuss your priorities","Tell us what you want to improve and any decisions or deadlines involved.",[131,270,561],[704,847,986,1187,1405,1557,1657,1803,2009,2087,2171,2286,2360,2427,2650],{"slug":705,"title":706,"date":707,"excerpt":708,"audiences":709,"author":712,"body":713},"bringing-machine-data-into-business-systems","Bringing machine data into business systems","2026-10-28","How machine readings, production records and service schedules can come together in an operational dashboard.",[710,711],"gms-with-a-brief","ctos-and-tech-leads","Nathanael Hollings",[714,722,741,750,758,766,774,782,790,798,806,814,822,830],{"_type":42,"_key":715,"style":44,"markDefs":716,"children":717},"kae",[],[718],{"_type":48,"_key":719,"text":720,"marks":721},"kaf","A machine can report its status and output while production targets and service schedules sit in separate systems. Connecting those records lets a team see what is running, what has been produced and what needs attention.",[],{"_type":42,"_key":723,"style":44,"markDefs":724,"children":728},"kag",[725],{"_key":726,"_type":469,"href":727},"kai","\u002Fservices\u002Fintegrations",[729,733,737],{"_type":48,"_key":730,"text":731,"marks":732},"kah","Our ",[],{"_type":48,"_key":734,"text":735,"marks":736},"kaj","Nebula example dashboard",[726],{"_type":48,"_key":738,"text":739,"marks":740},"kak"," shows how that information can appear together for a manufacturing site.",[],{"_type":42,"_key":742,"style":743,"markDefs":744,"children":745},"kal","h2",[],[746],{"_type":48,"_key":747,"text":748,"marks":749},"kam","Collect the machine data",[],{"_type":42,"_key":751,"style":44,"markDefs":752,"children":753},"kan",[],[754],{"_type":48,"_key":755,"text":756,"marks":757},"kao","The connection depends on the interfaces the equipment provides. Data might come through a controller, gateway, API or database. Establish which readings are available, their units and how often they update.",[],{"_type":42,"_key":759,"style":44,"markDefs":760,"children":761},"kap",[],[762],{"_type":48,"_key":763,"text":764,"marks":765},"kaq","Give each machine a consistent identifier so its readings can be matched to production records and maintenance schedules.",[],{"_type":42,"_key":767,"style":743,"markDefs":768,"children":769},"kar",[],[770],{"_type":48,"_key":771,"text":772,"marks":773},"kas","Add the surrounding records",[],{"_type":42,"_key":775,"style":44,"markDefs":776,"children":777},"kat",[],[778],{"_type":48,"_key":779,"text":780,"marks":781},"kau","An output count is more useful alongside a target and the period it covers. Machine status needs similar context: a planned service stop should be distinguishable from an unexpected interruption.",[],{"_type":42,"_key":783,"style":44,"markDefs":784,"children":785},"kav",[],[786],{"_type":48,"_key":787,"text":788,"marks":789},"kaw","The example brings machine readings, production figures, staff attendance and service schedules into separate views within one dashboard. Each view serves a particular operational task.",[],{"_type":42,"_key":791,"style":743,"markDefs":792,"children":793},"kax",[],[794],{"_type":48,"_key":795,"text":796,"marks":797},"kay","Make connection failures visible",[],{"_type":42,"_key":799,"style":44,"markDefs":800,"children":801},"kaz",[],[802],{"_type":48,"_key":803,"text":804,"marks":805},"kb0","A last-known reading can look current if the screen gives no indication of when it arrived. Show timestamps and connection status, and make missing or delayed data visible.",[],{"_type":42,"_key":807,"style":44,"markDefs":808,"children":809},"kb1",[],[810],{"_type":48,"_key":811,"text":812,"marks":813},"kb2","When the integration writes information into another system, it also needs rules for retries and duplicate records.",[],{"_type":42,"_key":815,"style":743,"markDefs":816,"children":817},"kb3",[],[818],{"_type":48,"_key":819,"text":820,"marks":821},"kb4","Use the same data beyond the dashboard",[],{"_type":42,"_key":823,"style":44,"markDefs":824,"children":825},"kb5",[],[826],{"_type":48,"_key":827,"text":828,"marks":829},"kb6","Connected machine data can feed production reporting, maintenance systems and alerts. Those connections need agreed definitions for events, thresholds and the records passed between systems.",[],{"_type":42,"_key":831,"style":44,"markDefs":832,"children":835},"kb7",[833],{"_key":834,"_type":469,"href":28},"kb9",[836,840,844],{"_type":48,"_key":837,"text":838,"marks":839},"kb8","To discuss equipment and software you want to connect, ",[],{"_type":48,"_key":841,"text":842,"marks":843},"kba","tell us about your systems",[834],{"_type":48,"_key":845,"text":489,"marks":846},"kbb",[],{"slug":848,"title":849,"date":850,"excerpt":851,"audiences":852,"author":712,"body":853},"upgrading-an-existing-laravel-application","Upgrading an existing Laravel application","2026-10-27","The code, dependencies and day-to-day workflows involved in moving an existing application forward.",[711,650],[854,862,870,878,886,894,902,910,918,926,934,942,950,958],{"_type":42,"_key":855,"style":44,"markDefs":856,"children":857},"kbc",[],[858],{"_type":48,"_key":859,"text":860,"marks":861},"kbd","A Laravel upgrade involves the application around the framework as well as the framework itself. PHP versions, third-party packages, background jobs and external connections can all affect the work.",[],{"_type":42,"_key":863,"style":743,"markDefs":864,"children":865},"kbe",[],[866],{"_type":48,"_key":867,"text":868,"marks":869},"kbf","Establish what is running",[],{"_type":42,"_key":871,"style":44,"markDefs":872,"children":873},"kbg",[],[874],{"_type":48,"_key":875,"text":876,"marks":877},"kbh","Start with the application code, installed versions, hosting configuration and deployment process. Identify scheduled tasks, queue workers and services such as payments or email that the application depends on.",[],{"_type":42,"_key":879,"style":44,"markDefs":880,"children":881},"kbi",[],[882],{"_type":48,"_key":883,"text":884,"marks":885},"kbj","That inventory helps establish which parts need to change together and whether the upgrade can be delivered in stages.",[],{"_type":42,"_key":887,"style":743,"markDefs":888,"children":889},"kbk",[],[890],{"_type":48,"_key":891,"text":892,"marks":893},"kbl","Check the workflows people rely on",[],{"_type":42,"_key":895,"style":44,"markDefs":896,"children":897},"kbm",[],[898],{"_type":48,"_key":899,"text":900,"marks":901},"kbn","Identify the tasks customers and staff need to complete. Sign-in, permissions, billing, imports and exports often deserve particular attention.",[],{"_type":42,"_key":903,"style":44,"markDefs":904,"children":905},"kbo",[],[906],{"_type":48,"_key":907,"text":908,"marks":909},"kbp","Existing automated tests help, but the upgrade also needs checks against how the application is used. Add coverage where a regression would interrupt an important workflow.",[],{"_type":42,"_key":911,"style":743,"markDefs":912,"children":913},"kbq",[],[914],{"_type":48,"_key":915,"text":916,"marks":917},"kbr","Update and verify dependencies",[],{"_type":42,"_key":919,"style":44,"markDefs":920,"children":921},"kbs",[],[922],{"_type":48,"_key":923,"text":924,"marks":925},"kbt","Review the upgrade instructions for each version involved and check compatibility across the application’s packages. Some dependencies may need replacing or changes to the code that uses them.",[],{"_type":42,"_key":927,"style":44,"markDefs":928,"children":929},"kbu",[],[930],{"_type":48,"_key":931,"text":932,"marks":933},"kbv","Run the updated application in a separate environment, including its scheduled tasks and background processing. Check integrations using suitable test accounts or sample data.",[],{"_type":42,"_key":935,"style":743,"markDefs":936,"children":937},"kbw",[],[938],{"_type":48,"_key":939,"text":940,"marks":941},"kbx","Plan the release",[],{"_type":42,"_key":943,"style":44,"markDefs":944,"children":945},"kby",[],[946],{"_type":48,"_key":947,"text":948,"marks":949},"kbz","Deployment may include database changes, updated workers and changes to the hosting environment. Prepare backups, decide how the release will be checked and establish a recovery plan before making the change.",[],{"_type":42,"_key":951,"style":44,"markDefs":952,"children":953},"kc0",[],[954],{"_type":48,"_key":955,"text":956,"marks":957},"kc1","After release, check errors, queued jobs and the workflows identified earlier.",[],{"_type":42,"_key":959,"style":44,"markDefs":960,"children":966},"kc2",[961,964],{"_key":962,"_type":469,"href":963},"kc4","\u002Fservices\u002Flaravel",{"_key":965,"_type":469,"href":28},"kc7",[967,971,975,979,982],{"_type":48,"_key":968,"text":969,"marks":970},"kc3","We ",[],{"_type":48,"_key":972,"text":973,"marks":974},"kc5","upgrade and maintain Laravel applications",[962],{"_type":48,"_key":976,"text":977,"marks":978},"kc6",", including codebases started by other developers. ",[],{"_type":48,"_key":980,"text":648,"marks":981},"kc8",[965],{"_type":48,"_key":983,"text":984,"marks":985},"kc9"," with the application’s current version and what needs attention.",[],{"slug":987,"title":988,"date":989,"excerpt":990,"audiences":991,"author":712,"body":992},"the-board-wants-an-ai-plan","Preparing an AI proposal for the board","2026-10-20","A practical way to frame the opportunity, risks and decision involved in a proposed use of AI.",[710,650],[993,1001,1009,1017,1025,1033,1041,1049,1057,1065,1073,1081,1089,1097,1105,1113,1121,1130,1138,1146,1154,1162,1170],{"_type":42,"_key":994,"style":44,"markDefs":995,"children":996},"kca",[],[997],{"_type":48,"_key":998,"text":999,"marks":1000},"kcb","An AI proposal is easier to assess when it identifies a business problem and a specific decision. A broad ambition to adopt AI leaves important questions open: what would change, who would use it and how would the business judge the result?",[],{"_type":42,"_key":1002,"style":44,"markDefs":1003,"children":1004},"kcc",[],[1005],{"_type":48,"_key":1006,"text":1007,"marks":1008},"kcd","The detail needed will depend on the organisation and the proposed use. The following questions provide a starting point.",[],{"_type":42,"_key":1010,"style":743,"markDefs":1011,"children":1012},"kce",[],[1013],{"_type":48,"_key":1014,"text":1015,"marks":1016},"kcf","Understand current use",[],{"_type":42,"_key":1018,"style":44,"markDefs":1019,"children":1020},"kcg",[],[1021],{"_type":48,"_key":1022,"text":1023,"marks":1024},"kch","Find out which AI tools staff already use, for which tasks and with what information. Include tools available through existing subscriptions as well as those purchased separately.",[],{"_type":42,"_key":1026,"style":44,"markDefs":1027,"children":1028},"kci",[],[1029],{"_type":48,"_key":1030,"text":1031,"marks":1032},"kcj","This establishes a baseline. It can reveal useful applications, duplicated spending and information-handling questions that need attention.",[],{"_type":42,"_key":1034,"style":743,"markDefs":1035,"children":1036},"kck",[],[1037],{"_type":48,"_key":1038,"text":1039,"marks":1040},"kcl","Define the proposed task",[],{"_type":42,"_key":1042,"style":44,"markDefs":1043,"children":1044},"kcm",[],[1045],{"_type":48,"_key":1046,"text":1047,"marks":1048},"kcn","Describe the work as it happens today. Record the volume, time involved, common exceptions and consequences of a mistake. Consider whether a simpler software change or conventional automation could meet the need.",[],{"_type":42,"_key":1050,"style":44,"markDefs":1051,"children":1052},"kco",[],[1053],{"_type":48,"_key":1054,"text":1055,"marks":1056},"kcp","For an AI-assisted task, identify what the tool would receive, what it would produce and who would check the result.",[],{"_type":42,"_key":1058,"style":743,"markDefs":1059,"children":1060},"kcq",[],[1061],{"_type":48,"_key":1062,"text":1063,"marks":1064},"kcr","Make the evaluation measurable",[],{"_type":42,"_key":1066,"style":44,"markDefs":1067,"children":1068},"kcs",[],[1069],{"_type":48,"_key":1070,"text":1071,"marks":1072},"kct","A limited trial can help establish whether the proposed approach is useful. Define the cost, the people involved and the conditions for continuing or stopping.",[],{"_type":42,"_key":1074,"style":44,"markDefs":1075,"children":1076},"kcu",[],[1077],{"_type":48,"_key":1078,"text":1079,"marks":1080},"kcv","Measure quality alongside time saved. For document extraction, for example, processing time alone would miss the cost of correcting inaccurate fields. Include exception handling and review effort in the comparison.",[],{"_type":42,"_key":1082,"style":743,"markDefs":1083,"children":1084},"kcw",[],[1085],{"_type":48,"_key":1086,"text":1087,"marks":1088},"kcx","Address information and accountability",[],{"_type":42,"_key":1090,"style":44,"markDefs":1091,"children":1092},"kcy",[],[1093],{"_type":48,"_key":1094,"text":1095,"marks":1096},"kcz","Identify what data would be involved, which services would receive it and what access the tool would need. Assess the relevant account settings and provider terms for that use.",[],{"_type":42,"_key":1098,"style":44,"markDefs":1099,"children":1100},"kd0",[],[1101],{"_type":48,"_key":1102,"text":1103,"marks":1104},"kd1","Set out who is responsible for approving access, reviewing outputs and responding when the tool produces an unsuitable result.",[],{"_type":42,"_key":1106,"style":743,"markDefs":1107,"children":1108},"kd2",[],[1109],{"_type":48,"_key":1110,"text":1111,"marks":1112},"kd3","State the decision clearly",[],{"_type":42,"_key":1114,"style":44,"markDefs":1115,"children":1116},"kd4",[],[1117],{"_type":48,"_key":1118,"text":1119,"marks":1120},"kd5","The proposal should explain:",[],{"_type":42,"_key":1122,"style":44,"markDefs":1123,"children":1124,"listItem":1129,"level":132},"kd6",[],[1125],{"_type":48,"_key":1126,"text":1127,"marks":1128},"kd7","The business problem and current baseline",[],"number",{"_type":42,"_key":1131,"style":44,"markDefs":1132,"children":1133,"listItem":1129,"level":132},"kd8",[],[1134],{"_type":48,"_key":1135,"text":1136,"marks":1137},"kd9","The proposed use and alternatives considered",[],{"_type":42,"_key":1139,"style":44,"markDefs":1140,"children":1141,"listItem":1129,"level":132},"kda",[],[1142],{"_type":48,"_key":1143,"text":1144,"marks":1145},"kdb","The expected cost and resources required",[],{"_type":42,"_key":1147,"style":44,"markDefs":1148,"children":1149,"listItem":1129,"level":132},"kdc",[],[1150],{"_type":48,"_key":1151,"text":1152,"marks":1153},"kdd","The information, access and risks involved",[],{"_type":42,"_key":1155,"style":44,"markDefs":1156,"children":1157,"listItem":1129,"level":132},"kde",[],[1158],{"_type":48,"_key":1159,"text":1160,"marks":1161},"kdf","The evaluation measures and decision points",[],{"_type":42,"_key":1163,"style":44,"markDefs":1164,"children":1165},"kdg",[],[1166],{"_type":48,"_key":1167,"text":1168,"marks":1169},"kdh","The board should be able to see what it is being asked to approve and what evidence will inform the next decision.",[],{"_type":42,"_key":1171,"style":44,"markDefs":1172,"children":1175},"kdi",[1173],{"_key":1174,"_type":469,"href":28},"kdk",[1176,1180,1184],{"_type":48,"_key":1177,"text":1178,"marks":1179},"kdj","To discuss a proposed application, ",[],{"_type":48,"_key":1181,"text":1182,"marks":1183},"kdl","get in touch",[1174],{"_type":48,"_key":1185,"text":489,"marks":1186},"kdm",[],{"slug":1188,"title":1189,"date":1190,"excerpt":1191,"audiences":1192,"author":712,"body":1194},"reading-a-software-quote","What to look for in a software proposal","2026-10-06","Scope, assumptions, ownership and ongoing costs: the details that make software proposals easier to compare.",[650,1193],"startup-founders",[1195,1203,1211,1219,1227,1235,1243,1252,1260,1268,1276,1284,1292,1300,1308,1316,1324,1332,1340,1348,1356,1364,1372,1380,1388],{"_type":42,"_key":1196,"style":44,"markDefs":1197,"children":1198},"kdn",[],[1199],{"_type":48,"_key":1200,"text":1201,"marks":1202},"kdo","Different prices can reflect different interpretations of the same brief. Before comparing totals, establish whether the proposals cover the same work and responsibilities.",[],{"_type":42,"_key":1204,"style":743,"markDefs":1205,"children":1206},"kdp",[],[1207],{"_type":48,"_key":1208,"text":1209,"marks":1210},"kdq","Look for concrete scope",[],{"_type":42,"_key":1212,"style":44,"markDefs":1213,"children":1214},"kdr",[],[1215],{"_type":48,"_key":1216,"text":1217,"marks":1218},"kds","A proposal should describe the tasks the software will support. A label such as “user management” leaves room for interpretation. Describing how staff sign in, which records they can access and who manages permissions gives a clearer basis for discussion.",[],{"_type":42,"_key":1220,"style":44,"markDefs":1221,"children":1222},"kdt",[],[1223],{"_type":48,"_key":1224,"text":1225,"marks":1226},"kdu","Look for assumptions and exclusions as well as features. They help explain where the quoted price could change.",[],{"_type":42,"_key":1228,"style":743,"markDefs":1229,"children":1230},"kdv",[],[1231],{"_type":48,"_key":1232,"text":1233,"marks":1234},"kdw","Check the surrounding work",[],{"_type":42,"_key":1236,"style":44,"markDefs":1237,"children":1238},"kdx",[],[1239],{"_type":48,"_key":1240,"text":1241,"marks":1242},"kdy","Depending on the project, the proposal may need to address:",[],{"_type":42,"_key":1244,"style":44,"markDefs":1245,"children":1246,"listItem":1251,"level":132},"kdz",[],[1247],{"_type":48,"_key":1248,"text":1249,"marks":1250},"ke0","Interface design and responsibility for approving it",[],"bullet",{"_type":42,"_key":1253,"style":44,"markDefs":1254,"children":1255,"listItem":1251,"level":132},"ke1",[],[1256],{"_type":48,"_key":1257,"text":1258,"marks":1259},"ke2","Testing and acceptance criteria",[],{"_type":42,"_key":1261,"style":44,"markDefs":1262,"children":1263,"listItem":1251,"level":132},"ke3",[],[1264],{"_type":48,"_key":1265,"text":1266,"marks":1267},"ke4","Data migration and validation",[],{"_type":42,"_key":1269,"style":44,"markDefs":1270,"children":1271,"listItem":1251,"level":132},"ke5",[],[1272],{"_type":48,"_key":1273,"text":1274,"marks":1275},"ke6","Third-party services and integrations",[],{"_type":42,"_key":1277,"style":44,"markDefs":1278,"children":1279,"listItem":1251,"level":132},"ke7",[],[1280],{"_type":48,"_key":1281,"text":1282,"marks":1283},"ke8","Training and documentation",[],{"_type":42,"_key":1285,"style":44,"markDefs":1286,"children":1287,"listItem":1251,"level":132},"ke9",[],[1288],{"_type":48,"_key":1289,"text":1290,"marks":1291},"kea","Hosting, backups, monitoring and maintenance",[],{"_type":42,"_key":1293,"style":44,"markDefs":1294,"children":1295},"keb",[],[1296],{"_type":48,"_key":1297,"text":1298,"marks":1299},"kec","Some of this work may sit with your team or another provider. The important point is to make responsibility and cost explicit.",[],{"_type":42,"_key":1301,"style":743,"markDefs":1302,"children":1303},"ked",[],[1304],{"_type":48,"_key":1305,"text":1306,"marks":1307},"kee","Separate ownership from access",[],{"_type":42,"_key":1309,"style":44,"markDefs":1310,"children":1311},"kef",[],[1312],{"_type":48,"_key":1313,"text":1314,"marks":1315},"keg","Copyright ownership, licence terms and access to a repository are different questions. Having a copy of the code does not by itself establish what you are entitled to do with it.",[],{"_type":42,"_key":1317,"style":44,"markDefs":1318,"children":1319},"keh",[],[1320],{"_type":48,"_key":1321,"text":1322,"marks":1323},"kei","Ask what you will own, what is licensed from third parties and what access is needed to maintain or move the application. These arrangements should be clear in the agreement.",[],{"_type":42,"_key":1325,"style":743,"markDefs":1326,"children":1327},"kej",[],[1328],{"_type":48,"_key":1329,"text":1330,"marks":1331},"kek","Understand the pricing basis",[],{"_type":42,"_key":1333,"style":44,"markDefs":1334,"children":1335},"kel",[],[1336],{"_type":48,"_key":1337,"text":1338,"marks":1339},"kem","For fixed-price work, check the scope, assumptions and treatment of changes. For time-and-materials work, check rates, estimates, spending visibility and how additional work is authorised.",[],{"_type":42,"_key":1341,"style":44,"markDefs":1342,"children":1343},"ken",[],[1344],{"_type":48,"_key":1345,"text":1346,"marks":1347},"keo","Neither model removes uncertainty. The useful comparison is how each proposal handles it and what information you will have while the project is under way.",[],{"_type":42,"_key":1349,"style":743,"markDefs":1350,"children":1351},"kep",[],[1352],{"_type":48,"_key":1353,"text":1354,"marks":1355},"keq","Include ongoing operation",[],{"_type":42,"_key":1357,"style":44,"markDefs":1358,"children":1359},"ker",[],[1360],{"_type":48,"_key":1361,"text":1362,"marks":1363},"kes","Ask which costs continue after launch, what support covers and what response arrangements apply. Consider third-party subscriptions and usage charges as well as development and hosting.",[],{"_type":42,"_key":1365,"style":44,"markDefs":1366,"children":1367},"ket",[],[1368],{"_type":48,"_key":1369,"text":1370,"marks":1371},"keu","An initial build price is only one part of the cost of operating the software.",[],{"_type":42,"_key":1373,"style":743,"markDefs":1374,"children":1375},"kev",[],[1376],{"_type":48,"_key":1377,"text":1378,"marks":1379},"kew","Resolve differences before deciding",[],{"_type":42,"_key":1381,"style":44,"markDefs":1382,"children":1383},"kex",[],[1384],{"_type":48,"_key":1385,"text":1386,"marks":1387},"key","Ask suppliers to explain unclear items and identify gaps between proposals. A shared understanding of the scope makes both the price comparison and the eventual agreement more useful.",[],{"_type":42,"_key":1389,"style":44,"markDefs":1390,"children":1393},"kez",[1391],{"_key":1392,"_type":469,"href":28},"kf1",[1394,1398,1402],{"_type":48,"_key":1395,"text":1396,"marks":1397},"kf0","If you would like technical input on a proposal, ",[],{"_type":48,"_key":1399,"text":1400,"marks":1401},"kf2","contact us",[1392],{"_type":48,"_key":1403,"text":489,"marks":1404},"kf3",[],{"slug":1406,"title":1407,"date":1408,"excerpt":1409,"audiences":1410,"author":712,"body":1411},"what-to-build-first","What to include in your first software release","2026-09-22","Choose the user tasks and evidence that matter before committing to a larger feature list.",[1193],[1412,1420,1428,1436,1444,1452,1460,1468,1476,1484,1492,1500,1508,1516,1524,1532,1540],{"_type":42,"_key":1413,"style":44,"markDefs":1414,"children":1415},"kf4",[],[1416],{"_type":48,"_key":1417,"text":1418,"marks":1419},"kf5","A first release has to be useful enough for people to try, while leaving room to learn from how they use it. Defining that boundary is a product decision as much as a technical one.",[],{"_type":42,"_key":1421,"style":743,"markDefs":1422,"children":1423},"kf6",[],[1424],{"_type":48,"_key":1425,"text":1426,"marks":1427},"kf7","Identify what you need to learn",[],{"_type":42,"_key":1429,"style":44,"markDefs":1430,"children":1431},"kf8",[],[1432],{"_type":48,"_key":1433,"text":1434,"marks":1435},"kf9","State the question the release should help answer. It might concern willingness to pay, repeated use or whether the product improves a particular task.",[],{"_type":42,"_key":1437,"style":44,"markDefs":1438,"children":1439},"kfa",[],[1440],{"_type":48,"_key":1441,"text":1442,"marks":1443},"kfb","“Customers can complete a booking without assistance” is more useful than “the booking feature works”. It identifies a behaviour you can observe.",[],{"_type":42,"_key":1445,"style":743,"markDefs":1446,"children":1447},"kfc",[],[1448],{"_type":48,"_key":1449,"text":1450,"marks":1451},"kfd","Prioritise complete user tasks",[],{"_type":42,"_key":1453,"style":44,"markDefs":1454,"children":1455},"kfe",[],[1456],{"_type":48,"_key":1457,"text":1458,"marks":1459},"kff","Identify the steps needed for someone to receive the core benefit of the product. Then separate supporting requirements from features that could wait.",[],{"_type":42,"_key":1461,"style":44,"markDefs":1462,"children":1463},"kfg",[],[1464],{"_type":48,"_key":1465,"text":1466,"marks":1467},"kfh","A small feature list is only useful if it still supports a complete experience. Account recovery, accessibility or clear error handling may matter more to that experience than an additional headline feature.",[],{"_type":42,"_key":1469,"style":743,"markDefs":1470,"children":1471},"kfi",[],[1472],{"_type":48,"_key":1473,"text":1474,"marks":1475},"kfj","Consider manual work deliberately",[],{"_type":42,"_key":1477,"style":44,"markDefs":1478,"children":1479},"kfk",[],[1480],{"_type":48,"_key":1481,"text":1482,"marks":1483},"kfl","Some administrative tasks can be handled manually while volumes are low. That can help clarify the process before investing in automation.",[],{"_type":42,"_key":1485,"style":44,"markDefs":1486,"children":1487},"kfm",[],[1488],{"_type":48,"_key":1489,"text":1490,"marks":1491},"kfn","Include the staff time, access requirements and consequences of errors in that decision. Manual work still needs appropriate controls, particularly where it involves customer information or payments.",[],{"_type":42,"_key":1493,"style":743,"markDefs":1494,"children":1495},"kfo",[],[1496],{"_type":48,"_key":1497,"text":1498,"marks":1499},"kfp","Account for what happens after launch",[],{"_type":42,"_key":1501,"style":44,"markDefs":1502,"children":1503},"kfq",[],[1504],{"_type":48,"_key":1505,"text":1506,"marks":1507},"kfr","The first release needs to be operated as well as built. Consider hosting, support, maintenance and the services it depends on.",[],{"_type":42,"_key":1509,"style":44,"markDefs":1510,"children":1511},"kfs",[],[1512],{"_type":48,"_key":1513,"text":1514,"marks":1515},"kft","Technical choices should suit the current scope while making likely changes understandable. That does not require building every possible future feature in advance.",[],{"_type":42,"_key":1517,"style":743,"markDefs":1518,"children":1519},"kfu",[],[1520],{"_type":48,"_key":1521,"text":1522,"marks":1523},"kfv","Learn from actual use",[],{"_type":42,"_key":1525,"style":44,"markDefs":1526,"children":1527},"kfw",[],[1528],{"_type":48,"_key":1529,"text":1530,"marks":1531},"kfx","Observe whether people can complete the intended tasks and where they need help. Compare what happens with the question you set out to answer.",[],{"_type":42,"_key":1533,"style":44,"markDefs":1534,"children":1535},"kfy",[],[1536],{"_type":48,"_key":1537,"text":1538,"marks":1539},"kfz","That evidence can guide the next investment: improve the core experience, add a missing capability or reconsider the product assumption.",[],{"_type":42,"_key":1541,"style":44,"markDefs":1542,"children":1545},"kg0",[1543],{"_key":1544,"_type":469,"href":28},"kg2",[1546,1550,1554],{"_type":48,"_key":1547,"text":1548,"marks":1549},"kg1","To discuss a first release, ",[],{"_type":48,"_key":1551,"text":1552,"marks":1553},"kg3","tell us about your product",[1544],{"_type":48,"_key":1555,"text":489,"marks":1556},"kg4",[],{"slug":1558,"title":1559,"date":1560,"excerpt":1561,"audiences":1562,"author":1563,"body":1564},"luminateone-and-exaba-announce-exciting-merger","LuminateOne and Exaba Announce Exciting Merger","2024-07-02","Exaba enthusiastically welcomes LuminateOne's talented team as part of its mission to revolutionize data storage and help businesses maximize the value of…",[],"Nick Humphries",[1565,1590,1598,1602,1610,1618,1626,1634,1642],{"_type":42,"_key":1566,"style":44,"markDefs":1567,"children":1568},"k21",[],[1569,1573,1578,1582,1586],{"_type":48,"_key":1570,"text":1571,"marks":1572},"k22","LuminateOne is proud to announce its merger with Exaba, an innovative company delivering cost-effective, petabyte-scale object storage solutions. The name ",[],{"_type":48,"_key":1574,"text":1575,"marks":1576},"k23","Exaba",[1577],"em",{"_type":48,"_key":1579,"text":1580,"marks":1581},"k24"," is inspired by the term ",[],{"_type":48,"_key":1583,"text":1584,"marks":1585},"k25","exabyte",[1577],{"_type":48,"_key":1587,"text":1588,"marks":1589},"k26",", a measurement of storage symbolizing the immense scale of data the company specializes in. Exaba is very pleased to welcome the LuminateOne team into its mission of revolutionizing data storage and empowering businesses to unlock the full potential of their in-house datasets.",[],{"_type":42,"_key":1591,"style":44,"markDefs":1592,"children":1593},"k27",[],[1594],{"_type":48,"_key":1595,"text":1596,"marks":1597},"k28","Exaba’s core platform provides scalable object storage, managing data from terabytes to petabytes with cost efficiency. It empowers businesses to securely store and process the growing volumes of data generated by their operations, from structured datasets to unstructured data streams. Exaba’s focus on scalability and innovation ensures its solutions meet the increasing demands of today’s data-driven landscape.",[],{"_type":1599,"_key":1600,"alt":1559,"src":1601},"figure","k29","\u002Fimages\u002Farticles\u002Fluminateone-and-exaba-announce-exciting-merger-1.webp",{"_type":42,"_key":1603,"style":44,"markDefs":1604,"children":1605},"k2a",[],[1606],{"_type":48,"_key":1607,"text":1608,"marks":1609},"k2b","Exaba approached LuminateOne due to their team's expertise in data storage and analytic infrastructure. LuminateOne’s talented team joins Exaba’s mission, bringing expertise in system integration, and Artificial Intelligence.",[],{"_type":42,"_key":1611,"style":44,"markDefs":1612,"children":1613},"k2c",[],[1614],{"_type":48,"_key":1615,"text":1616,"marks":1617},"k2d","Now operating as the Exaba Solutions team, they specialize in designing tools and AI models to turn stored data into actionable insights. Together, the combined expertise will enable businesses to integrate separate systems, create bespoke analytics, and unlock new opportunities for growth.",[],{"_type":42,"_key":1619,"style":44,"markDefs":1620,"children":1621},"k2e",[],[1622],{"_type":48,"_key":1623,"text":1624,"marks":1625},"k2f","This merger underscores a shared vision: providing businesses with the tools to seamlessly manage, analyze, and leverage their data to its fullest potential.",[],{"_type":42,"_key":1627,"style":44,"markDefs":1628,"children":1629},"k2g",[],[1630],{"_type":48,"_key":1631,"text":1632,"marks":1633},"k2h","The merger reaffirms both companies’ dedication to delivering innovative and reliable solutions tailored to their client needs. Customers will benefit from the enhanced capabilities, enjoying a seamless experience that blends Exaba’s robust data infrastructure with LuminateOne’s innovative solutions. This merger ensures clients can stay ahead in the rapidly changing data landscape.",[],{"_type":42,"_key":1635,"style":44,"markDefs":1636,"children":1637},"k2i",[],[1638],{"_type":48,"_key":1639,"text":1640,"marks":1641},"k2j","Both teams are excited to be operating from the Hiko Hub, the University of Waikato’s newest initiative for tech-driven growth. This collaborative environment fosters innovation and connections with local Hamilton businesses.",[],{"_type":42,"_key":1643,"style":44,"markDefs":1644,"children":1648},"k2k",[1645],{"_key":1646,"_type":469,"href":1647},"k2m","https:\u002F\u002Fexaba.com\u002F",[1649,1653],{"_type":48,"_key":1650,"text":1651,"marks":1652},"k2l","To explore how Exaba and its newly integrated Solutions team can help transform your business, visit ",[],{"_type":48,"_key":1654,"text":1655,"marks":1656},"k2n","Exaba’s website.",[1646],{"slug":1658,"title":1659,"date":1660,"excerpt":1661,"audiences":1662,"author":1563,"body":1663},"how-gpt-4o-is-revolutionizing-web-scraping","How GPT-4o is Revolutionizing Web Scraping","2024-05-15","GPT-4o is revolutionizing web scraping with advanced vision capabilities, enabling efficient data extraction through screenshots, bypassing captchas, and…",[711],[1664,1672,1681,1689,1701,1713,1725,1733,1741,1744,1747,1755,1763,1766,1774,1792,1795],{"_type":42,"_key":1665,"style":44,"markDefs":1666,"children":1667},"k2o",[],[1668],{"_type":48,"_key":1669,"text":1670,"marks":1671},"k2p","At LuminateOne, we're passionate about leveraging cutting-edge technology to simplify complex tasks. With the recent release of GPT-4o, one of the areas I believe we will see a significant improvements in is AI-powered web scraping.",[],{"_type":42,"_key":1673,"style":1674,"markDefs":1675,"children":1676},"k2q","h3",[],[1677],{"_type":48,"_key":1678,"text":1679,"marks":1680},"k2r","Simplifying Bots with Screenshots: A Game-Changer",[],{"_type":42,"_key":1682,"style":44,"markDefs":1683,"children":1684},"k2s",[],[1685],{"_type":48,"_key":1686,"text":1687,"marks":1688},"k2t","One of the most innovative methods is using screenshots in GPT-4o instead of text extraction. This approach leverages GPT-4o's vision capabilities to capture entire web pages and extract key details, bypassing the need for complex parsing logic. Using this approach has some interesting impacts on web scraping tools:",[],{"_type":42,"_key":1690,"style":44,"markDefs":1691,"children":1692,"listItem":1129,"level":132},"k2u",[],[1693,1697],{"_type":48,"_key":1694,"text":1695,"marks":1696},"k2v","Token Efficiency",[56],{"_type":48,"_key":1698,"text":1699,"marks":1700},"k2w",": The vision API often uses fewer tokens than text extraction (sometimes by up to 60%!), which can significantly reduce costs. GTP-4o also has a 50% reduced token cost than \"gpt-4-turbo\", lowering the cost of running these bots.",[],{"_type":42,"_key":1702,"style":44,"markDefs":1703,"children":1704,"listItem":1129,"level":132},"k2x",[],[1705,1709],{"_type":48,"_key":1706,"text":1707,"marks":1708},"k2y","Bypasses Traditional Content Protection",[56],{"_type":48,"_key":1710,"text":1711,"marks":1712},"k2z",": Websites sometimes embed protected content in images to thwart traditional scrapers. (this is not recommended; always get permission from the website owner before bypassing protections).",[],{"_type":42,"_key":1714,"style":44,"markDefs":1715,"children":1716,"listItem":1129,"level":132},"k30",[],[1717,1721],{"_type":48,"_key":1718,"text":1719,"marks":1720},"k31","Simplicity and Robustness",[56],{"_type":48,"_key":1722,"text":1723,"marks":1724},"k32",": Capturing screenshots and using Optical Character Recognition (OCR) to extract key details is simpler and more robust than traditional parsing methods.",[],{"_type":42,"_key":1726,"style":44,"markDefs":1727,"children":1728},"k33",[],[1729],{"_type":48,"_key":1730,"text":1731,"marks":1732},"k34","On the downside, we've found that using the vision API for very large web pages requires more backend \"tiling\" and, as a result, slightly diminishes the quality of the results.",[],{"_type":42,"_key":1734,"style":44,"markDefs":1735,"children":1736},"k35",[],[1737],{"_type":48,"_key":1738,"text":1739,"marks":1740},"k36","It’s worth noting here, that the call was incorrect, due to the size of the webpage (as the chat client will compress and shrink the image size and “tiles” it). When only the contact details are provided (i.e. less information and more pixels per character), the accuracy improves).",[],{"_type":1599,"_key":1742,"alt":1659,"src":1743},"k37","\u002Fimages\u002Farticles\u002Fhow-gpt-4o-is-revolutionizing-web-scraping-1.webp",{"_type":1599,"_key":1745,"alt":1659,"src":1746},"k38","\u002Fimages\u002Farticles\u002Fhow-gpt-4o-is-revolutionizing-web-scraping-2.webp",{"_type":42,"_key":1748,"style":1674,"markDefs":1749,"children":1750},"k39",[],[1751],{"_type":48,"_key":1752,"text":1753,"marks":1754},"k3a","Captchas Bypassed with GPT-4o",[],{"_type":42,"_key":1756,"style":44,"markDefs":1757,"children":1758},"k3b",[],[1759],{"_type":48,"_key":1760,"text":1761,"marks":1762},"k3c","One of GPT-4o's slightly more worrying features is its very cheap and effective method for bypassing captchas. This capability can be demonstrated with a simple example of how GPT-4o can recognize and solve captcha challenges, such as matching the hand-pointing direction with the object direction. This ease of bypassing captchas will likely lead to increased unauthorized web scraping activities.",[],{"_type":1599,"_key":1764,"alt":1659,"src":1765},"k3d","\u002Fimages\u002Farticles\u002Fhow-gpt-4o-is-revolutionizing-web-scraping-3.webp",{"_type":42,"_key":1767,"style":1674,"markDefs":1768,"children":1769},"k3e",[],[1770],{"_type":48,"_key":1771,"text":1772,"marks":1773},"k3f","Combining APIs with AI for Powerful Tools",[],{"_type":42,"_key":1775,"style":44,"markDefs":1776,"children":1779},"k3g",[1777],{"_key":1778,"_type":469,"href":963},"k3i",[1780,1784,1788],{"_type":48,"_key":1781,"text":1782,"marks":1783},"k3h","Combining off-the-shelf APIs, like Google Search, with GPT-4o can yield incredibly powerful tools. This integration is often where the \"magic\" of AI happens, enabling efficient data-gathering analysis. For our context, we wanted to look at who is developing with and using ",[],{"_type":48,"_key":1785,"text":1786,"marks":1787},"k3j","Laravel",[1778],{"_type":48,"_key":1789,"text":1790,"marks":1791},"k3k"," around New Zealand.",[],{"_type":1599,"_key":1793,"alt":1659,"src":1794},"k3l","\u002Fimages\u002Farticles\u002Fhow-gpt-4o-is-revolutionizing-web-scraping-4.webp",{"_type":42,"_key":1796,"style":44,"markDefs":1797,"children":1798},"k3m",[],[1799],{"_type":48,"_key":1800,"text":1801,"marks":1802},"k3n","Web scraping is just one example of how AI, particularly GPT-4o, makes complex tasks easier and more accessible. At LuminateOne, we've seen firsthand how AI can transform various aspects of our work, from data analysis to customer support, by automating repetitive tasks and providing deeper insights faster than ever before.",[],{"slug":1804,"title":1805,"date":1806,"excerpt":1807,"audiences":1808,"author":1563,"body":1809},"waikato-company-seal-laravel-deal","Waikato company seal Laravel deal","2024-04-30","A Waikato-based app developer has forged a milestone relationship with an international associate.",[],[1810,1839,1842,1849,1857,1865,1873,1881,1889,1897,1905,1913,1921,1929,1937,1945,1953,1961,1969,1977,1985,1993,2001],{"_type":42,"_key":1811,"style":44,"markDefs":1812,"children":1819},"k3o",[1813,1816],{"_key":1814,"_type":469,"href":1815},"k3q","https:\u002F\u002Fwbn.co.nz\u002F",{"_key":1817,"_type":469,"href":1818},"k3t","https:\u002F\u002Fwww.yumpu.com\u002Fen\u002Fembed\u002Fview\u002FMb0L5IOrSEeskGFf",[1820,1824,1828,1832,1835],{"_type":48,"_key":1821,"text":1822,"marks":1823},"k3p","See the ",[],{"_type":48,"_key":1825,"text":1826,"marks":1827},"k3r","Waikato Business News",[1814],{"_type":48,"_key":1829,"text":1830,"marks":1831},"k3s"," article about LuminateOne at ",[],{"_type":48,"_key":1833,"text":1818,"marks":1834},"k3u",[1817],{"_type":48,"_key":1836,"text":1837,"marks":1838},"k3v",", copy below:",[],{"_type":1599,"_key":1840,"alt":1563,"src":1841},"k3w","\u002Fimages\u002Farticles\u002Fwaikato-company-seal-laravel-deal-1.webp",{"_type":42,"_key":1843,"style":44,"markDefs":1844,"children":1845},"k3x",[],[1846],{"_type":48,"_key":1847,"text":1807,"marks":1848},"k3y",[],{"_type":42,"_key":1850,"style":44,"markDefs":1851,"children":1852},"k3z",[],[1853],{"_type":48,"_key":1854,"text":1855,"marks":1856},"k40","LuminateOne is the first New Zealand company – and just the second in Australasia – to become a partner for the Laravel program, launched in the United States in 2010.",[],{"_type":42,"_key":1858,"style":44,"markDefs":1859,"children":1860},"k41",[],[1861],{"_type":48,"_key":1862,"text":1863,"marks":1864},"k42","Matthew Whyte, Business Development Manager at LuminateOne, says Laravel essentially provides the skeleton for any software development.",[],{"_type":42,"_key":1866,"style":44,"markDefs":1867,"children":1868},"k43",[],[1869],{"_type":48,"_key":1870,"text":1871,"marks":1872},"k44","“A framework is what really makes or breaks a software project.”",[],{"_type":42,"_key":1874,"style":44,"markDefs":1875,"children":1876},"k45",[],[1877],{"_type":48,"_key":1878,"text":1879,"marks":1880},"k46","He says while anyone can use Laravel, a formal process was followed for LuminateOne to become a platinum partner.",[],{"_type":42,"_key":1882,"style":44,"markDefs":1883,"children":1884},"k47",[],[1885],{"_type":48,"_key":1886,"text":1887,"marks":1888},"k48","Australia boasts a single emerald partner and Whyte understands the parent business behind the platform is not currently accepting other requests.",[],{"_type":42,"_key":1890,"style":44,"markDefs":1891,"children":1892},"k49",[],[1893],{"_type":48,"_key":1894,"text":1895,"marks":1896},"k4a","He says the formal partnership with Laravel provides a “competitive advantage” for LuminateOne.",[],{"_type":42,"_key":1898,"style":44,"markDefs":1899,"children":1900},"k4b",[],[1901],{"_type":48,"_key":1902,"text":1903,"marks":1904},"k4c","Laravel has partners in North America and Europe.",[],{"_type":42,"_key":1906,"style":44,"markDefs":1907,"children":1908},"k4d",[],[1909],{"_type":48,"_key":1910,"text":1911,"marks":1912},"k4e","The partnership programme aims to help companies establish greater credibility and client trust.",[],{"_type":42,"_key":1914,"style":44,"markDefs":1915,"children":1916},"k4f",[],[1917],{"_type":48,"_key":1918,"text":1919,"marks":1920},"k4g","To become a partner, LuminateOne had to demonstrate experience in custom Laravel development, with case studies and references to attest proficiency.",[],{"_type":42,"_key":1922,"style":44,"markDefs":1923,"children":1924},"k4h",[],[1925],{"_type":48,"_key":1926,"text":1927,"marks":1928},"k4i","To maintain partnership status, companies must demonstrate their ongoing commitment to the Laravel “ecosystem”, such as contributing blog posts and tutorials relating to the program or passing on their knowledge through boot camps and training.",[],{"_type":42,"_key":1930,"style":44,"markDefs":1931,"children":1932},"k4j",[],[1933],{"_type":48,"_key":1934,"text":1935,"marks":1936},"k4k","LuminateOne Managing Director Nick Humphries says the partnership gives LuminateOne staff direct access to resources, tools and support which makes for a quicker turnaround in building an app.”",[],{"_type":42,"_key":1938,"style":44,"markDefs":1939,"children":1940},"k4l",[],[1941],{"_type":48,"_key":1942,"text":1943,"marks":1944},"k4m","He says using Laravel “takes months off” the development cycle.",[],{"_type":42,"_key":1946,"style":44,"markDefs":1947,"children":1948},"k4n",[],[1949],{"_type":48,"_key":1950,"text":1951,"marks":1952},"k4o","A recent example was a Waikato tannery which engaged LuminateOne to improve its reporting processes.",[],{"_type":42,"_key":1954,"style":44,"markDefs":1955,"children":1956},"k4p",[],[1957],{"_type":48,"_key":1958,"text":1959,"marks":1960},"k4q","Using Laravel, Nick says LuminateOne developed a system to “pull” data from grading machines to associated managers.",[],{"_type":42,"_key":1962,"style":44,"markDefs":1963,"children":1964},"k4r",[],[1965],{"_type":48,"_key":1966,"text":1967,"marks":1968},"k4s","Apps can be tailored to suit the particular business for any type of activity, ranging from merchandising through to healthcare.",[],{"_type":42,"_key":1970,"style":44,"markDefs":1971,"children":1972},"k4t",[],[1973],{"_type":48,"_key":1974,"text":1975,"marks":1976},"k4u","LuminateOne had its origins in rural Matamata. It now operates out of Hamilton and also works in the areas of data and AI (artificial intelligence) software development.",[],{"_type":42,"_key":1978,"style":44,"markDefs":1979,"children":1980},"k4v",[],[1981],{"_type":48,"_key":1982,"text":1983,"marks":1984},"k4w","The company, which has 14 staff including 10 developers, started working with Laravel in 2015.",[],{"_type":42,"_key":1986,"style":44,"markDefs":1987,"children":1988},"k4x",[],[1989],{"_type":48,"_key":1990,"text":1991,"marks":1992},"k4y","Laravel was created in the United States by software developer Taylor Otwell, who who envisioned an online tool that could simplify the development process and offer features to boost productivity.",[],{"_type":42,"_key":1994,"style":44,"markDefs":1995,"children":1996},"k4z",[],[1997],{"_type":48,"_key":1998,"text":1999,"marks":2000},"k50","The name is a reference to Laravel Bay, a stretch of water in the Seychelles.",[],{"_type":42,"_key":2002,"style":44,"markDefs":2003,"children":2004},"k51",[],[2005],{"_type":48,"_key":2006,"text":2007,"marks":2008},"k52","It is used by a wide variety of companies around the world including the New York Times and BBC News.",[],{"slug":2010,"title":2011,"date":2012,"excerpt":2013,"audiences":2014,"author":1563,"body":2015},"rapid-mobile-app-development-with-flutterflow","Rapid Mobile & Tablet App Development with FlutterFlow","2024-03-19","FlutterFlow allows for rapid mobile application prototyping using a drag-and-drop editor, while providing full code capabilities under the hood.",[1193],[2016,2019,2038,2046,2061,2069],{"_type":1599,"_key":2017,"alt":2011,"src":2018},"k53","\u002Fimages\u002Farticles\u002Frapid-mobile-app-development-with-flutterflow-1.webp",{"_type":42,"_key":2020,"style":44,"markDefs":2021,"children":2025},"k54",[2022],{"_key":2023,"_type":469,"href":2024},"k56","\u002Fservices\u002Fweb-and-mobile",[2026,2030,2034],{"_type":48,"_key":2027,"text":2028,"marks":2029},"k55","Mobile app development with cross-platform frameworks like ",[],{"_type":48,"_key":2031,"text":2032,"marks":2033},"k57","React Native",[2023],{"_type":48,"_key":2035,"text":2036,"marks":2037},"k58"," or Ionic are quicker than writing separate codebases for iOS and Android, but isn’t rapid development.",[],{"_type":42,"_key":2039,"style":44,"markDefs":2040,"children":2041},"k59",[],[2042],{"_type":48,"_key":2043,"text":2044,"marks":2045},"k5a","For a while, low-code options have been promising rapid application development, but run into problems when you want to do anything outside of the provided box. If “the cloud” is running on somebody else’s server, then “low\u002Fno-code” as running on somebody else’s code, which has its own limitations.",[],{"_type":42,"_key":2047,"style":44,"markDefs":2048,"children":2052},"k5b",[2049],{"_key":2050,"_type":469,"href":2051},"k5c","https:\u002F\u002Fflutterflow.io\u002F",[2053,2057],{"_type":48,"_key":2054,"text":2055,"marks":2056},"k5d","FlutterFlow",[2050],{"_type":48,"_key":2058,"text":2059,"marks":2060},"k5e"," has changed this, allowing for rapid application prototyping using a drag-and-drop editor, while providing full code capabilities under the hood. This means that basic functionality can be built in a no\u002Flow-code environment, receive end-user feedback, and then iterate with either drag-n-drop changes, or code changes (using Dart). Not only does the editing interface and existing integrations speed up development, but the quicker develop-test feedback loop improves the ability to get client feedback, resulting in an improved end-product.",[],{"_type":42,"_key":2062,"style":44,"markDefs":2063,"children":2064},"k5f",[],[2065],{"_type":48,"_key":2066,"text":2067,"marks":2068},"k5g","FlutterFlow is part of a larger trend towards democratising technology. As low-code platforms continue to evolve, they are breaking down barriers-to-entry. FlutterFlow does this with an emphasis on ease-of-use, collaboration, and integration with other Google and third-party systems. Although there is still maintenance to keep FlutterFlow apps compliant with App Store and Play Store requirements, this is a more streamlined process especially for Google’s Play Store.",[],{"_type":42,"_key":2070,"style":44,"markDefs":2071,"children":2074},"k5h",[2072],{"_key":2073,"_type":469,"href":28},"k5j",[2075,2079,2083],{"_type":48,"_key":2076,"text":2077,"marks":2078},"k5i","If you would like to develop a mobile app for your organisation, or want to raise your game for an existing app, ",[],{"_type":48,"_key":2080,"text":2081,"marks":2082},"k5k","get in touch and we can have a chat",[2073],{"_type":48,"_key":2084,"text":2085,"marks":2086},"k5l"," about the options.",[],{"slug":2088,"title":485,"date":2089,"excerpt":2090,"audiences":2091,"author":1563,"body":2092},"google-cloud-partner","2024-03-08","Our Data Utopia solution has been approved by Google as a Solutions Qualification, and we have completed the additional steps to become approved as a…",[],[2093,2096,2108,2146,2154],{"_type":1599,"_key":2094,"alt":485,"src":2095},"k5m","\u002Fimages\u002Farticles\u002Fgoogle-cloud-partner-1.webp",{"_type":42,"_key":2097,"style":44,"markDefs":2098,"children":2099},"k5n",[],[2100,2104],{"_type":48,"_key":2101,"text":2102,"marks":2103},"k5o","LuminateOne has been approved as a Google Cloud Partner",[56],{"_type":48,"_key":2105,"text":2106,"marks":2107},"k5p",". This means we’ve demonstrated expertise and success using Google Cloud technologies to help customers achieve their goals.",[],{"_type":42,"_key":2109,"style":44,"markDefs":2110,"children":2118},"k5q",[2111,2114,2116],{"_key":2112,"_type":469,"href":2113},"k5s","\u002Fservices\u002Fdata-and-reporting",{"_key":2115,"_type":469,"href":2113},"k5v",{"_key":2117,"_type":469,"href":2051},"k5y",[2119,2123,2127,2131,2135,2139,2143],{"_type":48,"_key":2120,"text":2121,"marks":2122},"k5r","In particular, our ",[],{"_type":48,"_key":2124,"text":2125,"marks":2126},"k5t","Data Solution",[2112],{"_type":48,"_key":2128,"text":2129,"marks":2130},"k5u"," has been approved by Google as a Solutions Qualification for their ",[],{"_type":48,"_key":2132,"text":2133,"marks":2134},"k5w","BigQuery",[2115],{"_type":48,"_key":2136,"text":2137,"marks":2138},"k5x"," platform. We also have expertise with a number of other Google tools, including Google Maps integrations (in both web and mobile apps), Google Analytics (which integrates with our Data Utopia solution), and ",[],{"_type":48,"_key":2140,"text":2141,"marks":2142},"k5z","rapid application development with FlutterFlow",[2117],{"_type":48,"_key":2144,"text":489,"marks":2145},"k60",[],{"_type":42,"_key":2147,"style":44,"markDefs":2148,"children":2149},"k61",[],[2150],{"_type":48,"_key":2151,"text":2152,"marks":2153},"k62","We enjoy learning and applying both emerging and established technologies to solve business problems. We pick and choose the best systems for the project or client. Google Cloud forms part of this toolset, alongside other technologies.",[],{"_type":42,"_key":2155,"style":44,"markDefs":2156,"children":2159},"k63",[2157],{"_key":2158,"_type":469,"href":28},"k65",[2160,2164,2168],{"_type":48,"_key":2161,"text":2162,"marks":2163},"k64","If you have a project where you’re thinking about using Google Cloud, ",[],{"_type":48,"_key":2165,"text":2166,"marks":2167},"k66","please get in touch",[2158],{"_type":48,"_key":2169,"text":489,"marks":2170},"k67",[],{"slug":2172,"title":2173,"date":2174,"excerpt":2175,"audiences":2176,"author":1563,"body":2177},"claude3-generates-better-snake-game-than-chatgpt4","Claude3 Generates Better Snake Game Than ChatGPT4","2024-03-07","Claude3 generates a better Snake game than ChatGPT. But don’t take my word for it, have a go playing the game yourself…",[711],[2178,2208,2220,2224,2236,2239,2259,2267,2270,2278],{"_type":42,"_key":2179,"style":44,"markDefs":2180,"children":2187},"k68",[2181,2184],{"_key":2182,"_type":469,"href":2183},"k6a","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fclaude-3-family",{"_key":2185,"_type":469,"href":2186},"k6d","https:\u002F\u002Fchat.openai.com\u002F",[2188,2192,2196,2200,2204],{"_type":48,"_key":2189,"text":2190,"marks":2191},"k69","With the release of ",[],{"_type":48,"_key":2193,"text":2194,"marks":2195},"k6b","Claude3 (free)",[2182],{"_type":48,"_key":2197,"text":2198,"marks":2199},"k6c",", I put it up against my current ",[],{"_type":48,"_key":2201,"text":2202,"marks":2203},"k6e","ChatGPT4",[2185],{"_type":48,"_key":2205,"text":2206,"marks":2207},"k6f"," Pro subscription.",[],{"_type":42,"_key":2209,"style":44,"markDefs":2210,"children":2211},"k6g",[],[2212,2216],{"_type":48,"_key":2213,"text":2214,"marks":2215},"k6h","1. Writing a satirical job description",[56],{"_type":48,"_key":2217,"text":2218,"marks":2219},"k6i",". Both did fine, but it’s difficult to be objective about which is “better”. I can say (that in all the tasks) Claude3 generated the output much quicker than ChatGPT (for now - we’ll see how speed changes with popularity):",[],{"_type":1599,"_key":2221,"alt":2222,"src":2223},"k6j","Output of Claude3 (left) and ChatGPT4 (right)","\u002Fimages\u002Farticles\u002Fclaude3-generates-better-snake-game-than-chatgpt4-1.webp",{"_type":42,"_key":2225,"style":44,"markDefs":2226,"children":2227},"k6k",[],[2228,2232],{"_type":48,"_key":2229,"text":2230,"marks":2231},"k6l","2. Calculating Pi to 1000 decimal places and a sort function",[56],{"_type":48,"_key":2233,"text":2234,"marks":2235},"k6m","in PHP. Here the winner was ChatGPT for the sort function, but Claude for calculating pi; the winners used an existing library rather than writing a custom function:",[],{"_type":1599,"_key":2237,"alt":2173,"src":2238},"k6n","\u002Fimages\u002Farticles\u002Fclaude3-generates-better-snake-game-than-chatgpt4-2.webp",{"_type":42,"_key":2240,"style":44,"markDefs":2241,"children":2242},"k6o",[],[2243,2247,2251,2255],{"_type":48,"_key":2244,"text":2245,"marks":2246},"k6p","3. Ok the above two tests weren’t very helpful for the “real world”. Let’s get down to business, a game of Snake",[56],{"_type":48,"_key":2248,"text":2249,"marks":2250},"k6q",". The input to each was “",[],{"_type":48,"_key":2252,"text":2253,"marks":2254},"k6r","create html file of the snake game, using javascript",[1577],{"_type":48,"_key":2256,"text":2257,"marks":2258},"k6s","”, both required a reply to fix bugs. Both games work, but I prefer playing the Claude version. Press any arrow key to start playing:",[],{"_type":42,"_key":2260,"style":44,"markDefs":2261,"children":2262},"k6t",[],[2263],{"_type":48,"_key":2264,"text":2265,"marks":2266},"k6u","The ChatGTP version had a few UI issues, like letting the snake slightly out of the box, not being as pretty, and not embedding well in other webpages. So we just have screenshot below:",[],{"_type":1599,"_key":2268,"alt":2173,"src":2269},"k6v","\u002Fimages\u002Farticles\u002Fclaude3-generates-better-snake-game-than-chatgpt4-3.webp",{"_type":42,"_key":2271,"style":1674,"markDefs":2272,"children":2273},"k6w",[],[2274],{"_type":48,"_key":2275,"text":2276,"marks":2277},"k6x","Summary",[],{"_type":42,"_key":2279,"style":44,"markDefs":2280,"children":2281},"k6y",[],[2282],{"_type":48,"_key":2283,"text":2284,"marks":2285},"k6z","Both ChatGPT and Claude did the job, but I’d say overall, Claude is faster, better, and cheaper (I was using Claude-free against GPT-pro). There’s a paid version of Claude that’s apparently even better, will have to investigate that next time. And if Claude gains traction, we’ll see how the speed and costs change over time.",[],{"slug":2287,"title":2288,"date":2289,"excerpt":2290,"audiences":2291,"author":1563,"body":2292},"fundamentally-what-is-artificial-intelligence-ai","Fundamentally what is Artificial Intelligence?","2024-02-02","A book I read recently suggested that AI is about prediction: predicting the next word in a sentence (ChatGPT) or predicting the next move in a game like…",[650,710],[2293,2301,2317,2325,2328,2336,2344,2352],{"_type":42,"_key":2294,"style":44,"markDefs":2295,"children":2296},"k70",[],[2297],{"_type":48,"_key":2298,"text":2299,"marks":2300},"k71","A book I read recently suggested that AI is about prediction: predicting the next word in a sentence (ChatGPT) or predicting the next move in a game like chess or Go.",[],{"_type":42,"_key":2302,"style":44,"markDefs":2303,"children":2304},"k72",[],[2305,2309,2313],{"_type":48,"_key":2306,"text":2307,"marks":2308},"k73","However, I would disagree, and say it’s about calculation. Prior to the rise of neural networks, computer software like spam filters or Google Translate used statistical models like Bayesian filters. Prediction (spam or ham) is based on the outcome of those calculations. Prediction with modern neural networks (so-called ",[],{"_type":48,"_key":2310,"text":2311,"marks":2312},"k74","deep learning",[1577],{"_type":48,"_key":2314,"text":2315,"marks":2316},"k75",") under-the-hood is still fundamentally calculations, just with better results than the previous generation of statistical modelling.",[],{"_type":42,"_key":2318,"style":44,"markDefs":2319,"children":2320},"k76",[],[2321],{"_type":48,"_key":2322,"text":2323,"marks":2324},"k77","What makes neural networks different from other types of calculations? Neural networks succeed at looking at a very wide variety of data, and lots of it. 120 zettabytes of data will be generated this year, that’s 329 million terabytes of data created each day. This data generated by humans has been growing exponentially:",[],{"_type":1599,"_key":2326,"alt":2288,"src":2327},"k78","\u002Fimages\u002Farticles\u002Ffundamentally-what-is-artificial-intelligence-ai-1.webp",{"_type":42,"_key":2329,"style":44,"markDefs":2330,"children":2331},"k79",[],[2332],{"_type":48,"_key":2333,"text":2334,"marks":2335},"k7a","With a large amount of data, it needs to be processed efficiently. Even with the similarly exponential rise in compute power, we need algorithms that can take shortcuts in calculating big data, without impinging on the outputs. This is where multi-layered neural networks succeed.",[],{"_type":42,"_key":2337,"style":44,"markDefs":2338,"children":2339},"k7b",[],[2340],{"_type":48,"_key":2341,"text":2342,"marks":2343},"k7c","In other words, AI applications are growing by leaps and bounds in recent years through the combination of increased data availability to train models on, increased processing power (thanks Nvidia), and improved mathematical models (neural networks). These calculations are often used to create predictions: is an email spam or not (creating a cleaner inbox) or creating content (generative-AI) like writing a first level response to support-desk email query. However it is not always predictions, under the hood it is still calculations: think the facial, image, or voice recognition on your phone.",[],{"_type":42,"_key":2345,"style":44,"markDefs":2346,"children":2347},"k7d",[],[2348],{"_type":48,"_key":2349,"text":2350,"marks":2351},"k7e","What makes AI special is its ability to work with real-world scenarios. It can extrapolate from a real-world data, e.g. turnign something fuzzy like a low-light camera image into something meaningful: recognise the low-light image is you, and unlock your phone. The real-world isn’t black-and-white, and AI can work with that, providing meaningful output like voice, images, text, taking various forms like efficient routing, summarising meetings, or even healthcare diagnostics.",[],{"_type":42,"_key":2353,"style":44,"markDefs":2354,"children":2355},"k7f",[],[2356],{"_type":48,"_key":2357,"text":2358,"marks":2359},"k7g","This allows for human labour to be freed up for the important work of interaction with clients. AI is never going to replace the human touch, and expert human time may be more available when we have AI tools doing parts of the job for us. However, one caveat is AI isn’t always intelligent: feed in poor quality data, and you’re certain to get garbage out.",[],{"slug":2361,"title":2362,"date":2363,"excerpt":2364,"audiences":2365,"author":712,"body":2366},"new-website-launched","New Website Launched","2023-03-29","We launched a new mobile-friendly website, using Squarespace, AI generated images, and old-fashioned elbow grease.",[],[2367,2370,2378,2386,2394,2402,2410],{"_type":1599,"_key":2368,"alt":2362,"src":2369},"k7h","\u002Fimages\u002Farticles\u002Fnew-website-launched-1.webp",{"_type":42,"_key":2371,"style":44,"markDefs":2372,"children":2373},"k7i",[],[2374],{"_type":48,"_key":2375,"text":2376,"marks":2377},"k7j","Today we launched our new website, with layouts for both mobile and desktop.",[],{"_type":42,"_key":2379,"style":44,"markDefs":2380,"children":2381},"k7k",[],[2382],{"_type":48,"_key":2383,"text":2384,"marks":2385},"k7l","“It was time for a refresh” says Nick Humphries, founder and Managing Director.",[],{"_type":42,"_key":2387,"style":44,"markDefs":2388,"children":2389},"k7m",[],[2390],{"_type":48,"_key":2391,"text":2392,"marks":2393},"k7n","With 58% of web traffic now being on mobile devices, it was important to design for mobile first, and then create the desktop\u002Flaptop version after that.",[],{"_type":42,"_key":2395,"style":44,"markDefs":2396,"children":2397},"k7o",[],[2398],{"_type":48,"_key":2399,"text":2400,"marks":2401},"k7p","We also took a modern approach to content\u002Fimage generation, using both traditional photography and AI-generated images. We see the future of photography making use of AI tools, both for touching-up traditional photos (speeding up manual editing) as well as rapidly producing prototypes and generic images using generative AI.",[],{"_type":42,"_key":2403,"style":44,"markDefs":2404,"children":2405},"k7q",[],[2406],{"_type":48,"_key":2407,"text":2408,"marks":2409},"k7r","We decided to use Squarespace due to its ease-of-use. Yes we are software developers and understand very complex systems, but see the importance of “right-sizing” and having a website that can also be edited by non-technical staff. The Squarespace templating and grid-system is easy to use, and creates consistent pages layouts, but has the downside of not allowing fine-grained pixel-perfect adjustments.",[],{"_type":42,"_key":2411,"style":44,"markDefs":2412,"children":2415},"k7s",[2413],{"_key":2414,"_type":469,"href":28},"k7u",[2416,2420,2424],{"_type":48,"_key":2417,"text":2418,"marks":2419},"k7t","We will continue adding examples, case studies, and articles to our website over the coming months. If you have any feedback on what articles you would be interested in, ",[],{"_type":48,"_key":2421,"text":2422,"marks":2423},"k7v","please let us know",[2414],{"_type":48,"_key":2425,"text":489,"marks":2426},"k7w",[],{"slug":2428,"title":2429,"date":2430,"excerpt":2431,"audiences":2432,"author":1563,"body":2433},"github-copilot","Introducing Github Copilot","2022-07-06","We asked our developers what their favourite tool is for work. Within minutes we had multiple replies with the same answer: GitHub Copilot.",[711],[2434,2437,2452,2460,2468,2476,2484,2492,2500,2508,2516,2524,2532,2540,2548,2556,2564,2572,2580,2599,2607,2626,2634,2642],{"_type":1599,"_key":2435,"alt":2429,"src":2436},"k7x","\u002Fimages\u002Farticles\u002Fgithub-copilot-1.webp",{"_type":42,"_key":2438,"style":44,"markDefs":2439,"children":2443},"k7y",[2440],{"_key":2441,"_type":469,"href":2442},"k80","https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot",[2444,2448],{"_type":48,"_key":2445,"text":2446,"marks":2447},"k7z","We asked our developers what their favourite tool is for work. Within minutes we had multiple replies with the same answer: ",[],{"_type":48,"_key":2449,"text":2450,"marks":2451},"k81","GitHub Copilot.",[2441],{"_type":42,"_key":2453,"style":44,"markDefs":2454,"children":2455},"k82",[],[2456],{"_type":48,"_key":2457,"text":2458,"marks":2459},"k83","GitHub Copilot is the new AI coding assistant that acts like an autofill for developers. GitHub’s Thomas Dohmke describes Copilot as “an editor extension that suggests code in real-time”. The tool had been in technical preview for a year before announcing its release to General Availability (GA) status just last month.",[],{"_type":42,"_key":2461,"style":44,"markDefs":2462,"children":2463},"k84",[],[2464],{"_type":48,"_key":2465,"text":2466,"marks":2467},"k85","Over its year in preview, 1.2 million developers (including the LuminateOne team) trialled the tool. Through evolutionary computation, scanning millions of lines of code committed by GitHub community members, Copilot is now versed in billions of lines of code in various code languages. The aim of the tool is to spend less time creating boilerplate and repetitive code patterns, and more time focusing on the end goal: building great software.",[],{"_type":42,"_key":2469,"style":44,"markDefs":2470,"children":2471},"k86",[],[2472],{"_type":48,"_key":2473,"text":2474,"marks":2475},"k87","In the LuminateOne offices, we’ve been using GitHub Copilot since February this year, and we’re quite impressed! In five months, we’ve noticed a real difference in our workflow and we’ve rounded up our developer’s thoughts to give you our pros & cons.",[],{"_type":42,"_key":2477,"style":743,"markDefs":2478,"children":2479},"k88",[],[2480],{"_type":48,"_key":2481,"text":2482,"marks":2483},"k89","Pros",[],{"_type":42,"_key":2485,"style":1674,"markDefs":2486,"children":2487},"k8a",[],[2488],{"_type":48,"_key":2489,"text":2490,"marks":2491},"k8b","Effective timesaver",[],{"_type":42,"_key":2493,"style":44,"markDefs":2494,"children":2495},"k8c",[],[2496],{"_type":48,"_key":2497,"text":2498,"marks":2499},"k8d","This is hands-down the biggest perk of Copilot. Having the ability to autocomplete lines of code and sometimes whole functions have been a huge timesaver. It took some getting used to, but once we understood how to frame inline code documentation in a way that the AI could easily compute, we found the code output surprisingly helpful. By not sweating the small stuff, we can focus on building the truly awesome software our team are capable of.",[],{"_type":42,"_key":2501,"style":1674,"markDefs":2502,"children":2503},"k8e",[],[2504],{"_type":48,"_key":2505,"text":2506,"marks":2507},"k8f","Makes helpful predictions",[],{"_type":42,"_key":2509,"style":44,"markDefs":2510,"children":2511},"k8g",[],[2512],{"_type":48,"_key":2513,"text":2514,"marks":2515},"k8h","Much like predictive text, Copilot suggests the ending to your lines of code. It’s truly been great to see finicky, repetitive code complete itself, keeping us from banging our heads against our desks over minor issues. This means we save our brainpower for the more creative & challenging sections of code and algorithms.",[],{"_type":42,"_key":2517,"style":1674,"markDefs":2518,"children":2519},"k8i",[],[2520],{"_type":48,"_key":2521,"text":2522,"marks":2523},"k8j","Improves inline code documentation",[],{"_type":42,"_key":2525,"style":44,"markDefs":2526,"children":2527},"k8k",[],[2528],{"_type":48,"_key":2529,"text":2530,"marks":2531},"k8l","Copilot has encouraged us to write better inline code documentation. This is because the tool generates suggestions based on the code documentation you give it. Kodie Upton, our development team lead noted that “our documentation has had to be more verbose so that Copilot can properly suggest the next stage, which in turn is good for returning or future developers to use for reference.”",[],{"_type":42,"_key":2533,"style":44,"markDefs":2534,"children":2535},"k8m",[],[2536],{"_type":48,"_key":2537,"text":2538,"marks":2539},"k8n","It has encouraged all developers to get into the practice of writing great documentation. In particular, we’ve found that the need for comprehensive inline code documentation has helped our junior developers to instil good habits early on in their development journey. Not only is it helping them realise solutions and deploy them, but it’s helping them improve their code readability and writing skills.",[],{"_type":42,"_key":2541,"style":743,"markDefs":2542,"children":2543},"k8o",[],[2544],{"_type":48,"_key":2545,"text":2546,"marks":2547},"k8p","Cons",[],{"_type":42,"_key":2549,"style":1674,"markDefs":2550,"children":2551},"k8q",[],[2552],{"_type":48,"_key":2553,"text":2554,"marks":2555},"k8r","Doesn’t work in all situations",[],{"_type":42,"_key":2557,"style":44,"markDefs":2558,"children":2559},"k8s",[],[2560],{"_type":48,"_key":2561,"text":2562,"marks":2563},"k8t","Fortunately for us developers, Copilot is not perfect. Kodie uses the tool for many different languages including Python, JavaScript, TypeScript and more. But he has found limitations when working within templates. “It struggles to work well within templates that mix different languages, like HTML blocks within PHP files, for example”. This isn’t surprising for a tool still in its infancy, we imagine this will change in later renditions.",[],{"_type":42,"_key":2565,"style":1674,"markDefs":2566,"children":2567},"k8u",[],[2568],{"_type":48,"_key":2569,"text":2570,"marks":2571},"k8v","OpenSource Licensing Issues",[],{"_type":42,"_key":2573,"style":44,"markDefs":2574,"children":2575},"k8w",[],[2576],{"_type":48,"_key":2577,"text":2578,"marks":2579},"k8x","As Copilot’s AI has been trained on billions of lines of public OpenSource code, the debate over intellectual property and licensing have caused quite the stir. It appears the code generated can and has on occasion derived or emulated existing code without an attribute to the original license. This is potentially problematic as users may unknowingly create derivative works of copyleft-licensed code.",[],{"_type":42,"_key":2581,"style":44,"markDefs":2582,"children":2586},"k8y",[2583],{"_key":2584,"_type":469,"href":2585},"k90","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fgithub\u002Fsite-policy\u002Fgithub-terms-of-service#d-user-generated-content",[2587,2591,2595],{"_type":48,"_key":2588,"text":2589,"marks":2590},"k8z","Copilot has navigated this issue with a broadly worded license in their ",[],{"_type":48,"_key":2592,"text":2593,"marks":2594},"k91","terms of use",[2584],{"_type":48,"_key":2596,"text":2597,"marks":2598},"k92"," which gives “the right to store, archive, parse, and display Your Content, and make incidental copies, as necessary to provide the Service, including improving the Service over time.” While this hasn’t quite subdued the backlash they are facing online, we are keen to see how GitHub tackle this in the future.",[],{"_type":42,"_key":2600,"style":1674,"markDefs":2601,"children":2602},"k93",[],[2603],{"_type":48,"_key":2604,"text":2605,"marks":2606},"k94","Future of AI coding tools",[],{"_type":42,"_key":2608,"style":44,"markDefs":2609,"children":2613},"k95",[2610],{"_key":2611,"_type":469,"href":2612},"k97","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Faws\u002Fnow-in-preview-amazon-codewhisperer-ml-powered-coding-companion\u002F",[2614,2618,2622],{"_type":48,"_key":2615,"text":2616,"marks":2617},"k96","Copilot’s successful release has paved the way for other companies to follow the lead. Amazon",[],{"_type":48,"_key":2619,"text":2620,"marks":2621},"k98","unveiled their own code",[2611],{"_type":48,"_key":2623,"text":2624,"marks":2625},"k99"," assistant at their re:Mars conference just a few days after CoPilot was officially launched and is now in the preview stages for developers to play with. Google has also announced their AI tool, Alphacode.",[],{"_type":42,"_key":2627,"style":1674,"markDefs":2628,"children":2629},"k9a",[],[2630],{"_type":48,"_key":2631,"text":2632,"marks":2633},"k9b","Final thoughts",[],{"_type":42,"_key":2635,"style":44,"markDefs":2636,"children":2637},"k9c",[],[2638],{"_type":48,"_key":2639,"text":2640,"marks":2641},"k9d","Overall, we’ve seen a real improvement in performance within our business using this new technology. The rate at which we develop has gotten faster and our developers have noticed a real difference when using Copilot. We will continue to use the AI assistant and investigate new AI tools as they are released.",[],{"_type":42,"_key":2643,"style":44,"markDefs":2644,"children":2645},"k9e",[],[2646],{"_type":48,"_key":2647,"text":2648,"marks":2649},"k9f","We are cautiously optimistic about the future of AI development tools. While there is fear that sometime in the distant future our roles could be automated away, we are confident that with the help of AI coding assistants the bar will be raised for humans, and the small finicky code will be left to the bots while we humans focus on creating truly innovative software.",[],{"slug":2651,"title":2652,"date":2653,"excerpt":2654,"audiences":2655,"author":1563,"body":2656},"software-company-dives-into-international-waters","Software company dives into international waters","2022-04-27","IT business LuminateOne started as the brainchild of two computer science students and is now diving in international waters.",[],[2657,2676,2679,2686,2694,2702,2710,2718,2726,2734,2742,2750,2758,2766,2774,2782],{"_type":42,"_key":2658,"style":44,"markDefs":2659,"children":2663},"k9g",[2660],{"_key":2661,"_type":469,"href":2662},"k9i","https:\u002F\u002Fwww.nzherald.co.nz\u002Fwaikato-news\u002Fnews\u002Fmatamata-based-software-company-luminateone-dives-into-international-waters\u002F54UG7EMCWU2N6COFXEWT6WO7DE\u002F",[2664,2668,2672],{"_type":48,"_key":2665,"text":2666,"marks":2667},"k9h","See New Zealand Herald write-up ",[],{"_type":48,"_key":2669,"text":2670,"marks":2671},"k9j","https:\u002F\u002Fwww.nzherald.co.nz\u002Fwaikato-news\u002Fnews\u002Fmatamata-based-software-company-luminateone-dives-into-international-waters\u002F54UG7EMCWU2N6COFXEWT6WO7DE\u002F,",[2661],{"_type":48,"_key":2673,"text":2674,"marks":2675},"k9k"," article also below:",[],{"_type":1599,"_key":2677,"alt":2652,"src":2678},"k9l","\u002Fimages\u002Farticles\u002Fsoftware-company-dives-into-international-waters-1.webp",{"_type":42,"_key":2680,"style":44,"markDefs":2681,"children":2682},"k9m",[],[2683],{"_type":48,"_key":2684,"text":2654,"marks":2685},"k9n",[],{"_type":42,"_key":2687,"style":44,"markDefs":2688,"children":2689},"k9o",[],[2690],{"_type":48,"_key":2691,"text":2692,"marks":2693},"k9p","The company builds custom web, mobile and app software solutions and counts internationally known vehicle brands as well as local businesses among its clientele.",[],{"_type":42,"_key":2695,"style":44,"markDefs":2696,"children":2697},"k9q",[],[2698],{"_type":48,"_key":2699,"text":2700,"marks":2701},"k9r","LuminateOne directors Tim Hampton and Nick Humphries founded the company five years ago when they were still computer science students at Waikato University.",[],{"_type":42,"_key":2703,"style":44,"markDefs":2704,"children":2705},"k9s",[],[2706],{"_type":48,"_key":2707,"text":2708,"marks":2709},"k9t","They first met when they were hired by the university as a cybersecurity lab researcher and for an app development role.",[],{"_type":42,"_key":2711,"style":44,"markDefs":2712,"children":2713},"k9u",[],[2714],{"_type":48,"_key":2715,"text":2716,"marks":2717},"k9v","Their big break in the software industry also came while still on campus when they were asked to bring their development skills to diet and healthy food specialist A Little Bit Yummy.",[],{"_type":42,"_key":2719,"style":44,"markDefs":2720,"children":2721},"k9w",[],[2722],{"_type":48,"_key":2723,"text":2724,"marks":2725},"k9x","Tim and Nick say it's just about doing really excellent work. \"We build innovative digital platforms which let businesses improve their customer experiences and grow their bottom line.",[],{"_type":42,"_key":2727,"style":44,"markDefs":2728,"children":2729},"k9y",[],[2730],{"_type":48,"_key":2731,"text":2732,"marks":2733},"k9z","\"There is no point reinventing the wheel. But if you can innovate to gain a competitive edge, that's where businesses start to see the magic happening. It ultimately saves time and money.\"",[],{"_type":42,"_key":2735,"style":44,"markDefs":2736,"children":2737},"ka0",[],[2738],{"_type":48,"_key":2739,"text":2740,"marks":2741},"ka1","In 2017, Tim and Nick built a website and developed an app for A Little Bit Yummy that drew a million \"viewers\" in its first year of operation.",[],{"_type":42,"_key":2743,"style":44,"markDefs":2744,"children":2745},"ka2",[],[2746],{"_type":48,"_key":2747,"text":2748,"marks":2749},"ka3","Now they also count the American Software Testing Qualifications Board, the New Zealand operations for vehicle brands Hyundai, Isuzu and Renault among their clientele.",[],{"_type":42,"_key":2751,"style":44,"markDefs":2752,"children":2753},"ka4",[],[2754],{"_type":48,"_key":2755,"text":2756,"marks":2757},"ka5","Local clients include Matamata businesses J. Swap Contractors and Daltons, and LuminateOne also does subsidised work for the Matamata Community Health Shuttle.",[],{"_type":42,"_key":2759,"style":44,"markDefs":2760,"children":2761},"ka6",[],[2762],{"_type":48,"_key":2763,"text":2764,"marks":2765},"ka7","Nick and Tim say software platforms are tailored to suit the respective business, covering aspects including stocktake, timesheets, sales reporting, customer relations, billing and ordering.",[],{"_type":42,"_key":2767,"style":44,"markDefs":2768,"children":2769},"ka8",[],[2770],{"_type":48,"_key":2771,"text":2772,"marks":2773},"ka9","\"A lot of what we do now is critical for businesses. We are the heartbeat.\"",[],{"_type":42,"_key":2775,"style":44,"markDefs":2776,"children":2777},"kaa",[],[2778],{"_type":48,"_key":2779,"text":2780,"marks":2781},"kab","LuminateOne started out with a staff of three interns – \"mates from university\" – and has now grown to 13 fulltime employees.",[],{"_type":42,"_key":2783,"style":44,"markDefs":2784,"children":2785},"kac",[],[2786],{"_type":48,"_key":2787,"text":2788,"marks":2789},"kad","In the future, Tim and Nick want to grow their business even further with a second office in New Zealand – probably Christchurch or Wellington – and 40 staff working out of the Waikato headquarters being part of the five-year plan.",[],[2791,2816,2870,2922],{"slug":650,"order":132,"label":651,"title":652,"summary":653,"seoDescription":654,"intro":2792,"signs":2807,"help":2809,"firstStep":2814,"relatedServices":2815},[2793,2802],{"_type":42,"_key":657,"style":44,"markDefs":2794,"children":2795},[],[2796,2798,2800],{"_type":48,"_key":661,"text":662,"marks":2797},[],{"_type":48,"_key":665,"text":666,"marks":2799},[56],{"_type":48,"_key":669,"text":670,"marks":2801},[],{"_type":42,"_key":673,"style":44,"markDefs":2803,"children":2804},[],[2805],{"_type":48,"_key":677,"text":678,"marks":2806},[],{"title":681,"items":2808},[683,684,685,686],{"title":688,"items":2810},[2811,2812,2813],{"title":691,"text":692},{"title":694,"text":695},{"title":697,"text":698},{"title":700,"text":701,"label":648},[131,270,561],{"slug":710,"order":271,"label":2817,"title":2818,"summary":2819,"seoDescription":2820,"intro":2821,"signs":2846,"help":2853,"firstStep":2865,"relatedServices":2869},"General managers","Improve the systems your team works with","Connect operational systems, automate recurring tasks and bring reporting together.","Software development, integrations and reporting for general managers in New Zealand. Connect operational systems and automate recurring tasks.",[2822,2838],{"_type":42,"_key":2823,"style":44,"markDefs":2824,"children":2825},"kf",[],[2826,2830,2834],{"_type":48,"_key":2827,"text":2828,"marks":2829},"kg","We connect ",[],{"_type":48,"_key":2831,"text":2832,"marks":2833},"kh","operational systems",[56],{"_type":48,"_key":2835,"text":2836,"marks":2837},"ki",", automate recurring tasks and develop reporting for your team. We work with the software and equipment already in place, and build new applications where they are needed.",[],{"_type":42,"_key":2839,"style":44,"markDefs":2840,"children":2841},"kj",[],[2842],{"_type":48,"_key":2843,"text":2844,"marks":2845},"kk","If the project needs approval first, we can help define the scope, assess feasibility and prepare the technical detail for a proposal.",[],{"title":2847,"items":2848},"Work you may be planning",[2849,2850,2851,2852],"Connecting software and equipment used in day-to-day operations.","Automating recurring transfers and manual tasks.","Bringing information together for management reporting.","Preparing a software project for approval.",{"title":2854,"items":2855},"Integrations, automation and reporting",[2856,2859,2862],{"title":2857,"text":2858},"Connect and automate","Move information between applications and equipment, with rules for recurring tasks and exceptions.",{"title":2860,"text":2861},"Develop reporting","Bring operational information together in reports and dashboards for your team.",{"title":2863,"text":2864},"Scope the work","Establish requirements, feasibility and costs for a new application or system change.",{"title":2866,"text":2867,"label":2868},"Tell us what needs to change","Describe the work your team does, the systems involved and what you want to improve.","Discuss your project",[131,361,454,561],{"slug":711,"order":362,"label":2871,"title":2872,"summary":2873,"seoDescription":2874,"intro":2875,"signs":2900,"help":2907,"firstStep":2917,"relatedServices":2921},"CTOs and tech leads","Development support for your technical team","Discuss a defined piece of development, an integration or a technical problem that needs another perspective.","Laravel, Vue, AI and integration development for technical teams in New Zealand. Discuss project requirements with LuminateOne.",[2876,2884],{"_type":42,"_key":2877,"style":44,"markDefs":2878,"children":2879},"kl",[],[2880],{"_type":48,"_key":2881,"text":2882,"marks":2883},"km","An external development partner needs to understand the architecture, constraints and responsibilities around the work. The implementation has to fit the system it becomes part of.",[],{"_type":42,"_key":2885,"style":44,"markDefs":2886,"children":2887},"kn",[],[2888,2892,2896],{"_type":48,"_key":2889,"text":2890,"marks":2891},"ko","We work with ",[],{"_type":48,"_key":2893,"text":2894,"marks":2895},"kp","Laravel and Vue",[56],{"_type":48,"_key":2897,"text":2898,"marks":2899},"kq",", business integrations, AI and data. We can discuss a particular project or component in the context of your existing platform.",[],{"title":2901,"items":2902},"Where we may be able to help",[2903,2904,2905,2906],"Developing a Laravel or Vue application.","Connecting business systems or external services.","Adding AI functionality to an existing product.","Improving data access and reporting.",{"title":2908,"items":2909},"Development, integrations and technical reviews",[2910,2912,2914],{"title":81,"text":2911},"Develop features and services within the technical requirements of a new or existing platform.",{"title":133,"text":2913},"Connect APIs, applications and data sources, including business-specific transformations and rules.",{"title":2915,"text":2916},"Technical assessment","Examine an implementation question, application or proposed approach to establish the work involved.",{"title":2918,"text":2919,"label":2920},"Discuss the technical requirements","Tell us about the stack, the relevant constraints and the work you have in mind.","Start a technical conversation",[270,131,361,454],{"slug":1193,"order":455,"label":2923,"title":2924,"summary":2925,"seoDescription":2926,"intro":2927,"signs":2944,"help":2951,"firstStep":2963,"relatedServices":2967},"Startup founders","Build your first software product","Turn a product idea into a focused software brief and an application you can put in front of users.","Software development and technical advice for New Zealand startup founders. Define a first release and explore the decisions behind a new product.",[2928,2936],{"_type":42,"_key":2929,"style":44,"markDefs":2930,"children":2931},"kr",[],[2932],{"_type":48,"_key":2933,"text":2934,"marks":2935},"ks","A first release needs a clear purpose: who it serves, what it helps them do and what you need to learn from its use. Those choices shape both the development scope and the investment.",[],{"_type":42,"_key":2937,"style":44,"markDefs":2938,"children":2939},"kt",[],[2940],{"_type":48,"_key":2941,"text":2942,"marks":2943},"ku","We help founders explore technical options and develop software, with attention to the features needed now and the implications of future changes.",[],{"title":2945,"items":2946},"Questions you may be working through",[2947,2948,2949,2950],"Which features belong in the first release?","Could an existing product cover part of the requirement?","What integrations will the application depend on?","What needs to be maintained after launch?",{"title":2952,"items":2953},"Plan and build your first release",[2954,2957,2960],{"title":2955,"text":2956},"Define the first release","Identify the core user tasks and distinguish launch requirements from features that can wait.",{"title":2958,"text":2959},"Explore technical choices","Consider the application structure, external services and ongoing operating requirements.",{"title":2961,"text":2962},"Build and develop","Develop the initial application and adapt it as requirements become clearer through use.",{"title":2964,"text":2965,"label":2966},"Tell us about your product","Describe who it is for, what it should help them do and how far you have developed the idea.","Discuss your product",[561,270],1793765698528]