<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kavita Systems</title>
    <description>The latest articles on DEV Community by Kavita Systems (kavitasystems).</description>
    <link>https://dev.to/kavitasystems</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F13776%2F651ded87-9345-4364-aa12-7c8cbc283236.jpg</url>
      <title>DEV Community: Kavita Systems</title>
      <link>https://dev.to/kavitasystems</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kavitasystems"/>
    <language>en</language>
    <item>
      <title>Software Development Trends Beyond Websites: What the US and Europe Expect in Q3 2026</title>
      <dc:creator>VitaliiK</dc:creator>
      <pubDate>Wed, 15 Jul 2026 11:44:24 +0000</pubDate>
      <link>https://dev.to/kavitasystems/software-development-trends-beyond-websites-what-the-us-and-europe-expect-in-q3-2026-17ff</link>
      <guid>https://dev.to/kavitasystems/software-development-trends-beyond-websites-what-the-us-and-europe-expect-in-q3-2026-17ff</guid>
      <description>&lt;p&gt;A company asks an agency to build a dashboard.&lt;/p&gt;

&lt;p&gt;The brief includes twenty screens, several charts, an AI assistant, and a preferred technology stack. It looks like a straightforward design-and-development project.&lt;/p&gt;

&lt;p&gt;Then discovery begins.&lt;/p&gt;

&lt;p&gt;Customer data is copied manually between the website, CRM, ERP, and spreadsheets. Employees correct mismatched records. Managers receive reports too late to act on them. Customers contact support because they cannot see order statuses or download documents themselves.&lt;/p&gt;

&lt;p&gt;The requested dashboard would make the process look more modern. It would not fix the process.&lt;/p&gt;

&lt;p&gt;The useful product is an operational system connecting data, people, rules, and decisions.&lt;/p&gt;

&lt;p&gt;That example captures the central market shift entering Q3 2026:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Standard code is becoming cheaper to produce. Understanding what should be built—and making it reliable in production—is becoming more valuable.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AI can generate layouts, components, tests, and significant parts of an application. Cloud platforms already provide authentication, payments, storage, analytics, messaging, and infrastructure.&lt;/p&gt;

&lt;p&gt;Custom software has not disappeared. Demand has moved deeper into the business: customer portals, internal tools, B2B commerce, integrations, workflow automation, AI-assisted operations, and legacy modernization.&lt;/p&gt;

&lt;p&gt;For buyers, this changes how software should be purchased. For developers, it changes which skills create a lasting advantage.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Data note:&lt;/strong&gt; This outlook is based on information available in July 2026. The latest complete US quarterly e-commerce figures cover Q1 2026; the Q2 release is scheduled for August 18.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  One term, two very different markets
&lt;/h2&gt;

&lt;p&gt;“Web development” now describes two increasingly different categories of work.&lt;/p&gt;

&lt;p&gt;The first includes marketing sites, landing pages, content platforms, standard stores, and early prototypes. These projects still matter, but production is becoming more standardized. Templates, low-code products, AI builders, and mature SaaS tools reduce delivery time and technical differentiation.&lt;/p&gt;

&lt;p&gt;The second category includes software that runs in a browser but is embedded in business operations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;customer and partner portals;&lt;/li&gt;
&lt;li&gt;internal workflow systems;&lt;/li&gt;
&lt;li&gt;B2B ordering platforms;&lt;/li&gt;
&lt;li&gt;SaaS products;&lt;/li&gt;
&lt;li&gt;document-processing applications;&lt;/li&gt;
&lt;li&gt;CRM and ERP integrations;&lt;/li&gt;
&lt;li&gt;modern interfaces for legacy systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cost of these systems is not determined by page count. It depends on roles, permissions, data ownership, integrations, migration, security, and the consequences of failure.&lt;/p&gt;

&lt;p&gt;What happens when an API is unavailable? Which platform contains the correct customer record? Who can approve an order? Which actions require an audit trail? How much would an hour of downtime cost?&lt;/p&gt;

&lt;p&gt;A business-critical platform cannot be planned as a “large website.” It also requires process analysis, architecture, testing, observability, documentation, infrastructure, and post-launch support.&lt;/p&gt;

&lt;p&gt;A polished interface can hide a broken process.&lt;/p&gt;

&lt;p&gt;It cannot repair it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The United States: buyers expect proof of value
&lt;/h2&gt;

&lt;p&gt;The United States remains one of the most attractive software markets, but it is also one of the most competitive.&lt;/p&gt;

&lt;p&gt;The US Bureau of Labor Statistics projects 15% employment growth for software developers, quality assurance analysts, and testers between 2024 and 2034. Web developers and digital designers are projected to grow by 7%, while computer programmers are expected to decline by 6%.&lt;/p&gt;

&lt;p&gt;The figures do not measure agency revenue, but they show a structural change. The market is placing less value on isolated programming tasks and more on complete engineering responsibility: understanding requirements, designing systems, integrating platforms, protecting data, and operating software after launch.&lt;/p&gt;

&lt;p&gt;The same pattern is visible in e-commerce. Seasonally adjusted US retail e-commerce sales reached $326.7 billion in Q1 2026, up 9.8% year over year, and represented 16.9% of total retail sales.&lt;/p&gt;

&lt;p&gt;Yet the opportunity is not simply to build more stores. Much of the valuable work sits behind the storefront:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;account-specific pricing and B2B ordering;&lt;/li&gt;
&lt;li&gt;subscriptions and recurring purchases;&lt;/li&gt;
&lt;li&gt;ERP, warehouse, and inventory synchronization;&lt;/li&gt;
&lt;li&gt;fulfillment and returns automation;&lt;/li&gt;
&lt;li&gt;customer self-service;&lt;/li&gt;
&lt;li&gt;checkout and performance optimization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A commerce website is rarely an isolated sales channel. It is an interface connected to payments, logistics, accounting, inventory, and customer service.&lt;/p&gt;

&lt;p&gt;US buyers frequently evaluate projects through time-to-value. They want to know when the first usable release will appear, which process it will improve, how it will affect cost or revenue, and who will own the system in production.&lt;/p&gt;

&lt;p&gt;Compare these two proposals:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“We will build a modern customer portal with a TypeScript frontend.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“We will give customers direct access to invoices, documents, delivery updates, and order history, reducing routine requests handled by support.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The first describes implementation.&lt;/p&gt;

&lt;p&gt;The second describes a business result.&lt;/p&gt;

&lt;p&gt;A framework is not a strategy, and a technology list is not a business case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Europe: one region, many software markets
&lt;/h2&gt;

&lt;p&gt;Europe presents a different type of complexity.&lt;/p&gt;

&lt;p&gt;The European Union is a shared economic and regulatory space, but its companies vary greatly by country, industry, size, and digital maturity. The United Kingdom adds a separate commercial and regulatory environment.&lt;/p&gt;

&lt;p&gt;Eurostat reports that 53% of EU businesses purchased cloud services in 2025. Around 20% used AI, up from 13% in 2024. Adoption remained uneven: 55% of large businesses used AI, compared with 19% of SMEs.&lt;/p&gt;

&lt;p&gt;That gap creates two parallel opportunities.&lt;/p&gt;

&lt;p&gt;Digitally mature organizations need stronger integrations, data platforms, AI governance, automation, and legacy modernization. Other companies still need to replace spreadsheets, repeated data entry, shared inboxes, and fragmented reporting.&lt;/p&gt;

&lt;p&gt;In both cases, rebuilding everything is rarely the best answer.&lt;/p&gt;

&lt;p&gt;A company may already use a CRM, accounting platform, commerce system, document service, and industry-specific ERP. The missing product is often the layer connecting them: a portal, workflow application, integration service, API, or shared operational view.&lt;/p&gt;

&lt;p&gt;This is why hybrid architecture is becoming the default:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Standard capabilities are purchased. Differentiating workflows are built.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;European expansion also introduces product decisions earlier. A system may need different languages, payment methods, invoices, tax rules, accessibility behavior, and legal content in each market.&lt;/p&gt;

&lt;p&gt;Localization is not always translation. Sometimes it changes the workflow and architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Q3 2026 matters for AI governance
&lt;/h2&gt;

&lt;p&gt;August 2, 2026 is one of the quarter’s most important dates for European software teams.&lt;/p&gt;

&lt;p&gt;The EU AI Act becomes broadly applicable on that date, with exceptions and later timelines for some high-risk systems. Relevant transparency obligations for certain AI interactions and generated content also begin to apply.&lt;/p&gt;

&lt;p&gt;Not every internal assistant or support chatbot becomes a high-risk system. However, “we call an API from a major model provider” is no longer an adequate governance strategy.&lt;/p&gt;

&lt;p&gt;Teams need to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what operation the AI performs;&lt;/li&gt;
&lt;li&gt;which personal or confidential data it can access;&lt;/li&gt;
&lt;li&gt;where information is processed and retained;&lt;/li&gt;
&lt;li&gt;how users are informed that AI is involved;&lt;/li&gt;
&lt;li&gt;who can review or override the result;&lt;/li&gt;
&lt;li&gt;what happens when confidence is low;&lt;/li&gt;
&lt;li&gt;how important actions are logged.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions influence UX, architecture, permissions, observability, model selection, and vendor management.&lt;/p&gt;

&lt;p&gt;Accessibility is following a similar path. The European Accessibility Act has applied to selected products and services since June 28, 2025, including e-commerce, consumer banking, electronic communications, and ticketing.&lt;/p&gt;

&lt;p&gt;Accessibility therefore belongs in component libraries, design systems, acceptance criteria, and testing—not in an audit performed several days before release.&lt;/p&gt;

&lt;p&gt;For developers, regulation is becoming an engineering constraint.&lt;/p&gt;

&lt;p&gt;For buyers, compliance is becoming part of product quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  What businesses are funding
&lt;/h2&gt;

&lt;p&gt;Across the US and Europe, investment is concentrating around software that changes a measurable process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Portals and workflow automation
&lt;/h3&gt;

&lt;p&gt;A portal creates value when it moves routine interactions away from phone calls, email, and manual support.&lt;/p&gt;

&lt;p&gt;Customers may track orders, access invoices, exchange documents, make payments, and review service history independently. Success is not “twelve screens delivered.” It may mean fewer support requests, shorter order cycles, or fewer errors.&lt;/p&gt;

&lt;p&gt;Internal tools offer similar value. Many companies still run critical processes through spreadsheets, inboxes, messaging platforms, and repeated exports.&lt;/p&gt;

&lt;p&gt;A weak automation project digitizes an existing form.&lt;/p&gt;

&lt;p&gt;A stronger project asks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which steps can disappear?&lt;/li&gt;
&lt;li&gt;Which decisions follow predictable rules?&lt;/li&gt;
&lt;li&gt;Where does the necessary data already exist?&lt;/li&gt;
&lt;li&gt;Which exceptions require a person?&lt;/li&gt;
&lt;li&gt;Where do delays and errors occur?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Automating a bad process can make waste move faster.&lt;/p&gt;

&lt;p&gt;Redesigning the workflow can remove it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Integrations and legacy modernization
&lt;/h3&gt;

&lt;p&gt;The existence of an API does not guarantee a safe integration.&lt;/p&gt;

&lt;p&gt;Data may be duplicated, identifiers inconsistent, webhooks unavailable, and limits poorly documented. Legacy applications may also contain years of undocumented business rules.&lt;/p&gt;

&lt;p&gt;Replacing such a system in one “big bang” release may appear elegant while being operationally reckless.&lt;/p&gt;

&lt;p&gt;A safer strategy is progressive: document existing rules, identify authoritative data sources, expose selected capabilities through APIs, introduce a modern interface, replace modules gradually, and migrate users in controlled stages.&lt;/p&gt;

&lt;p&gt;The key buyer question is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can you rewrite our platform?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How will you modernize it without interrupting our business?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  B2B commerce and AI operations
&lt;/h3&gt;

&lt;p&gt;Standard consumer stores can often be launched on existing platforms. Custom development becomes valuable when commerce includes negotiated prices, company accounts, credit limits, approval chains, distributor roles, ERP-controlled inventory, or specialized fulfillment.&lt;/p&gt;

&lt;p&gt;In B2B commerce, the catalog is often the easy part. The real product is the commercial logic behind it.&lt;/p&gt;

&lt;p&gt;“AI chatbot development” is also becoming too generic to be meaningful. Useful AI may extract data from invoices, classify requests, search documentation, prepare response drafts, verify applications, summarize case files, or transfer approved information into a CRM.&lt;/p&gt;

&lt;p&gt;The most reliable pattern is controlled automation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI handles common cases, a person approves important decisions, and unusual cases are escalated.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Teams must understand how outputs will be verified, how much each completed operation will cost, and what happens when the model fails.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four development trends shaping Q3 2026
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. AI agents are entering delivery
&lt;/h3&gt;

&lt;p&gt;GitHub moved Agentic Workflows into public preview in June 2026, supporting reasoning-based repository tasks such as issue triage, CI-failure analysis, and documentation updates.&lt;/p&gt;

&lt;p&gt;The important change is not simply that AI can produce more code. Repositories must become understandable and safe for both humans and agents.&lt;/p&gt;

&lt;p&gt;That increases the value of explicit architectural boundaries, typed contracts, automated tests, reproducible environments, structured logs, restricted permissions, and mandatory review.&lt;/p&gt;

&lt;p&gt;A capable agent working in a chaotic repository produces chaos faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Strong constraints matter more
&lt;/h3&gt;

&lt;p&gt;Type systems, static analysis, tests, and clearly defined APIs become more valuable as more implementation is generated automatically.&lt;/p&gt;

&lt;p&gt;The right buyer question is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Which language do you use?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What prevents a change in one module from silently breaking another?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer should include engineering practices, not only a technology name.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. AI now has unit economics
&lt;/h3&gt;

&lt;p&gt;GitHub moved Copilot to usage-based billing in June 2026, with usage calculated through AI Credits and token consumption.&lt;/p&gt;

&lt;p&gt;That reflects a wider reality: multi-step AI work is a variable infrastructure cost.&lt;/p&gt;

&lt;p&gt;A production feature may require spending on model calls, embeddings, search, storage, retries, monitoring, moderation, and human review.&lt;/p&gt;

&lt;p&gt;Teams need to calculate the cost per completed business operation—not only the cost per API request. Model routing, caching, smaller models, budgets, and usage limits are becoming architectural decisions.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Production quality moves into the Definition of Done
&lt;/h3&gt;

&lt;p&gt;A feature is not complete because it worked during a demo.&lt;/p&gt;

&lt;p&gt;Teams need visibility into errors, slow requests, failed integrations, background jobs, AI quality, cost, and critical user journeys.&lt;/p&gt;

&lt;p&gt;Security and accessibility also need to start early. The US Bureau of Labor Statistics projects 29% employment growth for information security analysts between 2024 and 2034—a wider signal that software risk is growing alongside software value.&lt;/p&gt;

&lt;p&gt;Security requires permissions, audit logs, backups, API protection, dependency updates, incident response, and tested recovery.&lt;/p&gt;

&lt;p&gt;Accessibility requires more than an automated scan. Keyboard navigation, focus behavior, screen-reader workflows, complex forms, and error recovery need human testing.&lt;/p&gt;

&lt;p&gt;Observability, security, and accessibility are not final checkboxes.&lt;/p&gt;

&lt;p&gt;They are properties of the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  What developers and buyers should change
&lt;/h2&gt;

&lt;p&gt;Developers are not becoming less relevant. The role is becoming wider.&lt;/p&gt;

&lt;p&gt;As AI handles more implementation work, engineers create value by framing problems correctly, designing system boundaries, reviewing generated code, understanding business data, explaining trade-offs, and owning production outcomes.&lt;/p&gt;

&lt;p&gt;The strongest developers will know where custom code is necessary, where an existing service should be reused, where automation is unsafe, and which shortcut will become expensive six months later.&lt;/p&gt;

&lt;p&gt;Buyers also need a new evaluation model.&lt;/p&gt;

&lt;p&gt;A long feature list does not guarantee value. A low hourly rate does not guarantee a low final cost. A fashionable stack or an AI claim does not guarantee maintainability.&lt;/p&gt;

&lt;p&gt;Start with the process, not the requested interface.&lt;/p&gt;

&lt;p&gt;Instead of saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“We need a dashboard.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Explain:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Managers spend two days combining reports from five systems, and the information is already outdated when they receive it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“We need an AI assistant.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Explain:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Support employees spend 40% of their time searching documents and preparing variations of the same answers.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then define the smallest measurable outcome for the first production release.&lt;/p&gt;

&lt;p&gt;A sensible project structure includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Discovery&lt;/strong&gt; to understand the process, users, systems, data, and risks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A pilot&lt;/strong&gt; that tests the assumption most likely to invalidate the project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One complete production workflow&lt;/strong&gt; with appropriate security and monitoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expansion based on real usage&lt;/strong&gt;, not assumptions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous operation&lt;/strong&gt; after launch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;An MVP may be narrow.&lt;/p&gt;

&lt;p&gt;It should not be careless.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real outlook for Q3 2026
&lt;/h2&gt;

&lt;p&gt;The US and European software markets are moving in the same broad direction.&lt;/p&gt;

&lt;p&gt;Basic websites and standard interfaces are becoming faster and cheaper to produce. AI agents are taking over part of implementation. Cloud services are absorbing more standard functionality.&lt;/p&gt;

&lt;p&gt;At the same time, serious software is becoming more integrated, regulated, and operationally important.&lt;/p&gt;

&lt;p&gt;The US market tends to emphasize speed, measurable ROI, scalability, and production ownership.&lt;/p&gt;

&lt;p&gt;European projects often introduce localization, accessibility, privacy, and AI governance earlier.&lt;/p&gt;

&lt;p&gt;But both markets reward the same fundamental capability:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Turning a messy real-world process into a reliable digital system.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For developers, the opportunity is no longer only to write code faster.&lt;/p&gt;

&lt;p&gt;For buyers, the goal is no longer to purchase the largest feature set at the lowest possible rate.&lt;/p&gt;

&lt;p&gt;The goal is to build the smallest reliable system capable of producing a measurable business result.&lt;/p&gt;

&lt;p&gt;AI can help a strong team deliver that system faster.&lt;/p&gt;

&lt;p&gt;It still cannot decide which system is worth building.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was prepared by the &lt;a href="https://kavitasystems.com/" rel="noopener noreferrer"&gt;Kavita Systems&lt;/a&gt; team.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>softwaredevelopment</category>
      <category>agents</category>
    </item>
    <item>
      <title>Why Early MVPs Fail Before Launch</title>
      <dc:creator>Ihor</dc:creator>
      <pubDate>Tue, 14 Jul 2026 09:26:23 +0000</pubDate>
      <link>https://dev.to/kavitasystems/why-early-mvps-fail-before-launch-11ag</link>
      <guid>https://dev.to/kavitasystems/why-early-mvps-fail-before-launch-11ag</guid>
      <description>&lt;p&gt;&lt;strong&gt;Most MVPs do not fail because the first version is too small.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;They fail because the first version is not focused enough.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A real MVP is not just a reduced version of a full product. It is a focused first version built to test the core product hypothesis with real users before the team spends too much time, budget, and engineering effort in the wrong direction.&lt;/p&gt;

&lt;p&gt;A good MVP should help answer a few practical questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the problem really exist?&lt;/li&gt;
&lt;li&gt;Do users understand the value?&lt;/li&gt;
&lt;li&gt;Will they take the key action?&lt;/li&gt;
&lt;li&gt;Is there a path toward a real product and a viable business?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many early MVPs never reach that point. Not because the idea is always bad. More often, the team expands the product too early, adds too many features, underestimates the real cost of development, and starts building before there is a clear plan for reaching the first users.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real problem is not the number of features
&lt;/h2&gt;

&lt;p&gt;One of the most common mistakes at the beginning is trying to build a nearly complete product instead of an MVP.&lt;/p&gt;

&lt;p&gt;Teams add dashboards, complex user roles, permissions, analytics, notifications, AI features, integrations, admin panels, filters, billing logic, settings pages, and multiple user flows before the core idea has been validated.&lt;/p&gt;

&lt;p&gt;Each feature may look reasonable on its own. But together, they increase the budget, slow down development, complicate the architecture, and delay launch.&lt;/p&gt;

&lt;p&gt;The first version should not prove that the team can build a lot.&lt;/p&gt;

&lt;p&gt;It should test the riskiest assumptions behind the product.&lt;/p&gt;

&lt;p&gt;Before development starts, the team should answer one simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the smallest version of this product that still makes the core idea work?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the real MVP. Everything else belongs to later iterations.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI can generate ideas, but it cannot replace product judgment
&lt;/h2&gt;

&lt;p&gt;AI is very useful at the early stage.&lt;/p&gt;

&lt;p&gt;It can suggest product structure, user flows, feature lists, monetization ideas, onboarding scenarios, landing page copy, technical approaches, and even prototype logic.&lt;/p&gt;

&lt;p&gt;But there is also a risk: AI often expands the scope instead of narrowing it.&lt;/p&gt;

&lt;p&gt;A founder can quickly receive a long list of useful features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;chatbots;&lt;/li&gt;
&lt;li&gt;automation;&lt;/li&gt;
&lt;li&gt;recommendations;&lt;/li&gt;
&lt;li&gt;personalization;&lt;/li&gt;
&lt;li&gt;dashboards;&lt;/li&gt;
&lt;li&gt;content generation;&lt;/li&gt;
&lt;li&gt;RAG;&lt;/li&gt;
&lt;li&gt;integrations;&lt;/li&gt;
&lt;li&gt;smart search;&lt;/li&gt;
&lt;li&gt;reports;&lt;/li&gt;
&lt;li&gt;workflow tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of these ideas may be valuable. The problem is that every feature has a cost.&lt;/p&gt;

&lt;p&gt;It has to be designed, developed, tested, explained to users, maintained, and improved after launch.&lt;/p&gt;

&lt;p&gt;That is why AI should not only be used for brainstorming. It should also be used for filtering.&lt;/p&gt;

&lt;p&gt;A better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which 20% of the functionality creates most of the value for the first user?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the team cannot answer that, the next step is not writing code.&lt;/p&gt;

&lt;p&gt;The next step is sharpening the product focus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design in an MVP is not decoration
&lt;/h2&gt;

&lt;p&gt;Some teams treat design as secondary during the MVP stage.&lt;/p&gt;

&lt;p&gt;The logic is usually simple: the feature just needs to work.&lt;/p&gt;

&lt;p&gt;There is some truth in that. A first version does not need complex animation, expensive branding, or a large visual system.&lt;/p&gt;

&lt;p&gt;But that does not mean design can be replaced by a random set of screens.&lt;/p&gt;

&lt;p&gt;Users experience the product through the interface. They judge the product through the first screen, the registration flow, the form layout, the button labels, the error states, the mobile version, the copy, and the overall feeling of trust.&lt;/p&gt;

&lt;p&gt;Good design does not guarantee sales.&lt;/p&gt;

&lt;p&gt;But weak design can make even a useful product feel confusing, unfinished, or unreliable.&lt;/p&gt;

&lt;p&gt;For an MVP, design should be practical, clear, and system-based.&lt;/p&gt;

&lt;h2&gt;
  
  
  Good MVP design is a system, not a set of pretty screens
&lt;/h2&gt;

&lt;p&gt;A weak MVP design process usually looks like this:&lt;/p&gt;

&lt;p&gt;A few attractive screens are created quickly. They look good in a presentation, but they do not account for real data, empty states, validation errors, responsive behavior, user roles, or frontend implementation.&lt;/p&gt;

&lt;p&gt;That approach creates problems during development.&lt;/p&gt;

&lt;p&gt;The frontend team has to invent missing states in code. Buttons become inconsistent. Spacing changes from screen to screen. Components are recreated instead of reused. The product becomes harder to maintain before it even launches.&lt;/p&gt;

&lt;p&gt;Good MVP design can be simple. But it should still be systematic.&lt;/p&gt;

&lt;p&gt;It should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clear screen structure;&lt;/li&gt;
&lt;li&gt;readable typography;&lt;/li&gt;
&lt;li&gt;a limited but consistent color system;&lt;/li&gt;
&lt;li&gt;reusable components;&lt;/li&gt;
&lt;li&gt;button and form states;&lt;/li&gt;
&lt;li&gt;error states;&lt;/li&gt;
&lt;li&gt;empty states;&lt;/li&gt;
&lt;li&gt;responsive behavior;&lt;/li&gt;
&lt;li&gt;logic that can be translated into frontend components without constant redesign.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is especially important for MVPs.&lt;/p&gt;

&lt;p&gt;When design and frontend follow the same component logic, the product becomes easier to extend. A new screen is not designed and coded from scratch every time. It is assembled from patterns that already exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do not over-engineer the architecture too early
&lt;/h2&gt;

&lt;p&gt;Another common mistake is choosing an architecture for the future before the product has validated demand.&lt;/p&gt;

&lt;p&gt;A separate frontend, separate backend, API-first architecture, microservices, multiple environments, and complex infrastructure can all be the right choice in the right context.&lt;/p&gt;

&lt;p&gt;But they are not automatically the right choice for a first MVP.&lt;/p&gt;

&lt;p&gt;If the product has not yet proven market demand, unnecessary architectural complexity can become a cost center instead of an advantage.&lt;/p&gt;

&lt;p&gt;More moving parts usually mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more coordination;&lt;/li&gt;
&lt;li&gt;more testing;&lt;/li&gt;
&lt;li&gt;more DevOps;&lt;/li&gt;
&lt;li&gt;more integration work;&lt;/li&gt;
&lt;li&gt;more places where something can break.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That does not mean a monolith is always better.&lt;/p&gt;

&lt;p&gt;It means the architecture should match the product stage.&lt;/p&gt;

&lt;p&gt;For an early product, a better rule is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with the simplest architecture that supports the product’s real needs, but keep the code modular enough to evolve later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For many MVPs, Laravel can be a practical foundation for backend logic, authentication, user roles, permissions, data management, integrations, queues, payments, and admin functionality.&lt;/p&gt;

&lt;p&gt;On the frontend, Vue or React can work well depending on the team and the product. Inertia can be a good fit when the team wants a more integrated full-stack approach.&lt;/p&gt;

&lt;p&gt;Nuxt or Next.js may make sense when SEO, SSR, public pages, content-heavy sections, performance, or a more independent frontend layer are important.&lt;/p&gt;

&lt;p&gt;The main principle is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Choose the stack for the product, not for the trend.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A minimal product should not feel weak
&lt;/h2&gt;

&lt;p&gt;Founders sometimes worry that a small product will not look impressive enough.&lt;/p&gt;

&lt;p&gt;So they add more features, more pages, more edge cases, and more wow moments.&lt;/p&gt;

&lt;p&gt;But users do not evaluate an MVP by counting screens. They evaluate whether the product clearly solves a problem.&lt;/p&gt;

&lt;p&gt;A small MVP can still feel professional if it has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clear positioning;&lt;/li&gt;
&lt;li&gt;one strong core flow;&lt;/li&gt;
&lt;li&gt;stable functionality;&lt;/li&gt;
&lt;li&gt;clean UI;&lt;/li&gt;
&lt;li&gt;good performance;&lt;/li&gt;
&lt;li&gt;clear copy;&lt;/li&gt;
&lt;li&gt;predictable behavior;&lt;/li&gt;
&lt;li&gt;a simple path to the target action.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A large feature set with a messy interface often performs worse than a smaller product with a clear value proposition and a polished core experience.&lt;/p&gt;

&lt;p&gt;The goal is not to make the product look bigger.&lt;/p&gt;

&lt;p&gt;The goal is to make the main value easy to understand and easy to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customer acquisition is not a post-launch task
&lt;/h2&gt;

&lt;p&gt;Another serious mistake is assuming that users will appear after the product is launched.&lt;/p&gt;

&lt;p&gt;Usually, they will not.&lt;/p&gt;

&lt;p&gt;Even a strong MVP needs a distribution channel. That could be personal outreach, LinkedIn, niche communities, SEO, content, partnerships, paid ads, email outreach, direct sales, marketplace platforms, or an existing customer base.&lt;/p&gt;

&lt;p&gt;But this channel should be considered before development, not after launch.&lt;/p&gt;

&lt;p&gt;If the team does not know who the first user is, where to find them, what problem they already recognize, and why they should try this product, the MVP may become just another finished product with no traffic.&lt;/p&gt;

&lt;p&gt;Before building, the team should understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who the first user is;&lt;/li&gt;
&lt;li&gt;what specific pain point the product solves;&lt;/li&gt;
&lt;li&gt;how that user currently solves the problem;&lt;/li&gt;
&lt;li&gt;where they look for alternatives;&lt;/li&gt;
&lt;li&gt;what would create trust;&lt;/li&gt;
&lt;li&gt;what the main action in the MVP should be;&lt;/li&gt;
&lt;li&gt;how the team will collect feedback.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An MVP is not just code.&lt;/p&gt;

&lt;p&gt;It is a test of the entire system: the idea, the value proposition, the interface, the technology, the acquisition channel, and the market’s willingness to respond.&lt;/p&gt;

&lt;h2&gt;
  
  
  What teams should do before building an MVP
&lt;/h2&gt;

&lt;p&gt;Before writing code, define the real size of the first version.&lt;/p&gt;

&lt;p&gt;Not the full list of features that might be useful someday, but the minimum flow without which the idea does not work.&lt;/p&gt;

&lt;p&gt;Then create a design system that is small but real. It should include reusable components, states, responsive behavior, and logic that can be implemented in the frontend without constant rework.&lt;/p&gt;

&lt;p&gt;After that, choose technology based on the product’s needs.&lt;/p&gt;

&lt;p&gt;If the first version does not require a complex distributed architecture, do not spend the budget on it just because it sounds modern.&lt;/p&gt;

&lt;p&gt;At the same time, think about the first customers.&lt;/p&gt;

&lt;p&gt;Not after launch. Before launch.&lt;/p&gt;

&lt;p&gt;A strong MVP is not the biggest product a team can afford to build.&lt;/p&gt;

&lt;p&gt;It is the most focused version that can test the main hypothesis, create a professional first impression, work reliably, and reach the first users.&lt;/p&gt;

&lt;p&gt;The first step does not have to be big.&lt;/p&gt;

&lt;p&gt;It has to be accurate.&lt;/p&gt;

&lt;p&gt;If you need a practical consultation on how to plan, design, and build an MVP, the &lt;a href="https://kavitasystems.com/our-services/ai-enhanced-mvp-development" rel="noopener noreferrer"&gt;Kavita Systems&lt;/a&gt; team can help you define the right scope, choose a suitable architecture, create a system-based UX/UI foundation, and prepare the product for launch and first users.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>architecture</category>
      <category>systemdesign</category>
      <category>software</category>
    </item>
    <item>
      <title>Laravel Inertia Architecture: When to Use Vue and When React Makes Sense</title>
      <dc:creator>VitaliiK</dc:creator>
      <pubDate>Mon, 29 Jun 2026 09:55:42 +0000</pubDate>
      <link>https://dev.to/kavitasystems/laravel-inertia-architecture-when-to-use-vue-and-when-react-makes-sense-26hp</link>
      <guid>https://dev.to/kavitasystems/laravel-inertia-architecture-when-to-use-vue-and-when-react-makes-sense-26hp</guid>
      <description>&lt;p&gt; Modern web development often pushes teams toward separation. A product may have a separate backend, a separate frontend, a separate API layer, separate routing, separate deployment pipelines, and sometimes even separate teams responsible for different parts of the system. &lt;/p&gt;

&lt;p&gt; That kind of architecture can be the right decision for large platforms, mobile-first products, public APIs, distributed systems, or products that need several independent clients. But not every web application needs that level of separation from the beginning. &lt;/p&gt;

&lt;p&gt; For many SaaS platforms, CRM systems, booking platforms, dashboards, client portals, admin panels, internal tools, and MVPs, a fully separated frontend and backend can create more complexity than the product actually needs. More layers often mean more decisions, more coordination, more duplicated logic, and more places where things can break. &lt;/p&gt;

&lt;p&gt; This is where &lt;strong&gt;Laravel + Inertia.js&lt;/strong&gt; becomes a very practical product engineering option. &lt;/p&gt;

&lt;p&gt; Inertia allows teams to build modern, SPA-like interfaces while keeping Laravel at the center of the application. Laravel still owns routing, controllers, validation, authentication, authorization, database logic, business rules, permissions, and server-side decisions. Vue or React powers the interface layer that users interact with every day. &lt;/p&gt;

&lt;p&gt; The important question is not simply whether Vue is better than React or React is better than Vue. A better question is this: which stack will help the team build, launch, support, and grow the product with the least unnecessary friction? &lt;/p&gt;

&lt;p&gt; This article compares &lt;strong&gt;Laravel + Inertia + Vue&lt;/strong&gt; and &lt;strong&gt;Laravel + Inertia + React&lt;/strong&gt; from both a developer and client perspective. We will look at architecture, developer experience, delivery speed, budget, support, scalability, risks, and long-term product direction. &lt;/p&gt;





&lt;h2&gt;The Core Idea Behind Laravel and Inertia&lt;/h2&gt;

&lt;p&gt; In a Laravel + Inertia application, Laravel is not just a backend API provider. It remains the core of the product. That distinction matters because Inertia is not designed to make Laravel disappear behind a frontend application. Instead, it allows Laravel to keep control over the server-side responsibilities while giving the interface a modern JavaScript experience. &lt;/p&gt;

&lt;p&gt; Laravel continues to handle the parts of the application where consistency and trust are critical: routes, controllers, authentication, authorization, validation, database models, business rules, background jobs, queues, integrations, file handling, notifications, and admin workflows. &lt;/p&gt;

&lt;p&gt; Inertia connects that Laravel backend with frontend page components. Instead of returning a traditional Blade view, a Laravel controller can return an Inertia page. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;return Inertia::render('Dashboard/Orders', [ 'orders' =&amp;gt; $orders, ]);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt; The frontend receives the page name and props, then renders the matching Vue or React component. This gives teams the feeling of a modern JavaScript application without forcing them to build and maintain a completely separate frontend application from day one. &lt;/p&gt;

&lt;p&gt; In simple terms, Laravel owns the product logic, Inertia connects the backend and frontend layers, and Vue or React powers the user interface. &lt;/p&gt;

&lt;blockquote&gt; &lt;p&gt;Laravel stays responsible for the rules. Inertia handles the bridge. Vue or React turns the product logic into usable screens.&lt;/p&gt; &lt;/blockquote&gt;





&lt;h2&gt;Laravel + Inertia + Vue as a Clean Product Stack&lt;/h2&gt;

&lt;p&gt; Laravel + Inertia + Vue is often a very natural choice for Laravel teams that already enjoy the Vue ecosystem. A typical stack may include Laravel, Inertia.js, Vue, TypeScript, Tailwind CSS, Vite, Pinia when shared frontend state is needed, and a component system such as PrimeVue, shadcn-vue, or a custom design system. &lt;/p&gt;

&lt;p&gt; On the backend side, the application may use PostgreSQL or MySQL, Redis, Laravel Queues, Horizon, Filament, Nova, and integrations with third-party services. The important point is that Vue does not replace Laravel. Vue simply becomes the interface layer that renders product screens. &lt;/p&gt;

&lt;p&gt; A Vue page in this setup can be simple and readable. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;script setup lang="ts"&amp;gt; defineProps&amp;lt;{ orders: Order[] }&amp;gt;() &amp;lt;/script&amp;gt; &amp;lt;template&amp;gt; &amp;lt;section&amp;gt; &amp;lt;PageHeader title="Orders" /&amp;gt; &amp;lt;OrdersTable :items="orders" /&amp;gt; &amp;lt;/section&amp;gt; &amp;lt;/template&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt; The biggest advantage of Vue in this architecture is clarity. The template shows the page structure directly. A developer can scan the component and quickly understand what the user sees. The logic stays close to the interface, but it does not overwhelm the component. &lt;/p&gt;

&lt;p&gt; This is one reason Laravel + Inertia + Vue works especially well for dashboards, forms, filters, tables, settings screens, account areas, admin panels, approval flows, and internal business workflows. These screens usually need clarity, stability, and maintainability more than experimental frontend architecture. &lt;/p&gt;

&lt;p&gt; For example, a &lt;a href="https://kavitasystems.com/tech-stack/inertiajs-with-laravel-and-vue-developer" rel="noopener noreferrer"&gt;Laravel + Inertia + Vue Developer&lt;/a&gt; stack is a strong fit when the product needs a Laravel-controlled backend, responsive Vue screens, reusable UI components, and a support-friendly architecture after launch. &lt;/p&gt;





&lt;h2&gt;Laravel + Inertia + React as a Flexible UI Stack&lt;/h2&gt;

&lt;p&gt; Laravel + Inertia + React follows the same backend idea but uses React as the frontend layer. A typical stack may include Laravel, Inertia.js, React, TypeScript, Tailwind CSS, Vite, React hooks, shadcn/ui, Radix UI, PostgreSQL or MySQL, Redis, Laravel Queues, Horizon, and Filament or Nova when an admin layer is needed. &lt;/p&gt;

&lt;p&gt; The Laravel controller can look almost identical to the Vue version. The difference is not in how Laravel prepares the data. The difference is in how the frontend page component is written and maintained. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;type Props = { orders: Order[] } export default function Orders({ orders }: Props) { return ( &amp;lt;section&amp;gt; &amp;lt;PageHeader title="Orders" /&amp;gt; &amp;lt;OrdersTable items={orders} /&amp;gt; &amp;lt;/section&amp;gt; ) }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt; React gives teams a large ecosystem, mature component patterns, strong TypeScript usage, and a broad hiring market. It is especially attractive when the product team already uses React, has an existing React design system, or expects to connect the project with a broader React or Next.js roadmap. &lt;/p&gt;

&lt;p&gt; A &lt;a href="https://kavitasystems.com/tech-stack/laravel-inertia-ssr-react-developer" rel="noopener noreferrer"&gt;Laravel + Inertia + React Developer&lt;/a&gt; stack makes sense when a client wants Laravel to remain the application authority while React powers dynamic product screens, SaaS dashboards, complex interfaces, and reusable UI components. &lt;/p&gt;

&lt;p&gt; React is not automatically more complex, but it gives developers more freedom. That freedom is powerful when the team has strong frontend discipline. Without clear conventions, however, React projects can become harder to read and maintain over time. &lt;/p&gt;





&lt;h2&gt;What Both Stacks Have in Common&lt;/h2&gt;

&lt;p&gt; The backend architecture is almost the same in both versions. This is important because clients sometimes assume that choosing React instead of Vue changes the entire product architecture. In most Laravel + Inertia projects, that is not the case. &lt;/p&gt;

&lt;p&gt; The data model, access rules, permissions, queues, integrations, admin workflows, and deployment strategy are still mostly Laravel decisions. Vue or React affects the interface layer, component structure, UI patterns, and frontend ecosystem. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Area&lt;/th&gt; &lt;th&gt;Laravel + Inertia + Vue&lt;/th&gt; &lt;th&gt;Laravel + Inertia + React&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Backend framework&lt;/td&gt; &lt;td&gt;Laravel&lt;/td&gt; &lt;td&gt;Laravel&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Routing&lt;/td&gt; &lt;td&gt;Laravel routes&lt;/td&gt; &lt;td&gt;Laravel routes&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Controllers&lt;/td&gt; &lt;td&gt;Laravel controllers&lt;/td&gt; &lt;td&gt;Laravel controllers&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Authentication&lt;/td&gt; &lt;td&gt;Laravel auth&lt;/td&gt; &lt;td&gt;Laravel auth&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Authorization&lt;/td&gt; &lt;td&gt;Policies, gates, middleware&lt;/td&gt; &lt;td&gt;Policies, gates, middleware&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Validation&lt;/td&gt; &lt;td&gt;Laravel validation&lt;/td&gt; &lt;td&gt;Laravel validation&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Database&lt;/td&gt; &lt;td&gt;MySQL or PostgreSQL&lt;/td&gt; &lt;td&gt;MySQL or PostgreSQL&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Queues&lt;/td&gt; &lt;td&gt;Laravel Queues / Horizon&lt;/td&gt; &lt;td&gt;Laravel Queues / Horizon&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Cache&lt;/td&gt; &lt;td&gt;Redis&lt;/td&gt; &lt;td&gt;Redis&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Frontend bridge&lt;/td&gt; &lt;td&gt;Inertia.js&lt;/td&gt; &lt;td&gt;Inertia.js&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Build tool&lt;/td&gt; &lt;td&gt;Vite&lt;/td&gt; &lt;td&gt;Vite&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Styling&lt;/td&gt; &lt;td&gt;Tailwind CSS&lt;/td&gt; &lt;td&gt;Tailwind CSS&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;TypeScript&lt;/td&gt; &lt;td&gt;Supported&lt;/td&gt; &lt;td&gt;Supported&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;SSR&lt;/td&gt; &lt;td&gt;Possible&lt;/td&gt; &lt;td&gt;Possible&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;

&lt;p&gt; The practical difference is in the frontend experience. Vue uses a template-based approach that many Laravel developers find easy to read. React uses JSX or TSX, hooks, and a JavaScript-first component model that gives teams a lot of flexibility. &lt;/p&gt;

&lt;p&gt; Both approaches can be excellent. The better choice depends less on framework popularity and more on team experience, project requirements, UI complexity, and future roadmap. &lt;/p&gt;





&lt;h2&gt;Developer Experience Inside Inertia&lt;/h2&gt;

&lt;p&gt; From a developer perspective, the right question is not which framework is better in general. The better question is which framework creates less friction for this team and this product. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Criteria&lt;/th&gt; &lt;th&gt;Laravel + Inertia + Vue&lt;/th&gt; &lt;th&gt;Laravel + Inertia + React&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Best team fit&lt;/td&gt; &lt;td&gt;Laravel and Vue teams&lt;/td&gt; &lt;td&gt;Laravel and React teams&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Component style&lt;/td&gt; &lt;td&gt;Template-based&lt;/td&gt; &lt;td&gt;JSX / TSX-based&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Readability&lt;/td&gt; &lt;td&gt;Very clear for UI structure&lt;/td&gt; &lt;td&gt;Very flexible, but can become dense&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Forms&lt;/td&gt; &lt;td&gt;Simple and ergonomic&lt;/td&gt; &lt;td&gt;Powerful, sometimes more verbose&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;State patterns&lt;/td&gt; &lt;td&gt;Refs, computed values, composables, Pinia&lt;/td&gt; &lt;td&gt;Hooks, context, external libraries&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;UI ecosystem&lt;/td&gt; &lt;td&gt;Strong&lt;/td&gt; &lt;td&gt;Very strong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Design system options&lt;/td&gt; &lt;td&gt;PrimeVue, shadcn-vue, custom UI systems&lt;/td&gt; &lt;td&gt;shadcn/ui, Radix UI, custom UI systems&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Hiring market&lt;/td&gt; &lt;td&gt;Smaller&lt;/td&gt; &lt;td&gt;Larger&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Risk of overengineering&lt;/td&gt; &lt;td&gt;Lower&lt;/td&gt; &lt;td&gt;Medium&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Best use cases&lt;/td&gt; &lt;td&gt;Dashboards, portals, business apps&lt;/td&gt; &lt;td&gt;Complex SaaS UI, React-first teams&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;

&lt;p&gt; Vue often feels faster for classic product screens: forms, dashboards, filters, tables, account settings, permissions, and admin flows. These are the screens where clarity and consistency matter more than frontend experimentation. &lt;/p&gt;

&lt;p&gt; React often feels stronger when the product has highly interactive UI, a mature React component system, or a roadmap connected to Next.js. It is also attractive for organizations that already hire React developers and want to keep the frontend ecosystem consistent across multiple products. &lt;/p&gt;

&lt;p&gt; In other words, Vue is often a smoother fit for Laravel-first product teams, while React can be the better fit for React-first organizations that also want Laravel as a reliable backend core. &lt;/p&gt;





&lt;h2&gt;Speed of Development on the Same Project&lt;/h2&gt;

&lt;p&gt; For the same product scope, the backend timeline is usually very similar. Imagine a B2B SaaS MVP with authentication, user roles, a dashboard, customer records, project records, tables with filters, forms with validation, file uploads, email notifications, an admin area, responsive UI, and basic reporting. &lt;/p&gt;

&lt;p&gt; Laravel handles most of that work in almost the same way in both versions. The database schema, routes, controllers, validation, authorization policies, jobs, integrations, and deployment logic do not change much just because the interface uses Vue or React. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Backend Work&lt;/th&gt; &lt;th&gt;Vue Version&lt;/th&gt; &lt;th&gt;React Version&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Database schema&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Laravel routes&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Controllers&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Authentication&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Validation&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Policies&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Jobs and queues&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Integrations&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Deployment&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;td&gt;Same&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;

&lt;p&gt; The timeline difference usually appears in the frontend layer. A Vue-oriented Laravel team may build common business screens faster with Vue because the structure is clear, the templates are readable, and form-heavy interfaces are comfortable to implement. &lt;/p&gt;

&lt;p&gt; A React-oriented team may move just as fast with React, especially if it already has reusable components, shared hooks, a design system, and frontend conventions in place. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Frontend Work&lt;/th&gt; &lt;th&gt;Laravel + Inertia + Vue&lt;/th&gt; &lt;th&gt;Laravel + Inertia + React&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Layouts&lt;/td&gt; &lt;td&gt;Fast&lt;/td&gt; &lt;td&gt;Fast&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Basic pages&lt;/td&gt; &lt;td&gt;Very fast&lt;/td&gt; &lt;td&gt;Fast&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Forms&lt;/td&gt; &lt;td&gt;Very fast&lt;/td&gt; &lt;td&gt;Fast, sometimes more verbose&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Tables and filters&lt;/td&gt; &lt;td&gt;Fast&lt;/td&gt; &lt;td&gt;Fast&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Modals and UI states&lt;/td&gt; &lt;td&gt;Simple&lt;/td&gt; &lt;td&gt;Flexible&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Complex UI patterns&lt;/td&gt; &lt;td&gt;Good&lt;/td&gt; &lt;td&gt;Very good&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Design system integration&lt;/td&gt; &lt;td&gt;Good&lt;/td&gt; &lt;td&gt;Excellent&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Onboarding new developers&lt;/td&gt; &lt;td&gt;Usually easier&lt;/td&gt; &lt;td&gt;Depends on React experience&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;

&lt;p&gt; For a team already strong in Vue, Laravel + Inertia + Vue may be around &lt;strong&gt;five to fifteen percent faster&lt;/strong&gt; for common business applications. For a team already strong in React, Laravel + Inertia + React can be just as fast. &lt;/p&gt;

&lt;p&gt; The framework is not the only multiplier. Team experience, reusable components, design quality, product clarity, and decision-making speed often affect the timeline more than the frontend library itself. &lt;/p&gt;





&lt;h2&gt;Budget and Business Impact for Clients&lt;/h2&gt;

&lt;p&gt; Clients rarely care about whether a component is written as a Vue template or a React TSX function. They usually care about launch speed, budget, support, future flexibility, and risk. &lt;/p&gt;

&lt;p&gt; For the same scope, Laravel + Inertia + Vue and Laravel + Inertia + React often have similar backend costs. The budget difference usually comes from frontend velocity, reusable components, hiring expectations, team familiarity, and the complexity of the design system. &lt;/p&gt;

&lt;p&gt; Laravel + Inertia + Vue may reduce cost when the delivery team already works with Vue, the product has many forms and dashboards, the interface is business-heavy rather than animation-heavy, and the client wants a practical MVP without unnecessary separation between backend and frontend. &lt;/p&gt;

&lt;p&gt; Vue can help keep the interface layer simple, especially in products where clarity matters more than frontend experimentation. That makes it a strong choice for client portals, dashboards, admin areas, workflow tools, and SaaS MVPs that need to move quickly from idea to production. &lt;/p&gt;

&lt;p&gt; Laravel + Inertia + React may be the better budget decision when the client already has React developers, owns React components, depends on React-first libraries, or expects the product roadmap to move toward a React or Next.js ecosystem. &lt;/p&gt;

&lt;p&gt; React may cost more for a Vue-first delivery team, but it can be cheaper for a React-first organization. Budget is not only about the framework. It is about organizational fit. &lt;/p&gt;

&lt;blockquote&gt; &lt;p&gt;A stack is cost-effective when the team can build with it confidently, support it consistently, and evolve it without fighting the architecture.&lt;/p&gt; &lt;/blockquote&gt;





&lt;h2&gt;Support and Long-Term Maintenance&lt;/h2&gt;

&lt;p&gt; A product is not finished when it launches. After launch, the real work begins. A production application needs bug fixes, new features, UI improvements, dependency updates, security updates, performance tuning, monitoring, integrations, reporting, and refactoring. &lt;/p&gt;

&lt;p&gt; Both Vue and React can be maintained well inside a Laravel + Inertia application. Both can also become messy if the team has no structure. &lt;/p&gt;

&lt;p&gt; Vue is often easier to scan because the template clearly shows what the user sees. This can make business screens easier to support, especially forms, admin pages, account areas, approval flows, filters, tables, settings, and dashboards. For smaller teams, this readability matters. A developer can open a Vue page and quickly understand the structure. &lt;/p&gt;

&lt;p&gt; React is powerful, but it requires more discipline. A React Inertia project should define clear rules for component structure, hooks, layouts, form handling, shared UI components, state boundaries, table patterns, error states, loading states, and naming conventions. &lt;/p&gt;

&lt;p&gt; When those rules exist, React is excellent. When every developer invents a new pattern, the frontend can become difficult to maintain. React does not create chaos by itself. Unclear architecture does. &lt;/p&gt;

&lt;p&gt; For long-term maintenance, the most important factor is not just Vue or React. It is consistency. The team needs clear conventions, reusable components, predictable data flow, and a shared understanding of where business logic belongs. &lt;/p&gt;





&lt;h2&gt;SSR and SEO Considerations&lt;/h2&gt;

&lt;p&gt; Inertia can support server-side rendering, and SSR can help when selected routes need better first-load delivery or more indexable HTML. It can be useful for public landing pages, product pages, marketplace pages, directories, documentation, and public content pages. &lt;/p&gt;

&lt;p&gt; However, SSR is not always necessary. For private product areas such as admin dashboards, CRM screens, internal tools, authenticated SaaS pages, staff workflows, and client portals, SEO is often not the main priority. In those cases, the user experience, permissions, performance, and maintainability are usually more important. &lt;/p&gt;

&lt;p&gt; A practical way to think about this is simple: use Laravel + Inertia for product application screens, and use SSR selectively when first delivery or search visibility matters. &lt;/p&gt;

&lt;p&gt; If SEO is the primary goal of the entire frontend, Nuxt or Next.js may be a better public-facing layer. But for many product applications, Inertia keeps the architecture simpler and easier to maintain. &lt;/p&gt;





&lt;h2&gt;When Laravel + Inertia + Vue Makes Sense&lt;/h2&gt;

&lt;p&gt; Laravel + Inertia + Vue is a strong choice when the product needs fast MVP delivery, clear business workflows, dashboards, portals, CRM-style screens, forms, validation, tables, filters, admin panels, internal tools, and strong alignment with the Vue or Nuxt ecosystem. &lt;/p&gt;

&lt;p&gt; This stack is especially useful when the team already works with Vue. The main advantage is balance. Vue gives the frontend enough power without pushing the product into unnecessary complexity. Laravel keeps the server-side rules visible. Inertia keeps the connection between the two layers clean. &lt;/p&gt;

&lt;p&gt; For many product teams, Laravel + Inertia + Vue development is a practical choice for launching business applications that need to be maintainable, understandable, and easy to evolve after release. &lt;/p&gt;

&lt;p&gt; It is not only a developer-friendly stack. It is also a client-friendly stack because it can reduce architectural overhead, simplify support, and keep the product moving without forcing a separate API-first frontend too early. &lt;/p&gt;





&lt;h2&gt;When Laravel + Inertia + React Makes Sense&lt;/h2&gt;

&lt;p&gt; Laravel + Inertia + React is a strong choice when the product needs the React ecosystem, shadcn/ui components, a larger hiring pool, complex product UI, reusable React patterns, analytics interfaces, advanced dashboards, React-first team collaboration, or possible Next.js alignment later. &lt;/p&gt;

&lt;p&gt; React is especially useful when the organization already thinks in React. It is also a good choice when product UI complexity is high and the team has enough frontend discipline to keep the codebase consistent. &lt;/p&gt;

&lt;p&gt; A Laravel + Inertia + React development approach works well when Laravel needs to remain the backend authority while React supports rich product interfaces and scalable UI systems. &lt;/p&gt;

&lt;p&gt; The most important thing is to avoid turning a Laravel + Inertia project into an unnecessarily complex pseudo-SPA with duplicate APIs, scattered state, and unclear responsibilities. &lt;/p&gt;

&lt;p&gt; If Laravel is the product core, let Laravel stay the product core. React should strengthen the interface, not pull the architecture into avoidable complexity. &lt;/p&gt;





&lt;h2&gt;Pros and Cons&lt;/h2&gt;

&lt;p&gt; Both stacks have strong advantages and real trade-offs. The right decision depends on the team, the product type, the future roadmap, and the client’s support strategy. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Stack&lt;/th&gt; &lt;th&gt;Strengths&lt;/th&gt; &lt;th&gt;Trade-Offs&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Laravel + Inertia + Vue&lt;/td&gt; &lt;td&gt;Fast for Laravel/Vue teams, clear component structure, strong for forms, dashboards, admin panels, SaaS MVPs, and internal tools.&lt;/td&gt; &lt;td&gt;Smaller hiring market than React, fewer React-first UI libraries, less ideal for clients already standardized around React.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Laravel + Inertia + React&lt;/td&gt; &lt;td&gt;Large ecosystem, strong hiring market, excellent UI component options, great fit for React-first product teams and complex SaaS interfaces.&lt;/td&gt; &lt;td&gt;Can become verbose, requires clear frontend rules, higher risk of overengineering, may be slower for Vue-first Laravel teams.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;





&lt;h2&gt;Decision Matrix&lt;/h2&gt;

&lt;p&gt; A practical decision matrix can help simplify the choice. It should not replace technical judgment, but it can clarify which direction is more natural for a specific project. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Situation&lt;/th&gt; &lt;th&gt;Recommended Stack&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;The team is already strong with Laravel and Vue&lt;/td&gt; &lt;td&gt;Laravel + Inertia + Vue&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The team is already strong with React&lt;/td&gt; &lt;td&gt;Laravel + Inertia + React&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The product is a fast SaaS MVP&lt;/td&gt; &lt;td&gt;Laravel + Inertia + Vue&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The client already has a React design system&lt;/td&gt; &lt;td&gt;Laravel + Inertia + React&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The product has many forms, tables, and business workflows&lt;/td&gt; &lt;td&gt;Laravel + Inertia + Vue&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The product has complex interactive UI&lt;/td&gt; &lt;td&gt;Laravel + Inertia + React&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The project needs a smaller long-term support team&lt;/td&gt; &lt;td&gt;Laravel + Inertia + Vue&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The client needs a larger hiring pool&lt;/td&gt; &lt;td&gt;Laravel + Inertia + React&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The roadmap is connected to Vue or Nuxt&lt;/td&gt; &lt;td&gt;Laravel + Inertia + Vue&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The roadmap is connected to React or Next.js&lt;/td&gt; &lt;td&gt;Laravel + Inertia + React&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;





&lt;h2&gt;A Product Engineering Perspective&lt;/h2&gt;

&lt;p&gt; Technology decisions should not be made by trend alone. A better question is: what architecture gives this product the best chance to launch, grow, and stay maintainable? &lt;/p&gt;

&lt;p&gt; For many web products, Laravel + Inertia is valuable because it removes unnecessary duplication. You do not need two routing systems if one is enough. You do not need a full API layer if the frontend only serves the same application. You do not need a separate frontend product if the business logic, user roles, and permissions all belong inside one Laravel product core. &lt;/p&gt;

&lt;p&gt; That does not mean APIs are bad. APIs are essential when the product needs mobile apps, third-party clients, public integrations, multi-platform delivery, or independent frontend teams. &lt;/p&gt;

&lt;p&gt; But if the goal is to build a focused SaaS app, portal, dashboard, internal platform, or MVP, Laravel + Inertia can keep the system lean and understandable. &lt;/p&gt;

&lt;p&gt; The Vue vs React decision should come after the architecture decision. First decide whether a modern Laravel monolith fits the product. Then choose the frontend layer that best matches the team and the roadmap. &lt;/p&gt;





&lt;h2&gt;A Practical Recommendation&lt;/h2&gt;

&lt;p&gt; There is no universal winner between Laravel + Inertia + Vue and Laravel + Inertia + React. &lt;/p&gt;

&lt;p&gt; Choose &lt;strong&gt;Laravel + Inertia + Vue&lt;/strong&gt; when you want speed, clarity, lower complexity, and strong alignment with a Laravel/Vue team. This is often the smoother default for business applications, dashboards, portals, admin systems, MVPs, and products where long-term support matters. &lt;/p&gt;

&lt;p&gt; Choose &lt;strong&gt;Laravel + Inertia + React&lt;/strong&gt; when you need the React ecosystem, hiring flexibility, shadcn/ui, complex UI patterns, or a React-first product roadmap. This is often the safer long-term choice for organizations that already use React across their product ecosystem. &lt;/p&gt;

&lt;p&gt; The best stack is not the one with the loudest community. It is the one your team can build with, support, and evolve without fighting the architecture every week. &lt;/p&gt;

&lt;p&gt; A good Laravel + Inertia application should feel simple in the right places. Laravel owns the rules. Inertia connects the layers. Vue or React powers the screens. The product stays understandable. &lt;/p&gt;

&lt;p&gt; That is the real advantage: less duplication, faster delivery, clearer ownership, and a product architecture that can grow without becoming unnecessarily complicated. &lt;/p&gt;





&lt;h2&gt;Questions for the Community&lt;/h2&gt;

&lt;p&gt; I would love to hear how other Laravel teams approach this decision. &lt;/p&gt;

&lt;ul&gt; &lt;li&gt;Which stack would you choose for a new Laravel product today: Vue or React?&lt;/li&gt; &lt;li&gt;Have you used Inertia in a production SaaS, dashboard, portal, or internal tool?&lt;/li&gt; &lt;li&gt;Do you prefer keeping Laravel as the main product core, or do you separate the frontend and backend from the start?&lt;/li&gt; &lt;li&gt;Where do you think Inertia fits best: MVPs, admin panels, SaaS apps, portals, or long-term enterprise products?&lt;/li&gt; &lt;li&gt;If the backend is Laravel, would your team move faster with Vue, React, or Livewire?&lt;/li&gt; &lt;/ul&gt;

&lt;p&gt; Share your experience in the comments. The most useful stack decisions usually come from real production projects, not from framework debates. &lt;/p&gt;

</description>
      <category>laravel</category>
      <category>startup</category>
      <category>react</category>
      <category>developers</category>
    </item>
    <item>
      <title>Modernizing Legacy Laravel Apps with Figma Agents, and Smarter Tests</title>
      <dc:creator>VitaliiK</dc:creator>
      <pubDate>Thu, 25 Jun 2026 13:36:32 +0000</pubDate>
      <link>https://dev.to/kavitasystems/ai-wont-just-build-the-next-app-it-will-rebuild-the-old-ones-1jjf</link>
      <guid>https://dev.to/kavitasystems/ai-wont-just-build-the-next-app-it-will-rebuild-the-old-ones-1jjf</guid>
      <description>&lt;p&gt;
  The biggest AI opportunity in web development might not be the next shiny app.
&lt;/p&gt;

&lt;p&gt;
  It might be the old one your company is afraid to touch.
&lt;/p&gt;

&lt;p&gt;
  Every day, businesses run on software that still works but no longer feels modern: old admin panels, internal CRMs, Laravel dashboards built years ago, Blade views nobody wants to refactor, reporting tools with confusing filters, support screens with too many columns, and customer portals that still make money but slow down every new feature.
&lt;/p&gt;

&lt;p&gt;
  That is where things get interesting.
&lt;/p&gt;

&lt;p&gt;
  Most AI conversations focus on building something new from scratch. A founder has an idea, generates a prototype, writes code with an AI assistant, connects a model API, and launches an MVP.
&lt;/p&gt;

&lt;p&gt;
  That is a real use case, and it matters.
&lt;/p&gt;

&lt;p&gt;
  But most software work does not start with a blank repository. It starts with an existing product, existing users, existing data, existing bugs, existing business rules, and years of decisions that made sense at the time.
&lt;/p&gt;

&lt;p&gt;
  AI is not just a startup accelerator.
&lt;/p&gt;

&lt;p&gt;
  It is becoming a modernization engine.
&lt;/p&gt;

&lt;p&gt;
  The next wave of AI in web development will not only be about launching new products faster. It will also be about upgrading the products companies already depend on.
&lt;/p&gt;

&lt;h2&gt;The real opportunity is not another chatbot&lt;/h2&gt;

&lt;p&gt;
  A lot of “AI-powered” products follow the same pattern: take an existing app, add a chat window, and call it innovation.
&lt;/p&gt;

&lt;p&gt;
  That is not enough.
&lt;/p&gt;

&lt;p&gt;
  A support dashboard does not need a chatbot in the corner. It needs ticket summaries, priority detection, suggested replies, and better routing.
&lt;/p&gt;

&lt;p&gt;
  A CRM does not need a generic assistant. It needs account summaries, follow-up suggestions, risk signals, and smarter search.
&lt;/p&gt;

&lt;p&gt;
  An accounting tool does not need AI decoration. It needs invoice classification, document extraction, anomaly detection, and review workflows.
&lt;/p&gt;

&lt;p&gt;
  The best AI features do not feel like separate products. They feel like the existing product got smarter.
&lt;/p&gt;

&lt;blockquote&gt;
  AI should not sit next to the product. AI should make the product better.
&lt;/blockquote&gt;

&lt;p&gt;
  That is the key difference.
&lt;/p&gt;

&lt;p&gt;
  AI should remove friction from the workflow people already use every day. It should reduce repetitive work, surface useful context, help users make decisions faster, and keep humans in control where judgment matters.
&lt;/p&gt;

&lt;h2&gt;There are two AI development paths now&lt;/h2&gt;

&lt;p&gt;
  AI is changing product development in two very different ways.
&lt;/p&gt;

&lt;p&gt;
  The first path is &lt;strong&gt;greenfield development&lt;/strong&gt;. This is the startup path. You begin with an idea, write a product brief, explore the interface in Figma, create a functional prototype, validate the flow with users, then build the real application with Laravel, an AI coding agent, and the Laravel AI SDK.
&lt;/p&gt;

&lt;p&gt;
  This is powerful because the cost of going from idea to working product has dropped dramatically.
&lt;/p&gt;

&lt;p&gt;
  The second path is &lt;strong&gt;brownfield modernization&lt;/strong&gt;. This is the path most real companies need. You already have a working product. Maybe it is profitable. Maybe users rely on it every day. But the UI feels outdated, the codebase has too many patterns, the product is hard to extend, and every improvement feels risky.
&lt;/p&gt;

&lt;p&gt;
  This path is not about moving fast and breaking things.
&lt;/p&gt;

&lt;p&gt;
  It is about improving one valuable workflow at a time without breaking the business.
&lt;/p&gt;

&lt;p&gt;
  Same tools. Different mindset.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;For a new product, the question is: &lt;strong&gt;how quickly can we validate this idea?&lt;/strong&gt;
&lt;/li&gt;
  &lt;li&gt;For an existing product, the question is: &lt;strong&gt;how can we make this system better without turning modernization into a six-month rewrite?&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  AI helps with both, but the second opportunity may be much larger.
&lt;/p&gt;

&lt;h2&gt;Start with the workflow, not the model&lt;/h2&gt;

&lt;p&gt;
  The biggest mistake teams make is starting with the tech stack.
&lt;/p&gt;

&lt;p&gt;
  They ask which model to use, which IDE assistant is better, whether to use React or Livewire, whether they need vector search, or whether they should build an agent.
&lt;/p&gt;

&lt;p&gt;
  Those questions matter, but they are not the starting point.
&lt;/p&gt;

&lt;p&gt;
  The starting point is the workflow.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What does the user do every day?&lt;/li&gt;
  &lt;li&gt;Where do they waste time?&lt;/li&gt;
  &lt;li&gt;Where do they copy and paste?&lt;/li&gt;
  &lt;li&gt;Where do they wait?&lt;/li&gt;
  &lt;li&gt;Where do they make mistakes?&lt;/li&gt;
  &lt;li&gt;Where do they need context before making a decision?&lt;/li&gt;
  &lt;li&gt;Which part of the workflow is repetitive enough to automate but important enough to improve?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  “Modernize our app” is too vague.
&lt;/p&gt;

&lt;p&gt;
  “Help support managers review, prioritize, and respond to tickets faster” is specific.
&lt;/p&gt;

&lt;p&gt;
  That kind of problem gives every tool a clear job.
&lt;/p&gt;

&lt;p&gt;
  Figma helps rethink the user experience. Figma Make helps test the improved flow before production work starts. Figma MCP helps move real design context into the coding environment. An AI coding agent helps inspect the existing codebase and implement focused changes. Laravel provides the application structure. Laravel AI SDK adds intelligent behavior where it actually belongs.
&lt;/p&gt;

&lt;p&gt;
  That is a real workflow.
&lt;/p&gt;

&lt;h2&gt;Figma agents are becoming real product tools&lt;/h2&gt;

&lt;p&gt;
  Figma’s recent AI updates are important because the agent is no longer just a prompt box that creates a few screen ideas.
&lt;/p&gt;

&lt;p&gt;
  Figma has been expanding its design agent with more context, custom tools, reusable skills, and deeper connections to design and development workflows. This direction moves beyond simple prompting toward agents that understand how a team works, use broader project context, and help create reusable tools directly on the canvas.
&lt;/p&gt;

&lt;p&gt;
  For modernization work, this matters because context is everything.
&lt;/p&gt;

&lt;p&gt;
  If you are redesigning an old support dashboard, you do not want a random “modern SaaS UI.” You want a better version of the actual workflow your team already uses.
&lt;/p&gt;

&lt;p&gt;
  That means the agent should understand the current screen, the design system, user feedback, accessibility rules, product requirements, and the business goal behind the redesign.
&lt;/p&gt;

&lt;p&gt;
  This is where Figma’s agent becomes useful. It does not replace the designer. It helps the team move from vague feedback to concrete options faster.
&lt;/p&gt;

&lt;p&gt;
  Instead of starting from a blank canvas, a team can explore several improved versions of the same workflow, compare them, clean up the hierarchy, standardize components, and create better empty, loading, and error states.
&lt;/p&gt;

&lt;p&gt;
  The goal is not to make the old screen prettier.
&lt;/p&gt;

&lt;p&gt;
  The goal is to make the workflow easier to understand and faster to use.
&lt;/p&gt;

&lt;h2&gt;Code layers make design and code feel closer&lt;/h2&gt;

&lt;p&gt;
  Another important Figma update is code layers.
&lt;/p&gt;

&lt;p&gt;
  Code layers bring interactive code onto the Figma canvas. Teams can create a code layer from a frame, ask the Figma agent to generate one, bring in a repository, or upload a local folder. This creates workflows where teams can compare, refine, and update code layers alongside normal design work.
&lt;/p&gt;

&lt;p&gt;
  This is especially interesting for legacy products.
&lt;/p&gt;

&lt;p&gt;
  Historically, modernization projects often started with screenshots of the old product. Screenshots are useful, but they are dead artifacts. They do not show real behavior, real state, real components, or the connection between design and implementation.
&lt;/p&gt;

&lt;p&gt;
  Code layers make the design conversation more practical.
&lt;/p&gt;

&lt;p&gt;
  Designers, developers, and product managers can compare the current experience with a proposed future experience in a more interactive way. They can discuss what is purely visual, what requires frontend work, and what depends on backend logic.
&lt;/p&gt;

&lt;p&gt;
  This does not mean Figma becomes your production IDE.
&lt;/p&gt;

&lt;p&gt;
  It means the gap between “what exists,” “what we designed,” and “what we plan to build” gets smaller.
&lt;/p&gt;

&lt;h2&gt;Figma MCP reduces design-to-code guesswork&lt;/h2&gt;

&lt;p&gt;
  Design-to-code has always had a translation problem.
&lt;/p&gt;

&lt;p&gt;
  A designer creates a screen. A developer interprets it. Something gets lost. Spacing changes. Components get duplicated. States are forgotten. A table gets rebuilt from scratch even though the app already has one. A modal looks almost like the design system, but not quite.
&lt;/p&gt;

&lt;p&gt;
  AI can make this worse if it only works from screenshots or vague prompts.
&lt;/p&gt;

&lt;p&gt;
  That is why the Figma MCP Server matters.
&lt;/p&gt;

&lt;p&gt;
  Figma MCP can provide AI agents with design context from Figma files, including selected frames, components, variables, layout data, and resources from Figma Make files.
&lt;/p&gt;

&lt;p&gt;
  For modernization, the coding agent needs to understand two worlds at the same time:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;the existing Laravel application;&lt;/li&gt;
  &lt;li&gt;the new Figma design direction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  If the agent only understands the old code, it may preserve outdated UI patterns. If it only understands the new design, it may produce code that does not fit the actual application.
&lt;/p&gt;

&lt;p&gt;
  But when it has both design context and codebase context, it can make more precise changes.
&lt;/p&gt;

&lt;p&gt;
  That is when AI becomes useful in real projects.
&lt;/p&gt;

&lt;p&gt;
  Not as a magic generator, but as a context-aware assistant.
&lt;/p&gt;

&lt;h2&gt;Code Connect helps prevent component chaos&lt;/h2&gt;

&lt;p&gt;
  One of the easiest ways to damage a codebase with AI is to let it create duplicate components.
&lt;/p&gt;

&lt;p&gt;
  A new button. A new card. A new modal. A new table. A new dropdown. A new form pattern.
&lt;/p&gt;

&lt;p&gt;
  None of them are terrible alone, but together they create a maintenance problem.
&lt;/p&gt;

&lt;p&gt;
  After a few weeks, the app may look “AI-modernized,” but the codebase is harder to maintain than before.
&lt;/p&gt;

&lt;p&gt;
  Code Connect helps by linking Figma components to real code components. It connects design components with their implementation in code, which helps teams keep design and engineering aligned.
&lt;/p&gt;

&lt;p&gt;
  The button in Figma should map to the real button in code. The modal should use the existing modal. The table should follow the existing table pattern. The badge should not be recreated five different ways.
&lt;/p&gt;

&lt;p&gt;
  In a new product, this keeps things clean from the beginning.
&lt;/p&gt;

&lt;p&gt;
  In a legacy product, it is even more important because modernization should reduce inconsistency, not add more.
&lt;/p&gt;

&lt;blockquote&gt;
  AI agents need boundaries. A connected design system gives them those boundaries.
&lt;/blockquote&gt;

&lt;h2&gt;AI in PhpStorm and other IDEs belongs in the real developer workflow&lt;/h2&gt;

&lt;p&gt;
  After the new flow is validated in Figma, the work moves into the IDE.
&lt;/p&gt;

&lt;p&gt;
  For PHP teams, PhpStorm is one of the most natural places for AI-assisted development. JetBrains AI Assistant supports modern PHP development workflows such as generating and explaining PHP code, multi-file edits, intelligent completion, and AI chat with project context.
&lt;/p&gt;

&lt;p&gt;
  JetBrains also has Junie, an AI coding agent that can work in code mode to execute tasks and in ask mode to collaborate on plans and questions.
&lt;/p&gt;

&lt;p&gt;
  If your team does not use PhpStorm, the same workflow can work with alternatives such as Cursor, Claude Code, or GitHub Copilot.
&lt;/p&gt;

&lt;p&gt;
  The specific tool matters less than the operating model.
&lt;/p&gt;

&lt;p&gt;
  A bad prompt is:
&lt;/p&gt;

&lt;blockquote&gt;
  Refactor this dashboard.
&lt;/blockquote&gt;

&lt;p&gt;
  A better request is:
&lt;/p&gt;

&lt;blockquote&gt;
  Explain how this workflow works today. Identify its routes, controllers, models, policies, frontend components, jobs, and tests. List the business rules that must be preserved. Then propose a modernization plan without editing any files.
&lt;/blockquote&gt;

&lt;p&gt;
  The agent’s first job should be understanding, not implementation.
&lt;/p&gt;

&lt;p&gt;
  After the plan is reviewed, let it change one vertical slice at a time. A ticket detail screen is a reasonable task. An entire support system is not.
&lt;/p&gt;

&lt;h2&gt;Laravel now has an AI stack, not just an AI package&lt;/h2&gt;

&lt;p&gt;
  Laravel is especially interesting in this workflow because it has structure.
&lt;/p&gt;

&lt;p&gt;
  Routes have a place. Controllers have a place. Models have a place. Migrations have a place. Policies have a place. Jobs have a place. Tests have a place.
&lt;/p&gt;

&lt;p&gt;
  That structure helps humans, but it also helps AI agents.
&lt;/p&gt;

&lt;p&gt;
  Laravel’s AI tooling now operates at several layers.
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;Laravel Boost&lt;/strong&gt; helps AI coding agents write better Laravel code by giving them Laravel-specific context, guidance, and project-aware tools.
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;Laravel AI SDK&lt;/strong&gt; helps developers build AI features inside Laravel applications. It provides a Laravel-native way to build AI-powered features with providers, agents, tools, structured output, embeddings, vector workflows, and more.
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;Laravel MCP&lt;/strong&gt; helps AI clients and agents interact with tools and resources exposed by Laravel applications. Laravel AI agents can also connect to MCP servers and work with external systems.
&lt;/p&gt;

&lt;p&gt;
  These tools solve different problems:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Boost&lt;/strong&gt; helps AI write the application.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;AI SDK&lt;/strong&gt; helps the application use AI.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt; helps AI interact with the application and external systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  A production project may use all three, but it should not install all three simply because they exist.
&lt;/p&gt;

&lt;p&gt;
  Start with the workflow. Then choose the tool.
&lt;/p&gt;

&lt;h2&gt;AI can help with framework upgrades too&lt;/h2&gt;

&lt;p&gt;
  Legacy modernization is not only about redesigning screens.
&lt;/p&gt;

&lt;p&gt;
  It often includes framework upgrades, package updates, new PHP versions, deprecated APIs, test-suite changes, and cleanup around old patterns.
&lt;/p&gt;

&lt;p&gt;
  AI-assisted upgrade workflows can help teams compare package versions, follow official upgrade guidance, update repetitive code, run the test suite, and report what still fails.
&lt;/p&gt;

&lt;p&gt;
  That does not make an upgrade automatic or risk-free.
&lt;/p&gt;

&lt;p&gt;
  An AI agent cannot know every undocumented production dependency, every unusual database record, or every client-specific behavior.
&lt;/p&gt;

&lt;p&gt;
  But it can turn an upgrade from a manual search-and-replace exercise into a structured engineering loop.
&lt;/p&gt;

&lt;p&gt;
  The team still owns the final diff.
&lt;/p&gt;

&lt;h2&gt;Tests are the safety system for AI-assisted modernization&lt;/h2&gt;

&lt;p&gt;
  AI is useful in legacy work only when it makes change safer.
&lt;/p&gt;

&lt;p&gt;
  Before asking an agent to refactor old code, use it to help document and test the existing behavior.
&lt;/p&gt;

&lt;p&gt;
  These are often called characterization tests: they capture what the application does today, including behavior the team may not fully understand.
&lt;/p&gt;

&lt;p&gt;
  For an old support dashboard, that might include authorization rules, filters, sorting, ticket assignments, status transitions, notifications, exports, and tenant isolation.
&lt;/p&gt;

&lt;p&gt;
  Once those behaviors are protected, the agent can refactor with a clear signal when something breaks.
&lt;/p&gt;

&lt;p&gt;
  AI assistants can help generate unit tests in the IDE and show proposed test code for review.
&lt;/p&gt;

&lt;p&gt;
  But this part is important: an AI-generated test is not automatically a good test.
&lt;/p&gt;

&lt;p&gt;
  Sometimes the test simply repeats the same wrong assumption as the generated code. Sometimes it tests implementation details instead of behavior. Sometimes it misses authorization, edge cases, failure states, or multi-tenant boundaries.
&lt;/p&gt;

&lt;p&gt;
  The developer still needs to ask:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Is this testing behavior or implementation details?&lt;/li&gt;
  &lt;li&gt;Does it cover authorization?&lt;/li&gt;
  &lt;li&gt;Does it cover another tenant trying to access the record?&lt;/li&gt;
  &lt;li&gt;Does it cover invalid and incomplete data?&lt;/li&gt;
  &lt;li&gt;Does it cover failure and retry states?&lt;/li&gt;
  &lt;li&gt;Would this test have caught the original bug?&lt;/li&gt;
  &lt;li&gt;Did the agent weaken an assertion just to make the suite pass?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  The goal is not more tests.
&lt;/p&gt;

&lt;p&gt;
  The goal is more confidence.
&lt;/p&gt;

&lt;h2&gt;Laravel PAO makes the test loop better for agents&lt;/h2&gt;

&lt;p&gt;
  Laravel recently introduced PAO, or PHP agent-optimized output.
&lt;/p&gt;

&lt;p&gt;
  Test runners and analysis tools normally produce terminal output designed for humans: colors, progress dots, tables, warnings, and decorative formatting.
&lt;/p&gt;

&lt;p&gt;
  That output can waste context and make it harder for an AI agent to locate the actual failure.
&lt;/p&gt;

&lt;p&gt;
  Laravel PAO returns compact, structured output for supported commands when they are being run by an AI agent.
&lt;/p&gt;

&lt;p&gt;
  This sounds like a small feature, but it improves the most common agent loop:
&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Run the tests.&lt;/li&gt;
  &lt;li&gt;Find the failure.&lt;/li&gt;
  &lt;li&gt;Edit the relevant code.&lt;/li&gt;
  &lt;li&gt;Run the tests again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
  When an agent receives the failing assertion, file, line number, and error details directly, it spends less time interpreting terminal noise and more time solving the actual problem.
&lt;/p&gt;

&lt;h2&gt;AI features need their own testing strategy&lt;/h2&gt;

&lt;p&gt;
  Adding an AI-powered feature creates a second testing problem.
&lt;/p&gt;

&lt;p&gt;
  The application logic may be deterministic, but the model output is not.
&lt;/p&gt;

&lt;p&gt;
  Suppose the modernized support dashboard includes an AI-generated ticket summary. A normal test should not call a live provider and compare the exact paragraph returned by the model. That would be slow, expensive, and unreliable.
&lt;/p&gt;

&lt;p&gt;
  Instead, the regular application suite should test deterministic boundaries:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Was the correct agent invoked?&lt;/li&gt;
  &lt;li&gt;Was the job dispatched?&lt;/li&gt;
  &lt;li&gt;Was tenant authorization enforced?&lt;/li&gt;
  &lt;li&gt;Was the result stored in the correct record?&lt;/li&gt;
  &lt;li&gt;Did the response match the expected structured schema?&lt;/li&gt;
  &lt;li&gt;Was the failure state handled?&lt;/li&gt;
  &lt;li&gt;Was an automatic action blocked until human approval?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  Laravel AI SDK includes testing helpers such as fakes and assertions for AI operations, allowing teams to test application behavior without making uncontrolled live model calls.
&lt;/p&gt;

&lt;p&gt;
  Model quality should be evaluated separately.
&lt;/p&gt;

&lt;p&gt;
  Keep a small set of representative examples and expected qualities: correct category, acceptable summary, no invented facts, no cross-tenant data, appropriate escalation, and no unsafe action.
&lt;/p&gt;

&lt;p&gt;
  Unit tests protect the application.
&lt;/p&gt;

&lt;p&gt;
  Evaluations protect the AI behavior.
&lt;/p&gt;

&lt;p&gt;
  You need both.
&lt;/p&gt;

&lt;h2&gt;A practical modernization flow&lt;/h2&gt;

&lt;p&gt;
  Imagine an old customer-support dashboard built in Laravel.
&lt;/p&gt;

&lt;p&gt;
  It still works, but the ticket table has too many columns, filters are inconsistent, the detail page is difficult to scan, and support managers spend too much time reading repetitive requests.
&lt;/p&gt;

&lt;p&gt;
  A practical AI-assisted modernization flow could look like this.
&lt;/p&gt;

&lt;h3&gt;1. Protect the current behavior&lt;/h3&gt;

&lt;p&gt;
  Before redesigning anything, map the existing route, controller, policies, database queries, frontend components, jobs, and notifications.
&lt;/p&gt;

&lt;p&gt;
  Ask the coding agent to identify missing coverage, then add characterization tests for the behavior users depend on.
&lt;/p&gt;

&lt;p&gt;
  Do this before the refactor, not after it.
&lt;/p&gt;

&lt;h3&gt;2. Redesign the workflow with Figma’s agent&lt;/h3&gt;

&lt;p&gt;
  Bring the current interface, user feedback, support metrics, design system, and project requirements into Figma.
&lt;/p&gt;

&lt;p&gt;
  Ask the agent to explore a cleaner ticket inbox and a more focused ticket detail page.
&lt;/p&gt;

&lt;p&gt;
  Create reusable rules or skills that enforce the team’s component, accessibility, and layout standards.
&lt;/p&gt;

&lt;p&gt;
  The goal is not a beautiful concept.
&lt;/p&gt;

&lt;p&gt;
  The goal is a better working day for the support team.
&lt;/p&gt;

&lt;h3&gt;3. Validate the interaction&lt;/h3&gt;

&lt;p&gt;
  Use Figma Make or code-layer workflows to create a working version of the new flow.
&lt;/p&gt;

&lt;p&gt;
  Let real support managers use it.
&lt;/p&gt;

&lt;p&gt;
  Watch where they hesitate. Check whether the AI summary helps or distracts. Confirm which information they need before approving a suggested response.
&lt;/p&gt;

&lt;p&gt;
  Fix the workflow before rebuilding the backend.
&lt;/p&gt;

&lt;h3&gt;4. Connect the design to the real codebase&lt;/h3&gt;

&lt;p&gt;
  Use Figma MCP to provide the selected design context to the coding agent.
&lt;/p&gt;

&lt;p&gt;
  Map important design components to production components with Code Connect.
&lt;/p&gt;

&lt;p&gt;
  The agent should know which table, button, modal, badge, and form components already exist.
&lt;/p&gt;

&lt;h3&gt;5. Implement one vertical slice&lt;/h3&gt;

&lt;p&gt;
  In PhpStorm with Junie, or in Cursor, Claude Code, or GitHub Copilot, ask the agent to inspect the existing implementation and propose a plan.
&lt;/p&gt;

&lt;p&gt;
  Start with the ticket detail page. Keep the old route available. Ship the new version behind a feature flag. Run the existing and newly generated tests after every meaningful change.
&lt;/p&gt;

&lt;p&gt;
  Do not modernize the entire support module in one task.
&lt;/p&gt;

&lt;h3&gt;6. Add one narrow AI feature&lt;/h3&gt;

&lt;p&gt;
  Once the new workflow is stable, add ticket summarization through Laravel AI SDK.
&lt;/p&gt;

&lt;p&gt;
  Do not begin with full automation. The first version can summarize the request, classify it, suggest urgency, and draft a response for human approval.
&lt;/p&gt;

&lt;p&gt;
  That is useful, measurable, and relatively safe.
&lt;/p&gt;

&lt;h3&gt;7. Test, release, and measure&lt;/h3&gt;

&lt;p&gt;
  Fake model responses in the normal test suite. Evaluate model quality separately. Use agent-friendly test output to improve the feedback loop. Release the new workflow to a small group and measure review time, error rate, adoption, and support-team feedback.
&lt;/p&gt;

&lt;p&gt;
  Then decide whether the next investment should be smarter routing, suggested replies, better search, or simply another redesigned screen.
&lt;/p&gt;

&lt;h2&gt;Guardrails matter more than prompts&lt;/h2&gt;

&lt;p&gt;
  A coding agent working in a legacy product should have explicit boundaries.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It should not rewrite unrelated files.&lt;/li&gt;
  &lt;li&gt;It should not introduce a new frontend framework without approval.&lt;/li&gt;
  &lt;li&gt;It should not create duplicate components.&lt;/li&gt;
  &lt;li&gt;It should not change the database schema without a migration and rollback plan.&lt;/li&gt;
  &lt;li&gt;It should not weaken tests to make them pass.&lt;/li&gt;
  &lt;li&gt;It should not bypass policies or tenant boundaries.&lt;/li&gt;
  &lt;li&gt;It should not send sensitive production data to an external model without an approved data policy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  The agent can inspect, plan, implement, run tests, and review the diff.
&lt;/p&gt;

&lt;p&gt;
  The team still owns the architecture, security, product decisions, and release.
&lt;/p&gt;

&lt;p&gt;
  That is the real AI modernization stack: not one model and not one magic prompt, but a connected workflow with context at every stage.
&lt;/p&gt;

&lt;p&gt;
  Figma’s agent helps the team rethink the experience. Figma MCP and Code Connect carry design intent into development. PhpStorm, Junie, Cursor, Claude Code, or GitHub Copilot help engineers understand and change the codebase. Laravel Boost gives those agents framework-specific context. Laravel AI SDK adds useful intelligence to the product. Tests, fakes, evaluations, and agent-friendly output keep the process under control.
&lt;/p&gt;

&lt;p&gt;
  The goal is not to generate more code.
&lt;/p&gt;

&lt;p&gt;
  The goal is to improve valuable software without putting the business at risk.
&lt;/p&gt;





&lt;p&gt;
  At &lt;a href="https://kavitasystems.com" rel="noopener noreferrer"&gt;&lt;strong&gt;Kavita Systems&lt;/strong&gt;&lt;/a&gt;, we help teams modernize existing web products, improve legacy Laravel workflows, and introduce practical AI features without committing to a risky full rewrite.
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;Need to understand where AI can create value in your existing product?&lt;/strong&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>laravel</category>
      <category>figma</category>
    </item>
    <item>
      <title>Laravel 13 Makes the “AI Means Python” Argument Weaker</title>
      <dc:creator>VitaliiK</dc:creator>
      <pubDate>Wed, 24 Jun 2026 12:07:59 +0000</pubDate>
      <link>https://dev.to/kavitasystems/laravel-13-makes-the-ai-means-python-argument-weaker-3flg</link>
      <guid>https://dev.to/kavitasystems/laravel-13-makes-the-ai-means-python-argument-weaker-3flg</guid>
      <description>&lt;p&gt;For a long time, adding AI to a Laravel product usually meant one thing: you had to bring another service into the stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The architecture often looked like this:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn87vmurbprwkl2bz8si9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn87vmurbprwkl2bz8si9.png" alt="Laravel application connected to a Python AI bridge" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, this setup feels reasonable.&lt;/p&gt;

&lt;p&gt;Laravel handles the product. Python handles the AI. FastAPI or Flask sits in the middle. The bridge sends text to an embeddings service, talks to a vector database, calls an LLM provider, and sends the answer back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For a prototype, that is fine.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For a demo, it may even look impressive.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But then the product goes live.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And suddenly that “small Python bridge” is not small anymore. It needs deployment, monitoring, logs, retries, permissions, rate limits, error handling, security reviews, and someone on the team who understands why a payment flow in Laravel now depends on a Python service nobody wants to touch.&lt;/p&gt;

&lt;p&gt;The problem was never Python itself.&lt;/p&gt;

&lt;p&gt;The problem is using Python as a bridge only because Laravel used to have no native way to deal with AI workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That is changing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With Laravel 13 and the Laravel AI SDK, many things that previously required a separate Python service can now live inside the Laravel application: agents, tools, embeddings, vector search, RAG workflows, and AI provider orchestration.&lt;/p&gt;

&lt;p&gt;Laravel also supports vector columns in PostgreSQL through pgvector, so semantic search can sit much closer to your Eloquent models, policies, queues, and business logic.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This does not mean Python is dead.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It means the Python bridge is no longer the default answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Was Never Python
&lt;/h2&gt;

&lt;p&gt;Python is still great for machine learning research, notebooks, model training, data science, experiments, and custom ML pipelines.&lt;/p&gt;

&lt;p&gt;If your team is training models or building research-heavy AI infrastructure, Python probably still belongs in your stack.&lt;/p&gt;

&lt;p&gt;But most product teams are not doing that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most product teams want something much more practical.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzhrx71wwxglbx3wqjjpi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzhrx71wwxglbx3wqjjpi.png" alt="Product teams using AI for application workflows" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They want to search a product catalog by meaning. They want to answer questions using internal documentation. They want to explain payment errors, help users book a service, prepare a stock order, summarize support tickets, or route a request to the right workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That is not machine learning research.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That is application engineering.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And application engineering is exactly where Laravel is strong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real question is not:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can Python do this?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Of course it can.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The better question is:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do we need a separate Python service only to call an LLM, generate embeddings, search vectors, and trigger business workflows?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In many Laravel products, the answer is now: no.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Are Actually Killing
&lt;/h2&gt;

&lt;p&gt;We are not killing Python.&lt;/p&gt;

&lt;p&gt;We are killing an awkward split in the architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9lb3cre8fc7c239s8bpg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9lb3cre8fc7c239s8bpg.png" alt="Awkward split between Laravel and a Python service" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think about a real product.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Laravel knows the user. Laravel knows the order. Laravel knows the permissions. Laravel knows the payment state. Laravel knows the booking rules. Laravel knows the audit log.&lt;/p&gt;

&lt;p&gt;But then we ask a separate Python service to make the AI decision.&lt;/p&gt;

&lt;p&gt;That split feels wrong because the AI layer is not floating somewhere outside the product. It is supposed to help the product make better decisions, explain things better, and guide users through existing workflows.&lt;/p&gt;

&lt;p&gt;If the business logic already lives in Laravel, the AI workflow should be close to that business logic.&lt;/p&gt;

&lt;p&gt;With a native Laravel AI stack, the architecture becomes much easier to understand:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fazlr9ngaqeo38fl8wp9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fazlr9ngaqeo38fl8wp9w.png" alt="Native Laravel AI architecture with agents and tools" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The user talks to the Laravel application. The Laravel application calls an AI agent. The agent uses allowed tools. The tools call Eloquent models, external APIs, policies, queues, and services. The LLM helps understand language, but Laravel still controls the workflow.&lt;/p&gt;

&lt;p&gt;That means one codebase, one permission model, one deployment pipeline, one logging system, and one team that can understand the full flow.&lt;/p&gt;

&lt;p&gt;That is the real win.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAG Is Not Just “Chat With PDF”
&lt;/h2&gt;

&lt;p&gt;A lot of people still imagine RAG as a chatbot that reads PDFs.&lt;/p&gt;

&lt;p&gt;That is the beginner version.&lt;/p&gt;

&lt;p&gt;In a real product, RAG is more useful than that. It is a way to give the AI the right business context before it answers or acts.&lt;/p&gt;

&lt;p&gt;That context can come from many places:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhj55mk4kh6pe8qo6n05j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhj55mk4kh6pe8qo6n05j.png" alt="RAG context sources for business applications" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But here is the important part: RAG should not become your source of truth.&lt;/p&gt;

&lt;p&gt;RAG is great for finding, explaining, comparing, summarizing, and suggesting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fngks7awkiollq1g3polc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fngks7awkiollq1g3polc.png" alt="RAG use cases: finding, explaining, comparing, and suggesting" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But real product actions still belong to your domain APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8c3t00a3bqfwft55d8hn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8c3t00a3bqfwft55d8hn.png" alt="Domain APIs remain the source of truth" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An AI agent can help a user choose a laptop. But the catalog API must confirm the actual price and inventory.&lt;/p&gt;

&lt;p&gt;An AI agent can explain a cancellation policy. But the booking API must confirm whether this specific reservation can still be canceled.&lt;/p&gt;

&lt;p&gt;An AI agent can prepare a stock order. But the brokerage system must execute it only after confirmation, risk checks, and compliance rules.&lt;/p&gt;

&lt;p&gt;This is the line that matters:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI can help the user understand and prepare the action. The backend must still validate and execute the action.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why Native Vector Search Matters
&lt;/h2&gt;

&lt;p&gt;Before native vector support, adding AI search to Laravel usually meant adding more infrastructure.&lt;/p&gt;

&lt;p&gt;You had Laravel for the product, FastAPI for the bridge, LangChain or custom orchestration for the AI flow, OpenAI or another model provider, Pinecone or another vector database, Redis or queues, custom sync jobs, and custom observability.&lt;/p&gt;

&lt;p&gt;That is a lot of moving parts for a feature that may start with one simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can users search our data by meaning instead of exact keywords?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now many teams can start much simpler.&lt;/p&gt;

&lt;p&gt;For example, a product table can store an embedding directly in PostgreSQL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;ensureVectorExtensionExists&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'products'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Blueprint&lt;/span&gt; &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'description'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'attributes'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;nullable&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;vector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'embedding'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dimensions&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1536&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;timestamps&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And semantic search can stay inside Eloquent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="nv"&gt;$products&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Product&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'is_active'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;whereVectorSimilarTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'embedding'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'a lightweight laptop for Figma, coding, and video calls'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;minSimilarity&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.55&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not only about writing fewer lines of code.&lt;/p&gt;

&lt;p&gt;It is about keeping search close to your existing models, filters, tenant scopes, policies, queues, and database logic.&lt;/p&gt;

&lt;p&gt;When retrieval lives inside the same application, it is easier to reason about who can see what, what should be indexed, and what should never be exposed to the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example 1: E-Commerce Search That Understands Human Requests
&lt;/h2&gt;

&lt;p&gt;Traditional product search works well when the user knows exactly what they want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;iPhone 15 Pro 256GB&lt;/li&gt;
&lt;li&gt;Nike Air Max size 10&lt;/li&gt;
&lt;li&gt;Logitech MX Master 3S&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But real users do not always search like that.&lt;/p&gt;

&lt;p&gt;Sometimes they write:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I need a gift for someone who travels a lot.&lt;/p&gt;

&lt;p&gt;Find me a laptop for design work and Laravel development.&lt;/p&gt;

&lt;p&gt;Show me something useful for a home office under $300.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Keyword search can easily miss the intent behind these requests.&lt;/p&gt;

&lt;p&gt;Semantic search works better because it compares meaning, not just words.&lt;/p&gt;

&lt;p&gt;A product search tool can look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SearchProductsTool&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nv"&gt;$query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;?int&lt;/span&gt; &lt;span class="nv"&gt;$maxPrice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&gt;array&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Product&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'is_active'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;when&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$maxPrice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$q&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$q&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'price'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;='&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$maxPrice&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;whereVectorSimilarTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'embedding'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;minSimilarity&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.55&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
                &lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'price'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'short_description'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;])&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;toArray&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the user can say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I need a compact gift for a colleague who flies twice a month.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The system can return travel adapters, power banks, compact headphones, laptop sleeves, or carry-on accessories even if the user never typed those exact words.&lt;/p&gt;

&lt;p&gt;That is not just a “cool AI feature.”&lt;/p&gt;

&lt;p&gt;That is a better shopping experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example 2: Booking Systems Where AI Understands the Intent
&lt;/h2&gt;

&lt;p&gt;Booking platforms are full of rules.&lt;/p&gt;

&lt;p&gt;Cancellation windows. Slot availability. Deposits. Staff schedules. Seasonal prices. Minimum duration. No-show rules. Different policies for different services.&lt;/p&gt;

&lt;p&gt;Users do not want to read all of that.&lt;/p&gt;

&lt;p&gt;They want to ask simple questions:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can I book a massage for two people this Saturday after 4 PM?&lt;/p&gt;

&lt;p&gt;Find me an apartment in Lviv for the weekend with parking and free cancellation.&lt;/p&gt;

&lt;p&gt;Can I cancel my booking if check-in is tomorrow?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AI is useful here because it can translate messy human language into a clean backend workflow.&lt;/p&gt;

&lt;p&gt;It can search the policy documents, understand the request, and call the booking API to check real-time availability.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CheckAvailabilityTool&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;array&lt;/span&gt; &lt;span class="nv"&gt;$payload&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&gt;array&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;app&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;BookingApi&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;availableSlots&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'service'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'date'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;guests&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'guests'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'after'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;maxPrice&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'max_price'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A healthy booking flow should look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ooosx9zllqpt7qskict.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ooosx9zllqpt7qskict.png" alt="Safe booking flow with AI and Laravel" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The AI should not randomly finalize a reservation.&lt;/p&gt;

&lt;p&gt;It should not guess dates. It should not ignore cancellation rules. It should not bypass your booking engine.&lt;/p&gt;

&lt;p&gt;AI helps the user move faster.&lt;/p&gt;

&lt;p&gt;Laravel still owns the transaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example 3: Payments, Banking, and Stock Orders
&lt;/h2&gt;

&lt;p&gt;Financial workflows are where AI needs the shortest leash.&lt;/p&gt;

&lt;p&gt;A user might say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Buy $500 worth of Apple stock if the fee is under $2.&lt;/p&gt;

&lt;p&gt;Can I pay this invoice from my business account?&lt;/p&gt;

&lt;p&gt;Why was my card payment declined?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AI can help with all of these requests.&lt;/p&gt;

&lt;p&gt;But it should not directly move money without confirmation.&lt;/p&gt;

&lt;p&gt;In payments, banking, and brokerage systems, the AI should usually do three things: explain what is happening, prepare the next step, and verify the conditions.&lt;/p&gt;

&lt;p&gt;It should not silently execute a payment, bank transfer, refund, or stock trade.&lt;/p&gt;

&lt;p&gt;A safer brokerage flow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User asks to buy stock.&lt;/li&gt;
&lt;li&gt;AI checks account status.&lt;/li&gt;
&lt;li&gt;AI gets quote and estimated fees.&lt;/li&gt;
&lt;li&gt;AI checks available balance.&lt;/li&gt;
&lt;li&gt;Laravel creates a pending trade.&lt;/li&gt;
&lt;li&gt;User reviews and confirms.&lt;/li&gt;
&lt;li&gt;Backend executes the trade.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The AI-facing tool should create a pending trade, not execute the order:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CreatePendingTradeTool&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nv"&gt;$symbol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="nv"&gt;$amount&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&gt;array&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;Gate&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;authorize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'createTradeIntent'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;user&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

        &lt;span class="nv"&gt;$quote&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;app&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;BrokerageApi&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;quote&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$symbol&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nv"&gt;$fees&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;app&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;BrokerageApi&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;estimateFees&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$symbol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$amount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="nv"&gt;$trade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;PendingTrade&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
            &lt;span class="s1"&gt;'user_id'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
            &lt;span class="s1"&gt;'symbol'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$symbol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'amount'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$amount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'quote_snapshot'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$quote&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'estimated_fees'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$fees&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'status'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'awaiting_confirmation'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;]);&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$trade&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;toArray&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final execution should stay inside the normal backend flow, with transactions, risk checks, policies, and audit logs.&lt;/p&gt;

&lt;p&gt;The same idea applies to payments.&lt;/p&gt;

&lt;p&gt;AI can create a payment intent. AI can explain why a transaction failed. AI can suggest another payment method.&lt;/p&gt;

&lt;p&gt;But it should not bypass 3DS, fraud checks, limits, compliance rules, or explicit user confirmation.&lt;/p&gt;

&lt;p&gt;That is not an AI limitation.&lt;/p&gt;

&lt;p&gt;That is responsible engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Put It Together in Laravel
&lt;/h2&gt;

&lt;p&gt;A clean Laravel AI architecture can be organized around agents and tools.&lt;/p&gt;

&lt;p&gt;The agent understands the user request. The tools define what the AI is allowed to do. Laravel services handle the real business logic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents: CommerceAgent, BookingAgent, BankingAssistantAgent.&lt;/li&gt;
&lt;li&gt;Tools: SearchProductsTool, CheckAvailabilityTool, CreateReservationHoldTool, CreatePaymentIntentTool, CreatePendingTradeTool, SearchPolicyDocumentsTool.&lt;/li&gt;
&lt;li&gt;Services: CatalogApi, BookingApi, PaymentGateway, BrokerageApi, RiskService.&lt;/li&gt;
&lt;li&gt;Models: Product, Booking, Payment, PendingTrade, PolicyDocument.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most important idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An AI agent should not be a god object. It should be a controlled interface between the user, the LLM, and your backend.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example, a commerce agent may be allowed to search products, check delivery availability, create reservation holds, and prepare payment intents.&lt;/p&gt;

&lt;p&gt;But it should not be allowed to execute payments, trades, refunds, or final bookings without explicit confirmation and server-side validation.&lt;/p&gt;

&lt;p&gt;This is the mental model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The LLM understands the request.&lt;/li&gt;
&lt;li&gt;The agent decides which tools are allowed.&lt;/li&gt;
&lt;li&gt;The tools call the real backend.&lt;/li&gt;
&lt;li&gt;Laravel enforces permissions and policies.&lt;/li&gt;
&lt;li&gt;The user confirms critical actions.&lt;/li&gt;
&lt;li&gt;The system logs everything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is production architecture.&lt;/p&gt;

&lt;p&gt;Not magic.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three-API Pattern
&lt;/h2&gt;

&lt;p&gt;Most useful AI products are not just “LLM plus database.”&lt;/p&gt;

&lt;p&gt;They are integrations.&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="https://kavitasystems.com/our-services/laravel-integrations-api-solutions" rel="noopener noreferrer"&gt;Laravel third-party API integration&lt;/a&gt; becomes more than a technical task. It becomes the layer that connects AI intent with real product systems: marketplaces, booking engines, payment gateways, banking APIs, and brokerage platforms.&lt;/p&gt;

&lt;p&gt;Imagine an AI-powered commerce platform with three external APIs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Marketplace API:&lt;/strong&gt; products, prices, inventory, and attributes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Booking API:&lt;/strong&gt; delivery slots, appointments, and reservations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payment, banking, or brokerage API:&lt;/strong&gt; payment intents, balances, fees, and stock orders.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without AI, the user has to move through all these systems manually.&lt;/p&gt;

&lt;p&gt;With AI, the user can simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find me a laptop for design work under $1,500, deliver it Friday evening, and prepare the payment from my business card.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The system can break this into a structured flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run semantic product search.&lt;/li&gt;
&lt;li&gt;Check inventory and current price.&lt;/li&gt;
&lt;li&gt;Check delivery slot availability.&lt;/li&gt;
&lt;li&gt;Create a payment intent.&lt;/li&gt;
&lt;li&gt;Ask the user for confirmation.&lt;/li&gt;
&lt;li&gt;Place the final order.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is where AI becomes valuable.&lt;/p&gt;

&lt;p&gt;Not because it replaces developers.&lt;/p&gt;

&lt;p&gt;Because it turns messy human intent into structured backend operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Dedicated Vector Databases Still Make Sense
&lt;/h2&gt;

&lt;p&gt;PostgreSQL with pgvector is a great starting point for many Laravel applications.&lt;/p&gt;

&lt;p&gt;It keeps the stack simple and keeps the data close to the domain model.&lt;/p&gt;

&lt;p&gt;But dedicated vector databases are not going away.&lt;/p&gt;

&lt;p&gt;Pinecone, Milvus, Qdrant, Weaviate, and similar systems can still make sense if you deal with very large vector datasets, advanced hybrid search, complex multi-tenant indexing, or an existing AI/search infrastructure.&lt;/p&gt;

&lt;p&gt;In that case, Laravel can still remain the main application. The only difference is that your tool calls an external vector-store adapter instead of Eloquent.&lt;/p&gt;

&lt;p&gt;The point is not “never use external vector databases.”&lt;/p&gt;

&lt;p&gt;The point is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not add another runtime, another service, and another deployment pipeline unless the product actually needs it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Start simple.&lt;/p&gt;

&lt;p&gt;Scale when the data proves you need to scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Production Checklist
&lt;/h2&gt;

&lt;p&gt;AI in production is not only about prompts.&lt;/p&gt;

&lt;p&gt;It is mostly about boring engineering.&lt;/p&gt;

&lt;p&gt;And boring engineering is exactly what keeps AI features safe.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use idempotency keys
&lt;/h3&gt;

&lt;p&gt;Payment creation, booking holds, refunds, and trade intents must be idempotent.&lt;/p&gt;

&lt;p&gt;If the model retries a tool call, the system should not create two payments, two bookings, or two stock orders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Separate read tools from write tools
&lt;/h3&gt;

&lt;p&gt;AI can have many read tools, but write tools should be limited.&lt;/p&gt;

&lt;p&gt;Critical actions need explicit user confirmation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Log every tool call
&lt;/h3&gt;

&lt;p&gt;You should know what the user asked, what context was retrieved, what tool was selected, what input was sent, what output came back, what the model answered, and what action was finally executed.&lt;/p&gt;

&lt;p&gt;This matters for debugging. In finance, healthcare, e-commerce, and other sensitive products, it matters even more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enforce Laravel policies
&lt;/h3&gt;

&lt;p&gt;The AI agent must never become a permission bypass.&lt;/p&gt;

&lt;p&gt;If the user cannot access a booking, invoice, account, payment, or trade manually, the AI should not access it either.&lt;/p&gt;

&lt;h3&gt;
  
  
  Queue expensive work
&lt;/h3&gt;

&lt;p&gt;Embedding generation, document parsing, catalog reindexing, policy updates, and large sync jobs should run in queues.&lt;/p&gt;

&lt;p&gt;Do not block the user because the system is rebuilding vectors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Never trust RAG for real-time facts
&lt;/h3&gt;

&lt;p&gt;RAG can retrieve policy context.&lt;/p&gt;

&lt;p&gt;But real-time values must come from real systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Price comes from the Catalog API.&lt;/li&gt;
&lt;li&gt;Availability comes from the Booking API.&lt;/li&gt;
&lt;li&gt;Balance comes from the Banking API.&lt;/li&gt;
&lt;li&gt;Fees come from the Brokerage API.&lt;/li&gt;
&lt;li&gt;Payment state comes from the payment gateway.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Require confirmation for money movement
&lt;/h3&gt;

&lt;p&gt;Payments, refunds, bank transfers, and stock purchases should always require explicit confirmation.&lt;/p&gt;

&lt;p&gt;AI can prepare the action. The backend executes it. The user approves it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for PHP Teams
&lt;/h2&gt;

&lt;p&gt;For years, PHP developers heard the same story:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI is Python territory.&lt;/p&gt;

&lt;p&gt;PHP is for websites and CRUD.&lt;/p&gt;

&lt;p&gt;If you want AI, build a Python service.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That story is outdated.&lt;/p&gt;

&lt;p&gt;Modern PHP applications are not just templates and forms.&lt;/p&gt;

&lt;p&gt;They run marketplaces, CRMs, fintech products, booking platforms, SaaS dashboards, internal tools, support systems, and high-volume APIs.&lt;/p&gt;

&lt;p&gt;These are exactly the kinds of products where AI agents, RAG, semantic search, and workflow automation can create real value.&lt;/p&gt;

&lt;p&gt;And many of those systems already live in Laravel.&lt;/p&gt;

&lt;p&gt;So the AI layer should not automatically be outsourced to a separate Python bridge.&lt;/p&gt;

&lt;p&gt;It should live where the business logic already lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Python Still Belongs in the Architecture
&lt;/h2&gt;

&lt;p&gt;Python still has an important role.&lt;/p&gt;

&lt;p&gt;Use Python when you are training models, running notebooks, building custom ML pipelines, doing offline analytics, processing large data science workloads, experimenting with open-source models, or building specialized NLP and computer vision systems.&lt;/p&gt;

&lt;p&gt;But do not use Python only because the industry got used to saying “AI equals Python.”&lt;/p&gt;

&lt;p&gt;If all you need is LLM calls, embeddings, RAG, vector search, agents, tool calling, and business workflow orchestration, Laravel is now a serious option.&lt;/p&gt;

&lt;p&gt;And in many product teams, it may be the cleaner option.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;The future of AI in business applications is not a chatbot sitting somewhere beside the product.&lt;/p&gt;

&lt;p&gt;The future is AI built directly into the workflows people already use.&lt;/p&gt;

&lt;p&gt;In eCommerce, that means an assistant that understands product catalogs, inventory, return rules, and what the customer is actually trying to buy.&lt;/p&gt;

&lt;p&gt;In booking platforms, it means an assistant that can read availability, pricing rules, cancellation policies, time slots, and user constraints before suggesting the next step.&lt;/p&gt;

&lt;p&gt;In payments, banking, or brokerage products, it means AI that can explain failures, prepare safe actions, clarify intent, and support decisions without bypassing validation, permissions, or compliance.&lt;/p&gt;

&lt;p&gt;That kind of AI does not need to live in a separate Python bridge by default.&lt;/p&gt;

&lt;p&gt;It needs to live close to your models, policies, queues, APIs, transactions, logs, permissions, and users.&lt;/p&gt;

&lt;p&gt;In other words, production AI needs to live inside the application layer where your business logic already works.&lt;/p&gt;

&lt;p&gt;For PHP and Laravel teams, that changes the conversation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One codebase.&lt;/li&gt;
&lt;li&gt;One language.&lt;/li&gt;
&lt;li&gt;One deployment pipeline.&lt;/li&gt;
&lt;li&gt;One observability stack.&lt;/li&gt;
&lt;li&gt;One place for business rules, permissions, and audit logs.&lt;/li&gt;
&lt;li&gt;Zero unnecessary bridge services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuj8o2yu46vrqdpu701jg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuj8o2yu46vrqdpu701jg.png" alt="Production AI embedded inside the application workflow" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kill the unnecessary Python bridge.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not because Python is bad.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;_But because production AI belongs where your product logic, user data, permissions, APIs, and business workflows already live.&lt;br&gt;
_&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>architecture</category>
      <category>development</category>
      <category>php</category>
    </item>
  </channel>
</rss>
