Staff augmentation

How to hire the right engineers to meet strategic goals
Sep 29th 26 - by Devico Team
Discover how to hire the right engineers by matching capabilities, seniority, and acquisition models to your business strategy.
Hire
Hire by role
Hire Front-end developers
Hire Back-end developers
Hire Full-stack developers
Hire Android developers
Hire iOS developers
Hire Mobile developers
Hire AI engineers
Hire by skill
Hire JavaScript developers
Hire React Native developers
Hire React.js developers
Hire .NET developers
Hire TypeScript developers
Hire Flutter developers
Hire Golang developers
Hire by country
Devs in Ukraine
Expirienced engineers with strong product focus and fast integration.
Devs in Poland
EU-based developers with reliable delivery and high standards.
Devs in Argentina
Senior engineers with strong technical depth and timezone alignment.

JavaScript Development
September 30, 2026 - by Devico Team
Summarize with:
React Native 0.82 removed the option to fall back to the legacy architecture. Since its release in October 2025, setting newArchEnabled=false no longer changes anything: the old bridge is gone, and every application runs on the New Architecture.
That change made a large portion of agency portfolio material less useful. A vendor may have spent years building React Native applications and still have limited experience with the runtime you will use today.
Portfolio quality, hourly rates, communication, and client reviews still matter. They simply do not tell you whether a team has migrated a production application, written a Turbo Native Module, worked through incompatible dependencies, or operated an over-the-air update channel without breaking installed versions.
Those are the questions that now separate credible React Native teams from agencies relying on experience that has begun to age.
A React Native development company should be able to demonstrate five things before you hire it:
Production experience with the New Architecture, preferably including migrations from the legacy bridge.
Engineers who can write native Swift and Kotlin code, not only integrate existing packages.
An engagement model that fits the technical leadership available inside your company.
A credible release and maintenance process that continues after launch.
Contract terms under which you own the code, signing credentials, repositories, and store accounts.
The rest of the evaluation is about testing those claims with evidence rather than accepting them at face value.
The New Architecture became the default in React Native 0.76, released in late 2024. A year later, React Native 0.82 became the first release to run entirely on it.
This was more than an internal framework update. The legacy architecture moved serialized JSON messages between JavaScript and native code through an asynchronous bridge. Its replacement introduced several interconnected components:
JSI allows JavaScript to hold direct references to C++ objects.
Fabric replaces the previous rendering system.
TurboModules load native modules when required rather than loading everything during startup.
Codegen generates type-safe integration code from module and component specifications.
For buyers, the main consequence is not automatic application speed. The New Architecture removes some old constraints and exposes better primitives, but it does not optimize an application by itself. A team that understands those primitives can reduce overhead and design better native integrations. A team that performs a mechanical migration may end up with much the same application — and a new collection of build errors and crashes.
The 2025 State of React Native survey, based on 3,501 responses and published in early 2026, illustrates the gap.
Although 74% of respondents had used the New Architecture during the previous year:
33% had worked directly with JSI;
27% had used Codegen;
24% had built a Turbo Native Module.
Most React Native developers now run applications on the New Architecture because their framework version requires it. Far fewer have written code that uses its underlying capabilities.
A vendor saying, "We support the New Architecture," may only mean that its recent projects compile with a current React Native version. Ask what its engineers have actually built, migrated, or debugged.
React knowledge, navigation patterns, interface design, state management, and general product engineering remain relevant. The experience that has lost value is more specific:
Native modules written around RCTBridgeModule, bridge callbacks, and access to the global bridge object.
Debugging practices built around Flipper or the old remote-debugging workflow.
Dependency recommendations formed before packages had to prove compatibility with the New Architecture.
The final point is easy to overlook. A senior engineer may have an established list of preferred React Native libraries, but some of those packages may now be abandoned, incompatible, or supported only in newer major versions. Poor dependency choices often remain hidden until several weeks into development.
At the close of the State of React Native survey in January 2026, only about 43% of respondents were using version 0.82 or newer. Version 0.81 remained the most common response. Because the project officially supports only the latest three minor releases, a substantial part of the ecosystem was still carrying an upgrade it had not completed.
Some of those teams are development vendors.
This does not mean that an otherwise strong team should be rejected solely because it lacks a long New Architecture history. Skilled engineers can learn a runtime. The commercial risk is paying senior rates while they learn it on your project — and discovering that fact only after delivery begins.
A technically capable vendor can still be a poor fit if its commercial model assumes a level of internal management you do not have.
The deciding question is straightforward: who will own mobile technical direction?
Staff augmentation
Companies with an engineering organization and delivery process, but insufficient React Native capacity or expertise
Your team. External engineers join your repository, ceremonies, and development workflow
You retain control but take on the management load
Dedicated team
Companies with an ongoing mobile roadmap but no complete internal mobile function
The vendor, working against your priorities and roadmap
Less day-to-day control in exchange for a team you do not have to run
Project-based or fixed scope
A clearly specified migration, v1 product, or standalone module with a defined endpoint
The vendor, according to an agreed scope
Predictable initial budget, but expensive changes once the scope moves
If your VP of Engineering or mobile lead can review a Codegen specification and challenge an architectural decision, staff augmentation may be the fastest route. Companies in that position often hire React Native app developers to join an existing team because the delivery process and technical ownership are already in place.
Without someone capable of making those decisions internally, adding contractors to an unowned process tends to produce drift. A dedicated team that includes its own technical lead is usually safer.
Fixed-price React Native work requires a separate warning. Any estimate involving native modules, an existing application, or third-party dependency upgrades is being prepared before the vendor fully understands the dependency tree. That audit may reveal the difference between six weeks of work and sixteen.
A short paid discovery phase is usually more credible than a precise fixed quote based on incomplete information.
"Do you have React Native experience?" produces no useful information. Every shortlisted company will say yes.
Ask for artifacts, decisions, and failure details instead. A vendor without the underlying experience will find those much harder to improvise.
Starting a greenfield project on the New Architecture is relatively easy because current React Native versions enable it by default. Migrating an existing application is more revealing.
A migration forces engineers to inspect dependencies, replace or rewrite native modules, update build configuration, and investigate behavioral differences that a new project may never surface.
Ask:
Which production application did you migrate from the legacy bridge?
Which packages failed during the migration?
Did you replace, fork, upgrade, or rewrite them?
Did you migrate on 0.81 before moving to 0.82, or combine the migration and framework upgrade?
What appeared in crash reporting after the cutover?
The last question is particularly useful. Migration can expose pre-existing errors that the old bridge previously concealed or handled differently. A temporary rise in recorded crashes does not necessarily mean the team introduced new defects. Engineers who have completed real migrations should be able to explain what surfaced and how they distinguished migration issues from previously hidden problems.
A vendor that describes a substantial migration as entirely uneventful either worked on a very simple application or did not monitor it closely.
Integrating an existing package is not the same as creating a native integration.
Sooner or later, many products encounter a requirement without a suitable React Native wrapper: a payment SDK, biometric capability, background process, Bluetooth device, platform-specific lifecycle behavior, or vendor library available only for iOS and Android.
Ask the team to show:
A Codegen specification it wrote.
The corresponding Swift implementation.
The corresponding Kotlin implementation.
A native module maintained in production.
An upstream contribution or New Architecture fix, if one exists.
Open-source work is not mandatory, and its absence should not disqualify a vendor. It is simply useful evidence because it can be inspected independently.
You should also confirm that the engineers who created the examples are available for your project. A technically impressive company portfolio means little if the relevant specialists are not part of the proposed team.
A serious React Native engagement should begin with an audit of package.json, native dependencies, build configuration, and New Architecture compatibility.
React Native Directory is the usual starting point. Expo integrates it with expo-doctor, allowing teams to flag unsupported or unmaintained packages automatically. According to Expo, approximately 83% of SDK 54 projects built through EAS Build were using the New Architecture as of January 2026.
Running the tool is not enough.
React Native Directory has a documented version-context limitation: compatibility is presented as a binary status, without identifying the package version that introduced support. If your project is pinned to an older release while only the latest major version supports the New Architecture, the directory can indicate compatibility while your build still fails.
A credible audit therefore checks the versions actually installed, not only the package names.
Ask the vendor how it handles abandoned packages. There are only a few realistic options:
Replace the dependency.
Upgrade to a supported version and absorb any breaking changes.
Fork and maintain the package.
Rebuild the required functionality as a native module.
A team that has completed production migrations will usually have a firm view on when each option makes sense.
Expo is no longer merely an entry-level option. In the State of React Native survey, 86% of respondents said they had used Expo CLI during the previous year, while almost half described following Expo SDK releases as their upgrade strategy.
For many products, Expo with config plugins and custom development builds is now a sensible default. Bare React Native should be chosen for a specific reason, not out of habit.
A considered recommendation will depend on the project:
Expo may fit when the application can use supported libraries, config plugins, and EAS infrastructure without compromising requirements.
Bare React Native may be justified when embedding React Native inside an existing native application, integrating resistant native dependencies, or operating under build-infrastructure constraints that make EAS unsuitable.
"Always Expo" and "always bare" are both weak answers. They reveal a vendor's preferred workflow, not an assessment of your product.
Microsoft retired App Center on March 31, 2025, taking the hosted CodePush service with it. The CodePush repository and client package remain available, but the Microsoft-hosted service does not.
Despite that, 20% of State of React Native respondents using over-the-air updates still named CodePush. EAS Update accounted for 80%.
Ask what the vendor currently uses for OTA updates. A team that still presents Microsoft CodePush as an operational hosted service has probably not reviewed its release setup recently.
The more important question concerns runtime compatibility. An OTA JavaScript bundle may expect native code that is absent from an older installed binary. Without controlled runtime versioning, the update can break production for only part of the user base, making the problem harder to reproduce and diagnose.
The release discussion should also cover:
EAS Build, Fastlane, GitHub Actions, or another defined build pipeline.
Automated tests on real devices, not only simulators.
Crash reporting configured before release.
Store-submission responsibilities.
Rollback procedures.
Ownership of production credentials.
Configuring a build pipeline is relatively easy. Operating it through failures, phased releases, incompatible updates, and store rejections is where experience becomes visible.
Lists of the best React Native development companies can help you build an initial shortlist. They do not tell you whether a company's experience resembles your project.
Look for patterns rather than polished case-study language.
Native complexity
Background location, biometrics, Bluetooth, offline synchronization, payments, or native-only SDK integrations
A long portfolio of CRUD applications connected to REST APIs
Measured outcomes
Startup time, frame rates on a named device class, crash-free sessions, release frequency, or regression duration
Claims such as "faster," "smoother," or "more scalable" without measurements
Recent architecture work
2025–2026 projects naming React Native versions, migrations, Fabric, JSI, or TurboModules
Recent case studies with no architectural detail and examples that could have been written years earlier
Engagement depth
Multi-year relationships or applications the vendor still maintains
Only MVPs and template-like builds
Verifiability
Named applications you can download or clients willing to provide references
Every project described as an anonymous "leading company"
NDAs are legitimate, particularly in enterprise and regulated work. The warning sign is not an anonymous case study. It is a company with years of claimed experience that cannot provide any verifiable application, reference, code contribution, or technical artifact.
Before selecting a vendor, download two applications from its portfolio. Test them for ten minutes on an ordinary Android device rather than the latest iPhone.
Pay attention to:
Cold-start time.
Long-list scrolling.
Transitions and gestures.
Behavior on a weak connection.
What happens if the network disappears during an action.
Recovery after the application is backgrounded.
Cross-platform problems often become more visible on mid-range Android hardware, which may also better represent the devices used by much of the eventual audience.
Agency rate articles frequently repeat unsupported figures or present the author's own pricing as a market benchmark. The 2026 Global Software Outsourcing Rates & Trends Guide from Accelerance provides a more defensible comparison because it surveys development firms across several regions.
Its November 2025 rate summary reports the following ranges:
Latin America
$33–45/hour
$60–75/hour
Down 7.1%
Europe, including CEE
$31–39/hour
$64–76/hour
Down 4.4%
Asia
$24–31/hour
$31–41/hour
Effective rates down approximately 8%
These figures blend roles and seniority levels. React Native engineers with verifiable New Architecture and native-platform expertise are more likely to sit near the top of a regional range. US agency rates can be substantially higher.
Region clearly affects the budget. The movement of the market matters too: rates fell across the major outsourcing regions during 2025.
A proposal based on 2023 pricing may now be above the market. At the other extreme, unusually aggressive discounting is not necessarily a bargain. With rates already under pressure, a vendor competing almost entirely on price may be excluding work that stronger proposals include.
The headline rate rarely captures the full engagement.
Ramp-up
Engineers need time to understand the product, domain, codebase, environments, and delivery process. For a non-trivial application, two to four weeks of partial productivity per engineer is a reasonable planning assumption. Ask whether this period is billed at the full rate and what the onboarding plan contains.
Dependency assessment
Auditing and remediating an existing dependency tree is real engineering work. If it is absent from the proposal, it has probably not disappeared; it will return as a delay, scope dispute, or change request.
Release cycles
Apple says that 90% of submissions are reviewed within 24 hours. Its App Review guidance also states that more than 40% of unresolved review issues relate to guideline 2.1, App Completeness. Common causes include crashes, incomplete metadata, and placeholder content.
Those are preventable problems. Each rejection still consumes calendar time even when review itself is fast.
Post-launch maintenance
React Native supports a rolling set of recent minor versions. Add annual iOS and Android releases, library upgrades, security patches, store requirements, and device-specific issues. Maintenance is not an optional phase reserved for old applications; it begins as soon as the first production version ships.
Ask the vendor to define what its maintenance retainer covers, how upgrades are scheduled, and which changes are billed separately.
The appropriate in-house comparison includes salary, benefits, payroll taxes, recruitment, equipment, management, and the time required to hire.
The US Bureau of Labor Statistics reported a median annual wage of $133,080 for software developers in May 2024, before those additional costs.
An external team often makes financial sense for bounded work, uncertain demand, or a product that has not yet proved its market. An internal team is usually stronger when mobile development is a permanent capability central to the business.
The choice does not have to be permanent. A company can use an external team to ship and validate the first product, then build an internal team around a functioning application. Recruiting for a real product with established architecture is often easier than hiring for a speculative roadmap.
Technical fit attracts attention during vendor selection. Ownership failures are usually more expensive.
Do not assume that code, infrastructure, credentials, or other deliverables transfer automatically. Contractor and intellectual-property rules vary by jurisdiction, so the agreement should contain an explicit assignment reviewed for the legal systems involved.
Clarify:
Whether the engineers are employees or subcontractors.
Whether subcontractors have signed agreements that allow their work to be assigned to you.
Whether the vendor retains ownership of internal libraries or tools included in the application.
What licence you receive for any retained components.
What happens to the repository, CI configuration, documentation, and infrastructure access when the engagement ends.
When ownership transfers: on creation, payment, acceptance, or another contractual event.
A retained internal library is not automatically a problem. Shipping an essential component under unclear or revocable rights is.
A company can own its source code and still lack control of its application.
The Apple Developer Program account, Google Play Console account, Android upload key, App Store Connect administrator role, and signing credentials should remain under your organization's control. Vendor engineers can be invited as authorized team members.
If the vendor publishes the application through its own accounts, you may not fully control:
Store listings.
Ratings and reviews.
Subscriptions.
Release access.
Application transfers.
Future updates.
Signing credentials should live in a vault controlled by your company, with access granted according to the project's needs. Put that arrangement in writing and confirm it before the first submission.
For regulated products, compliance belongs in the first evaluation call.
Relevant requirements may include:
SOC 2 Type II: commonly requested as evidence of audited operational controls, sometimes because your own enterprise customers require it from subprocessors.
HIPAA: if the application handles protected health information in the US, ask whether the vendor will sign a Business Associate Agreement.
PCI DSS: relevant to payment-card data, although tokenization and avoiding direct card-data handling may reduce the application's compliance scope.
GDPR and state privacy laws: ask about data residency, subprocessors, access controls, retention, and deletion procedures.
Mobile applications introduce additional questions. Ask how the team stores credentials on devices, prevents secrets from being exposed in JavaScript bundles, decides when certificate pinning is appropriate, and handles security disclosures after release.
A documented vulnerability-response process is a stronger signal than a generic claim that the company "takes security seriously."
The senior technical lead on a sales call is not necessarily the person assigned after the contract is signed.
A typical mid-sized React Native team may look like this:
Technical lead
Part-time or full-time
Architecture, native-platform decisions, dependency audit, and code review
React Native engineers
Two to four full-time
Features across both platforms and native module development
QA engineer
Half-time to full-time
Device testing, regression coverage, and release verification
Product or delivery manager
Part-time
Sprint coordination, scope negotiation, risks, and escalation
Designer
As needed
Platform-appropriate interface and interaction design
Ask whether each person is dedicated to your account or shared with other clients. Shared staffing can work when it is disclosed, reflected in availability, and priced accordingly. It becomes a problem when a supposedly full-time specialist repeatedly disappears into another project.
Meet the proposed technical lead before signing. Where practical, name key individuals or minimum seniority requirements in the statement of work.
Four hours of real working overlap is generally enough for standups, unplanned discussions, and same-day blocker resolution. With less than roughly two hours, most decisions become asynchronous.
That can still work, but it requires stronger written specifications, disciplined documentation, and fewer meeting-dependent decisions.
Central and Eastern European teams typically overlap with the US East Coast during the morning. Latin American teams can offer most US companies much longer overlap. Neither model is inherently better. A team that records decisions in writing can operate effectively with less shared time than one that resolves most questions in meetings.
Do not settle for "we work agile." Ask:
How long are the sprints?
What is shown during sprint reviews?
When will you receive repository and CI access?
How are defects prioritized against features?
Who communicates delivery risks?
What happens when a milestone slips?
How quickly are blockers escalated?
Methodology labels are easy. Specific delivery mechanics are harder to fake.
After several calls, most finalists will appear competent. Decisions then begin to follow presentation quality, personal chemistry, or whichever meeting happened most recently.
A weighted scorecard does not remove judgment. It records that judgment consistently.
Score every criterion from one to five, multiply it by the weight, and total the result.
New Architecture readiness
20%
Has migrated production applications and can explain broken dependencies, crash behavior, and remediation decisions
Has only inherited the framework default and has no migration history
Native and platform depth
20%
Has written Turbo Native Modules in Swift and Kotlin and can show Codegen specifications or contributions
Only integrates existing packages
Portfolio and domain fit
15%
Maintains verifiable applications with similar native complexity
Shows only templates or simple MVPs
Release and maintenance engineering
10%
Has a current OTA strategy, runtime versioning, CI, device testing, and pre-launch monitoring
Relies on manual builds and treats monitoring as an add-on
Engagement flexibility
10%
Can change team size under clear notice terms and supports a moving roadmap
Offers one rigid structure with expensive change orders
Communication and process fit
10%
Names the proposed team, provides sufficient overlap, and explains delivery mechanics
Offers an unnamed "senior team" and generic methodology claims
Security, IP, and compliance
10%
Provides clear assignment terms, proper subcontractor flow-through, client-owned accounts, and relevant controls
Uses vague ownership language or keeps the store accounts
Pricing transparency
5%
Itemizes assumptions, ramp-up, audit work, and additional-cost triggers
Provides one headline figure without a breakdown
Change the weights to reflect your project.
A migration may justify giving New Architecture experience more than 20%. Healthcare and payment products may need a much larger compliance weighting. A company with a strong internal mobile lead may place slightly less emphasis on vendor-led process.
Two rules keep the scorecard useful:
Have evaluators score vendors independently before discussing the results.
Treat any score of one or two as a possible veto, even when the total remains high.
Weighted averages can conceal one serious weakness behind several less important strengths.
The speed and specificity of the response often reveal as much as the answer itself.
Walk me through the last production application you migrated to the New Architecture. What broke?
Which Turbo Native Modules has your team written?
Who implemented the Swift and Kotlin sides?
How would you audit our current dependencies before estimating the work?
What would you do if an essential package had been abandoned?
Would you recommend Expo or bare React Native for this project, and what requirements drive that recommendation?
What OTA update system would you use?
How do you prevent runtime version mismatches?
Who will actually work on the project?
Are those people dedicated to us or shared between accounts?
Is the technical lead on this call the person who will lead delivery?
If we need two additional engineers in six weeks, what is realistic?
What notice do you require if we later reduce the team?
Where do dependency auditing, onboarding, QA, and release engineering appear in the estimate?
What went wrong on a recent project, and what did the team do next?
What does the maintenance retainer include?
Which work falls outside it?
Are React Native upgrades scheduled or handled only after a problem appears?
Who responds to a production incident?
What response times do you commit to?
If we move development in-house after 18 months, what will the handover include?
The final question is revealing. A vendor confident in the quality of its work should be able to describe documentation, credential transfer, knowledge-sharing sessions, repository access, and transition support without treating your eventual independence as a threat.
A low proposal may exclude dependency analysis, physical-device testing, documentation, release engineering, or post-launch support. Those omissions do not eliminate the work. They move it into change requests or leave it as technical debt for the next team.
Compare assumptions and deliverables before comparing totals.
An incompatible package found during the first week is a planning input. The same package found in month three is a schedule crisis.
The audit usually takes days. There is little justification for postponing it until feature development is underway.
IP assignment, subcontractor terms, repository access, and store-account custody are inexpensive to clarify before work starts. Untangling them after a relationship ends can delay releases and force legal or technical migration work.
The usual cause is not deliberate misconduct. Nobody asked, so the vendor's default arrangement remained in place.
Staff augmentation assumes that engineers are joining a functioning process. It does not replace product direction, technical leadership, code review, or clear acceptance criteria.
If those functions are weak internally, additional engineers will expose the weakness faster. Select a model that includes leadership rather than expecting individual contractors to create it informally.
A polished proposal proves that a vendor can sell. It says little about the engineers assigned after signature.
Meet the delivery lead, review relevant work, and document key staffing commitments. Resistance to those requests is itself useful information.
The basic decision has not changed: you are choosing who will build and maintain a product that may be difficult to replace.
The evidence worth collecting has changed. A strong-looking portfolio may represent years of work on an architecture that no longer ships. Client logos and positive reviews will not reveal that.
If you can investigate only two areas, begin with a migration story. Ask which libraries failed, what changed after the cutover, what appeared in crash reporting, and what the team would do differently. Engineers who have completed the work usually answer with concrete details. Those who have not tend to return to generalities.
Then review IP assignment and store-account ownership before becoming attached to a preferred vendor. These terms determine whether you can continue operating the product without that vendor.
Have each evaluator score the finalists independently. If the totals produce a tie, look at which team raised an inconvenient risk or challenged an unrealistic assumption during the evaluation. That is often the team most likely to warn you early when delivery starts moving off plan.
A mid-market selection process commonly takes four to eight weeks:
One to two weeks to identify candidates.
Two to three weeks for technical evaluation and references.
Two to three weeks for contract, procurement, and security review.
Staff augmentation can move faster. Regulated companies with formal vendor assessments may take longer. After signing, allow another one to three weeks before a new team becomes meaningfully productive.
Both frameworks are mature, and the practical difference is narrower than many comparisons suggest.
React Native provides access to the JavaScript and TypeScript talent pool, a large package ecosystem, and potential skill sharing with an existing React web team. Flutter offers consistent rendering across platforms and is well suited to products with highly customized interfaces.
Existing engineering capability often decides the question. If your web organization already uses React, React Native can reduce the long-term cost of moving engineers between web and mobile work.
Freelancers usually cost less per hour and can be appropriate for bounded, well-specified tasks.
A development company can provide replacement capacity, internal reviews, QA, delivery management, and contractual continuity when an individual leaves. It may also have more established intellectual-property and compliance processes.
The main freelance risk is concentration: one person holds most of the technical and product context. For an application expected to remain in use for years, that dependency often matters more than the initial hourly-rate difference.
A new application will use the New Architecture automatically, so it does not require migration work in the literal sense.
Migration experience is still a useful proxy. It develops the skills required to inspect dependencies, write native modules, investigate JSI-boundary failures, and resolve platform-specific behavior. Those problems can also appear in a greenfield application once it reaches more demanding integrations.
Two to four React Native engineers, a part-time technical lead, and approximately half to one full-time QA engineer can cover many mid-sized products.
Adding more developers to one mobile codebase does not always increase delivery speed. Once four or five engineers are working on the same features, coordination and merge overhead can begin to outweigh the additional capacity. Faster delivery may require narrower scope or parallel workstreams with clear module boundaries — not simply more people.
Staff augmentation

Sep 29th 26 - by Devico Team
Discover how to hire the right engineers by matching capabilities, seniority, and acquisition models to your business strategy.
JavaScript Development

Sep 28th 26 - by Devico Team
JavaScript development trends in 2026, explained for engineering leaders: what has genuinely changed in AI coding, frameworks, build tooling, and architecture — and which shifts require a decision this year.
JavaScript Development

Sep 25th 26 - by Devico Team
JavaScript performance optimization means more than a list of tips. Learn how to diagnose common bottlenecks — long tasks, memory leaks, oversized bundles — and prioritize the fixes that actually move Core Web Vitals.