trivago N.V. raises the floor for code review with CodeRabbit

CodeRabbit gives trivago’s engineers a thorough first review, reinforces conventions across the codebase, and lets human reviewers focus on architecture, product logic, and broader engineering decisions.

trivago logo
CodeRabbitCASE STUDY

2.07 weeks reviewer time saved over last 90 days

Peak critical-severity acceptance rate of 66.7%

494 average learnings retrieved per week

Caught a state-management error human reviewers missed

Impact at a glance

Protected offline data and strengthened regression coverage

CodeRabbit found that trivago’s storage algorithm could evict newly written items before older ones. After developers corrected the logic, CodeRabbit identified that the existing unit tests did not cover the failure condition, which meant a future regression could go undetected.

A browser-compatibility warning proven right in production

CodeRabbit warned that a new JavaScript method would not work in every browser. The change shipped without the recommended fix, and trivago later connected the resulting errors to an estimated 210,000 broken sessions and as much as €100,000 in potential financial impact. The experience led the team to re-emphasize that developers must address CodeRabbit’s comments before requesting human review.

More time for higher-level review

CodeRabbit saved an estimated 2.07 weeks of reviewer time during a recent 90-day period. It handled a thorough first pass so human reviewers could concentrate on architecture, product logic, and the broader implications of a change.

Caught a state-management error human reviewers missed

CodeRabbit uncovered a functional error in trivago’s central application state management that had escaped human review. Fixing it prevented state inconsistencies that would have been difficult to reproduce, trace, and debug.

CodeRabbit doesn’t get tired. It doesn’t skip over things. It doesn’t miss things.

— Thomas Bartel, Engineering Manager, Aegis Web Team, trivago

Thomas Bartel is an engineering manager on trivago’s Aegis web team, which develops the company’s hotel-search web frontend. The organization includes seven end-to-end feature teams and approximately 30 to 35 developers. Each team has a tech lead who combines hands-on engineering with leadership responsibilities. Bartel leads two of those tech leads while continuing to review code and contribute to non-time-critical refactoring work.

That combination gives him a close view of both sides of code review. He sees the management need for consistent engineering standards and the developer need for feedback that is timely, specific, and useful.

Challenge: Raising the quality bar across every review

trivago’s original motivation for adopting CodeRabbit was straightforward. The company wanted more consistent, thorough code reviews.

Teams commonly asked engineers within the same feature group to review one another’s work. That made sense because those reviewers understood their area of the codebase deeply. It also produced varying levels of scrutiny. Familiar teammates could be lenient with one another, while busy reviewers sometimes surfaced the most important handful of issues and moved on.

We saw different levels of thoroughness in different teams. We wanted to raise the bar for quality in code reviews.

— Thomas Bartel

Human attention also has natural limits. A reviewer who has already left six or seven comments may need to turn to another task. Smaller inconsistencies, questionable naming, or violations of an established pattern can remain unmentioned even when the reviewer notices them.

CodeRabbit offered a consistent first pass without fatigue or time pressure.

There’s a difference in rigor, thoroughness, and completeness compared to a human reviewer. CodeRabbit doesn’t get tired. It doesn’t skip over things.

— Thomas Bartel

That need existed before today’s surge in agent-generated code. trivago was already using Cursor, although developers relied more heavily on tab completion than autonomous agents at the time. The primary objective was to improve review quality rather than absorb a flood of AI-produced pull requests.

That early decision has become even more valuable. trivago developers now use Claude company-wide, and many also use Cursor. Teams apply AI across planning, specification, implementation, testing, and local review. As agents contribute a greater share of code, the volume requiring review continues to rise.

With AI agents contributing more and more code, there is also an increase in the volume of code that has to be reviewed. That is one aspect where automated reviews can definitely help.

— Thomas Bartel

CodeRabbit gives trivago a thorough first review so engineers can resolve foundational concerns before requesting human review.

2.07 weeks

reviewer time saved over last 90 days

66.7%

Peak critical-severity acceptance rate

210,000

sessions estimated to be affected by one ignored compatibility warning

Solution: A tireless first reviewer before humans step in

Bartel was among CodeRabbit’s earliest users at trivago and participated in the trial. Tech leads, staff engineering, and engineering management evaluated whether the tool improved the review process. A majority favored keeping it.

The reason went beyond catching isolated bugs. CodeRabbit made each review more complete and established a dependable baseline before human reviewers invested their time.

It raises the floor for a review.

— Thomas Bartel

Bartel’s organization formalized that advantage in its workflow. PR authors address findings from CodeRabbit or GitHub Copilot before requesting human review. By the time a teammate enters the conversation, the author has already completed an initial feedback cycle and reached a minimum level of compliance.

The handoff changes how human review time is spent. CodeRabbit can flag inconsistent naming, questionable patterns, style-guide deviations, and codebase conventions. It can also catch functional errors that would be easy to miss in a manual review. Human reviewers can then bring their understanding of architecture, product intent, and the larger system.

CodeRabbit can take care of more advanced things like bad naming, bad patterns, inconsistency, and not following conventions. Human reviewers can focus on more important things after the initial round of reviews.

— Thomas Bartel

What CodeRabbit catches at trivago

As trivago continued using CodeRabbit, Bartel noticed its reviews becoming more concise and more aware of the wider codebase.

The most impressive findings connected a current change with conventions or definitions located far from the files in the pull request. CodeRabbit might point out that a definition conflicts with one in another package or that a new term breaks a naming pattern established elsewhere.

It made the code author aware of far-distant things from a different corner of the codebase. This was really helpful and very impressive.

— Thomas Bartel

Four examples show how that thoroughness translates into practical engineering value:

Preserving fresh offline data and closing the test gap

One trivago feature saved data in local storage so users could continue seeing information while offline. Because browser storage is limited, the application capped the number of saved items and evicted older entries.

CodeRabbit recognized that the eviction algorithm was implicitly sorting entries by item ID rather than write time. As a result, the application could remove newly written items while retaining older data. After developers corrected the algorithm, CodeRabbit identified a second weakness. The existing unit tests did not cover the failure condition, which meant a future regression could go undetected.

CodeRabbit review identifying an incorrect local-storage eviction order and missing unit-test coverage.

Caption: CodeRabbit review comments identifying an incorrect local-storage eviction order and missing unit-test coverage.

Finding a state-management error human reviewers missed

In another pull request, CodeRabbit found a functional-correctness error in trivago’s central application state management. Human reviewers had previously overlooked the problem. Left in place, it could have created state inconsistencies that would have been difficult to reproduce, trace, and debug.

The finding demonstrates the role Bartel valued from the beginning. CodeRabbit applies the same exhaustive attention to every review, including code that has already passed before human eyes.

CodeRabbit review surfacing a state-management error that human reviewers missed.

Caption: CodeRabbit surfaced a state-management error that human reviewers had missed and that could have created difficult-to-debug inconsistencies.

Warning about a compatibility failure tied to 210,000 sessions

The most consequential lesson came from a CodeRabbit comment that was accurate but initially went unheeded.

CodeRabbit warned that JavaScript’s toSorted method might not be available in every browser used to access trivago. The team released the change without acting on the warning. Months later, trivago began seeing large numbers of errors reporting that an object did not have a toSorted member.

The team estimated that the compatibility failure affected approximately 210,000 sessions and carried as much as €100,000 in potential financial impact. The incident gave trivago a concrete measure of the value behind a CodeRabbit comment and led the organization to re-emphasize its rule that developers must resolve CodeRabbit feedback before requesting human review.

CodeRabbit warning that toSorted lacked support in some browsers.

Caption: CodeRabbit correctly warned that toSorted lacked support in some browsers. After the advice went unheeded, trivago connected the resulting errors to an estimated 210,000 broken sessions.

Reinforcing strict TypeScript practices

CodeRabbit also helps trivago maintain stricter typing. It reminds developers to avoid TypeScript’s any type and trivago’s local ExpectedAny variant, then demonstrates a more precise way to express the type.

Those comments reinforce a codebase that is easier to reason about and control flow that is easier to predict. They also illustrate how CodeRabbit handles the persistent, detailed enforcement work that human reviewers may apply inconsistently when balancing several higher-level concerns.

CodeRabbit review identifying an overly broad TypeScript type and recommending MouseEvent.

Caption: CodeRabbit reinforces trivago’s TypeScript standards by identifying overly broad types and demonstrating a more precise alternative.

Context that carries conventions across the codebase

CodeRabbit also helps preserve the terminology embedded in trivago’s code. If most packages call a concept a “stay period” and a new change introduces “date range” for the same idea, CodeRabbit can identify the inconsistency. It applies the same principle to file names, package relationships, placement, and other patterns that may be widely understood but never formally documented.

CodeRabbit picks up a lot of unwritten rules and also learns over time. It knows the conventions and the rules in your codebase very well and reminds developers of them.

— Thomas Bartel

This contextual learning is already heavily reused. In the dashboard period, CodeRabbit retrieved existing learnings far more often than it generated new ones, indicating that accumulated repository knowledge was repeatedly informing current reviews.

Measured impact: Broad adoption and meaningful review signal

A mature review workflow extending well beyond a small trial group, according to a recent 90-day snapshot:

  • Weekly activity averaged approximately 133 developers and reached as many as 157.
  • An average of roughly 42 of 53 repositories were active each week, with a high of 49.
  • CodeRabbit supported 1,160 merged pull requests in the measured view.
  • Developers accepted 43.4% of 1,620 CodeRabbit review comments.
  • Major findings represented 52.9% of comments and critical findings represented another 9%.
  • CodeRabbit saved about 2.07 weeks of reviewer time.
  • Median time to merge was 7.18 hours, with a median of 1.67 hours between the last commit and merge.

Review moved quickly alongside that activity. Median time to merge was 7.18 hours, including a median of 1.67 hours between the final commit and merge. CodeRabbit’s immediate feedback helped authors work through foundational issues before bringing a human reviewer into the conversation.

For Bartel, the acceptance rate starts with the quality of the feedback itself.

The suggestions are always specific and to the point. They’re crisp, concise, and very actionable.

— Thomas Bartel

CodeRabbit = A consistent review floor across every team

Before CodeRabbit

  • Review thoroughness varied across teams and depended on the time and attention available to human reviewers.
  • Smaller inconsistencies, questionable naming, and violations of codebase conventions could go unaddressed.
  • Human reviewers spent attention on foundational concerns instead of architecture, product logic, and the broader system.

After CodeRabbit

  • Every pull request receives a thorough first pass before human review.
  • CodeRabbit catches functional errors and reinforces naming, patterns, and conventions across the codebase.
  • Human reviewers can focus on architecture, product intent, and the broader implications of a change.

Results: A more consistent codebase for humans and AI agents

CodeRabbit’s clearest effect on the Aegis web team is consistency backed by concrete defect prevention. Every pull request receives the same patient first pass. Developers resolve foundational concerns earlier, human reviewers enter cleaner conversations, and conventions receive reinforcement across feature-team boundaries.

That consistency compounds. Engineers spend less time interpreting unexpected structures and terminology. AI agents also work more effectively when the codebase presents stable, repeatable patterns.

A consistent codebase is easier to develop in. It increases the productivity of every developer and also of AI agents. For keeping this consistency, CodeRabbit is definitely a great tool.

— Thomas Bartel

Without that CodeRabbit review layer, Bartel expects inconsistencies to return gradually. Files could land in the wrong locations, package boundaries could erode, and developers could introduce competing names for the same concepts. Some of those issues could be prevented through new lint rules, but many reflect contextual or unwritten knowledge that deterministic tooling does not capture easily.

CodeRabbit gives trivago an immediate, evolving review layer for those concerns. It catches concrete defects, identifies missing test coverage, carries conventions across the codebase, and performs the exhaustive first pass that human reviewers rarely have time to repeat on every change.

The timing has proved prescient. trivago first adopted CodeRabbit to make human-written code reviews more thorough. Now that AI agents generate more code, the same foundation helps the company absorb greater review volume while preserving a high bar.

For trivago, CodeRabbit strengthens the moment where faster code creation meets engineering judgment. Authors get an immediate review partner, human reviewers receive better-prepared pull requests, and the codebase stays more coherent as both people and agents contribute to it.

Asked what would happen if CodeRabbit disappeared from the workflow, Bartel offered a simple measure of its value.

I think inconsistencies would creep back in. You would have people not always following certain rules and conventions.

— Thomas Bartel
null logo

Industry

Travel technology and hotel search

Platform

CodeRabbit SaaS on GitHub

Challenge

Inconsistent levels of review thoroughness across teams

Get started today
Discord iconX iconLinkedIn icon

Want to see how CodeRabbit can help your team?