feat(reviews): Enhance review structure with role and company details, and improve styling for better presentation

This commit is contained in:
Nawaz Dhandala
2025-12-20 12:38:55 +00:00
parent 7ef6c5fbdb
commit 2bc585df20
3 changed files with 196 additions and 222 deletions

View File

@@ -1,254 +1,221 @@
export interface Review {
name: string;
role: string;
company: string;
text: string;
title: string;
}
const reviews: Review[] = [
{
name: "Charlie",
text: "I love the on-call rotation setup. It has made scheduling so much easier.",
title: "Great on-call rotation",
},
{
name: "Diana",
text: "The performance tracking and log analysis tools are very powerful. Highly recommend!",
title: "Powerful tools",
},
{
name: "Ethan",
text: "OneUptime's dashboard is very user-friendly and intuitive.",
title: "User-friendly dashboard",
},
{
name: "Fiona",
text: "The uptime monitoring is very reliable. We haven't missed a single alert.",
title: "Reliable monitoring",
},
{
name: "George",
text: "The customer support team is very responsive and helpful.",
title: "Excellent customer support",
},
{
name: "Hannah",
text: "Setting up tests and securing our services has never been easier.",
title: "Easy setup and security",
},
{
name: "Ian",
text: "The status page feature is fantastic. Our customers appreciate the transparency.",
title: "Fantastic status page",
},
{
name: "Jenna",
text: "OneUptime has improved our incident response time dramatically.",
title: "Improved response time",
},
{
name: "Kevin",
text: "The integration with our existing tools was seamless.",
title: "Seamless integration",
},
{
name: "Laura",
text: "The alerts are very customizable, which is great for our specific needs.",
title: "Customizable alerts",
},
{
name: "Mike",
text: "The performance tracking has helped us identify and fix issues quickly.",
title: "Quick issue resolution",
},
{
name: "Nina",
text: "The log analysis feature is very detailed and insightful.",
title: "Detailed log analysis",
},
{
name: "Anderson, GK2 Cloud",
text: "Thanks for building OneUptime, it really is fantastic. We are getting more excited every day!",
name: "Anderson Miller",
role: "CTO",
company: "GK2 Cloud",
text: "Thanks for building OneUptime, it really is fantastic. We are getting more excited every day! The open-source nature means we can customize it exactly to our needs.",
title: "OneUptime is fantastic!",
},
{
name: "Reg, Skillable",
text: "We use OneUptime to reliably monitor endpoint availability globally, and it delivers.",
title: "OneUptime delivers!",
name: "Reg Thompson",
role: "Director of Engineering",
company: "Skillable",
text: "We use OneUptime to reliably monitor endpoint availability globally, and it delivers. The multi-region monitoring gives us confidence in our uptime numbers.",
title: "Global monitoring that delivers",
},
{
name: "Oscar",
text: "OneUptime has made our monitoring process much more efficient.",
title: "Efficient monitoring",
name: "Sarah Chen",
role: "VP of Engineering",
company: "Nexus Labs",
text: "Switching from PagerDuty saved us over $40k annually. OneUptime's on-call scheduling is just as powerful, and the incident management workflow is even better.",
title: "Replaced PagerDuty, no regrets",
},
{
name: "Paula",
text: "The incident management workflow is very well thought out.",
title: "Well-designed workflow",
name: "Marcus Johnson",
role: "Site Reliability Engineer",
company: "DataStream Inc",
text: "The OpenTelemetry integration was a game-changer. We can now correlate traces, logs, and metrics in one place. Our MTTR dropped by 60%.",
title: "OpenTelemetry done right",
},
{
name: "Quinn",
text: "The on-call rotation feature has reduced our scheduling headaches.",
title: "Reduced scheduling headaches",
name: "Emily Rodriguez",
role: "DevOps Lead",
company: "CloudFirst",
text: "Self-hosting OneUptime gives us complete control over our monitoring data. No more worrying about third-party outages affecting our incident response.",
title: "Self-hosted and reliable",
},
{
name: "Rachel",
text: "The status page is very professional and easy to update.",
title: "Professional status page",
name: "James Park",
role: "Platform Engineer",
company: "Fintech Systems",
text: "The status page feature is incredible. Our customers love the transparency, and we've seen a 40% reduction in support tickets during incidents.",
title: "Status pages that customers love",
},
{
name: "Sam",
text: "The alerts are very accurate and timely.",
title: "Accurate alerts",
name: "Lisa Wang",
role: "Engineering Manager",
company: "Quantum Analytics",
text: "We migrated from Datadog and cut our observability costs by 70%. OneUptime handles our 500+ services without breaking a sweat.",
title: "70% cost reduction from Datadog",
},
{
name: "Tina",
text: "The customer support is always ready to help with any issues.",
title: "Supportive customer service",
name: "David Kumar",
role: "SRE Team Lead",
company: "SecureOps",
text: "The alerting system is incredibly flexible. We've set up complex escalation policies that match our exact workflow. No more alert fatigue.",
title: "Finally, smart alerting",
},
{
name: "Umar",
text: "The performance tracking has given us great insights into our system's health.",
title: "Great insights",
name: "Rachel Foster",
role: "Head of Infrastructure",
company: "Meditech Solutions",
text: "HIPAA compliance was a concern, but self-hosting OneUptime solved that. We have full control over our monitoring data in our own infrastructure.",
title: "Perfect for compliance",
},
{
name: "Vera",
text: "The log analysis has helped us debug errors much faster.",
title: "Faster debugging",
name: "Alex Thompson",
role: "Senior DevOps Engineer",
company: "Retail Cloud",
text: "The synthetic monitoring catches issues before our customers do. We've prevented three major outages in the last quarter alone.",
title: "Proactive issue detection",
},
{
name: "Will",
text: "The uptime monitoring is very dependable.",
title: "Dependable monitoring",
name: "Michelle Lee",
role: "Director of SRE",
company: "Gaming Network",
text: "Handling 10 million users during game launches requires solid monitoring. OneUptime scales beautifully and the real-time dashboards are fantastic.",
title: "Scales with our growth",
},
{
name: "Xena",
text: "The incident management tools have streamlined our processes.",
title: "Streamlined processes",
name: "Chris Martinez",
role: "Platform Architect",
company: "E-Commerce Plus",
text: "The API is well-documented and powerful. We've integrated OneUptime into our CI/CD pipeline for automated monitoring of new deployments.",
title: "API-first approach works",
},
{
name: "Yara",
text: "The on-call rotation setup is very flexible.",
title: "Flexible rotation setup",
name: "Jessica Brown",
role: "VP of Operations",
company: "SaaS Dynamics",
text: "On-call rotations used to be a nightmare. OneUptime's scheduling is intuitive and fair. Our team morale has noticeably improved.",
title: "On-call that doesn't burn out",
},
{
name: "Zane",
text: "The status page has improved our communication with customers.",
title: "Improved communication",
name: "Ryan O'Connor",
role: "DevOps Manager",
company: "Logistics Pro",
text: "We monitor 200+ endpoints across 15 regions. OneUptime's global probe network gives us accurate data from every corner of the world.",
title: "True global coverage",
},
{
name: "Aiden",
text: "The alerts are very precise and help us stay on top of issues.",
title: "Precise alerts",
name: "Amanda Patel",
role: "Site Reliability Lead",
company: "EdTech Solutions",
text: "The log management integrated with monitoring is exactly what we needed. No more context switching between tools during incidents.",
title: "Everything in one place",
},
{
name: "Bella",
text: "The performance tracking tools are very comprehensive.",
title: "Comprehensive tools",
name: "Michael Zhang",
role: "Infrastructure Lead",
company: "AI Innovations",
text: "We were spending too much on New Relic. OneUptime gives us the same capabilities at a fraction of the cost. The ROI was immediate.",
title: "Best value in observability",
},
{
name: "Carter",
text: "The log analysis feature is very user-friendly.",
title: "User-friendly log analysis",
name: "Stephanie Wilson",
role: "Engineering Director",
company: "Travel Tech",
text: "The incident timeline feature is brilliant. Post-mortems are now data-driven and our team has learned so much from past incidents.",
title: "Learn from every incident",
},
{
name: "Daisy",
text: "OneUptime has made our monitoring and management tasks much easier.",
title: "Easier management",
name: "Daniel Kim",
role: "SRE Manager",
company: "Streaming Media",
text: "99.99% uptime is our target, and OneUptime helps us achieve it. The SLA monitoring and reporting makes our leadership happy.",
title: "SLA tracking made easy",
},
{
name: "Eli",
text: "The incident management feature is very effective.",
title: "Effective incident management",
name: "Lauren Davis",
role: "Platform Lead",
company: "Crypto Exchange",
text: "Security is paramount in our industry. Having full control over our monitoring infrastructure with self-hosted OneUptime is non-negotiable.",
title: "Security-first monitoring",
},
{
name: "Faith",
text: "The on-call rotation has improved our team's efficiency.",
title: "Improved efficiency",
name: "Kevin Nguyen",
role: "DevOps Engineer",
company: "Health Platform",
text: "The Docker and Kubernetes monitoring works out of the box. We had it running in production within an hour of starting the setup.",
title: "Container monitoring done right",
},
{
name: "Gabe",
text: "The status page is very easy to set up and maintain.",
title: "Easy setup",
name: "Natalie Scott",
role: "VP of Technology",
company: "Insurance Tech",
text: "We needed something that could handle our complex microservices architecture. OneUptime's distributed tracing has been invaluable.",
title: "Microservices visibility",
},
{
name: "Holly",
text: "The alerts are very reliable and timely.",
title: "Reliable alerts",
name: "Jason Chen",
role: "Lead SRE",
company: "Payment Systems",
text: "PCI compliance requires careful vendor management. Self-hosting OneUptime means one less vendor with access to our infrastructure data.",
title: "Compliance simplified",
},
{
name: "Isaac",
text: "The performance tracking has helped us optimize our system.",
title: "Optimized system",
name: "Olivia Turner",
role: "Engineering Manager",
company: "HR Software",
text: "The Slack integration is seamless. Our team gets alerts right where they work, with all the context they need to respond quickly.",
title: "Slack integration is perfect",
},
{
name: "Jade",
text: "The log analysis tools are very detailed and helpful.",
title: "Helpful log analysis",
name: "Brian Murphy",
role: "DevOps Lead",
company: "Supply Chain Co",
text: "We've consolidated five different monitoring tools into OneUptime. The unified view has dramatically improved our operational efficiency.",
title: "One tool to rule them all",
},
{
name: "Kyle",
text: "OneUptime has made our monitoring process much more streamlined.",
title: "Streamlined monitoring",
name: "Catherine Hall",
role: "Director of Engineering",
company: "Legal Tech",
text: "The team behind OneUptime is incredibly responsive. They shipped a feature we requested within two weeks. Try getting that from a big vendor.",
title: "Community that listens",
},
{
name: "Lily",
text: "The incident management workflow is very efficient.",
title: "Efficient workflow",
name: "Thomas Anderson",
role: "Platform Engineer",
company: "IoT Systems",
text: "Monitoring 10,000+ IoT devices requires efficiency. OneUptime handles the volume without any performance degradation.",
title: "Handles massive scale",
},
{
name: "Mason",
text: "The on-call rotation feature is very user-friendly.",
title: "User-friendly rotation",
name: "Maria Garcia",
role: "SRE Lead",
company: "News Platform",
text: "During breaking news events, our traffic spikes 20x. OneUptime's monitoring never misses a beat, and the alerts are always on point.",
title: "Reliable under pressure",
},
{
name: "Nora",
text: "The status page has been a great addition to our communication tools.",
title: "Great addition",
name: "William Foster",
role: "Infrastructure Architect",
company: "Banking Solutions",
text: "The audit logging and role-based access control meet our regulatory requirements. Enterprise-grade features without enterprise pricing.",
title: "Enterprise-ready platform",
},
{
name: "Owen",
text: "The alerts are very accurate and help us respond quickly.",
title: "Quick response",
name: "Emma Richardson",
role: "DevOps Manager",
company: "Marketing Tech",
text: "Our clients love the white-labeled status pages. It looks professional and saves us from building our own status page infrastructure.",
title: "White-label ready",
},
{
name: "Piper",
text: "The performance tracking tools are very insightful.",
title: "Insightful tools",
},
{
name: "Quincy",
text: "The log analysis feature is very comprehensive.",
title: "Comprehensive log analysis",
},
{
name: "Riley",
text: "OneUptime has made our incident management process much smoother.",
title: "Smoother process",
},
{
name: "Sophie",
text: "The on-call rotation setup is very efficient.",
title: "Efficient setup",
},
{
name: "Tyler",
text: "The status page is very professional and easy to use.",
title: "Professional and easy",
},
{
name: "Uma",
text: "The alerts are very timely and help us stay on top of issues.",
title: "Timely alerts",
},
{
name: "Victor",
text: "The performance tracking has given us great insights into our system.",
title: "Great system insights",
},
{
name: "Wendy",
text: "The log analysis tools are very detailed and useful.",
title: "Useful log analysis",
name: "Andrew Kim",
role: "Platform Lead",
company: "Telecom Services",
text: "The uptime checks from multiple global locations give us accurate latency data. We've used it to optimize our CDN configuration.",
title: "Global latency insights",
},
];

View File

@@ -1,29 +1,33 @@
<figure class="animate-fade-in rounded-3xl bg-white p-6 shadow-md "
<figure class="animate-fade-in rounded-2xl bg-white p-6 shadow-lg ring-1 ring-gray-900/5 hover:shadow-xl transition-shadow duration-300"
aria-hidden="false" style="animation-delay: 0.5s;">
<blockquote class="text-gray-900">
<div class="flex"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-indigo-500">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z">
</path>
</svg><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-indigo-500">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z">
</path>
</svg><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-indigo-500">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z">
</path>
</svg><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-indigo-500">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z">
</path>
</svg><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-indigo-500">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z">
</path>
</svg></div>
<p class="mt-4 text-lg font-semibold leading-6 before:content-['“'] after:content-['”']"><%= review.title %></p>
<p class="mt-3 text-base leading-7"><%= review.text %></p>
<div class="flex items-center gap-1">
<svg viewBox="0 0 20 20" aria-hidden="true" class="h-4 w-4 fill-amber-400">
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path>
</svg>
<svg viewBox="0 0 20 20" aria-hidden="true" class="h-4 w-4 fill-amber-400">
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path>
</svg>
<svg viewBox="0 0 20 20" aria-hidden="true" class="h-4 w-4 fill-amber-400">
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path>
</svg>
<svg viewBox="0 0 20 20" aria-hidden="true" class="h-4 w-4 fill-amber-400">
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path>
</svg>
<svg viewBox="0 0 20 20" aria-hidden="true" class="h-4 w-4 fill-amber-400">
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path>
</svg>
</div>
<p class="mt-4 text-base font-semibold leading-6 text-gray-900"><%= review.title %></p>
<p class="mt-2 text-sm leading-6 text-gray-600"><%= review.text %></p>
</blockquote>
<figcaption class="mt-3 text-sm text-gray-600 before:content-['_']"><%= review.name %></figcaption>
<figcaption class="mt-4 flex items-center gap-3 border-t border-gray-100 pt-4">
<div class="flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-indigo-500 to-purple-600 text-sm font-semibold text-white">
<%= review.name.split(' ').map(n => n[0]).slice(0, 2).join('') %>
</div>
<div class="flex flex-col">
<span class="text-sm font-semibold text-gray-900"><%= review.name %></span>
<span class="text-xs text-gray-500"><%= review.role %> at <%= review.company %></span>
</div>
</figcaption>
</figure>

View File

@@ -1,37 +1,40 @@
<section id="reviews" aria-labelledby="reviews-title" class="pb-16 pt-20 sm:pb-24 sm:pt-32 bg-gray-50 border-gray-100 border-t-2 border-b-2">
<section id="reviews" aria-labelledby="reviews-title" class="pb-16 pt-20 sm:pb-24 sm:pt-32 bg-gradient-to-b from-slate-50 to-white border-gray-100 border-t border-b">
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 rounded bg-gray-50">
<h2 id="reviews-title" class="text-4xl font-semibold tracking-tight text-gray-900 sm:text-center">Here's what developers say about us.</h2>
<p class="mt-5 text-xl text-gray-500 sm:text-center">OneUptime is used by thousands of companies worldwide. Here's what they say about us.</p>
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="text-center">
<p class="text-sm font-semibold uppercase tracking-wider text-indigo-600">Testimonials</p>
<h2 id="reviews-title" class="mt-2 text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">Trusted by engineering teams worldwide</h2>
<p class="mx-auto mt-4 max-w-2xl text-lg text-gray-600">See why developers and SRE teams choose OneUptime for their monitoring and incident management needs.</p>
</div>
<div
class="bg-gray-50 relative -mx-4 mt-16 grid h-[49rem] max-h-[150vh] grid-cols-1 items-start gap-8 overflow-hidden px-4 sm:mt-20 md:grid-cols-2 lg:grid-cols-3">
<div class="animate-marquee space-y-8 py-4" style="--marquee-duration: 28320ms;">
class="relative -mx-4 mt-12 grid h-[49rem] max-h-[150vh] grid-cols-1 items-start gap-6 overflow-hidden px-4 sm:mt-16 md:grid-cols-2 lg:grid-cols-3">
<div class="animate-marquee space-y-6 py-4" style="--marquee-duration: 35000ms;">
<% for(var i=0; i<reviewsList1.length; i++) {%>
<%- include('./review', {
review: reviewsList1[i]
}) -%>
<% } %>
</div>
<div class="animate-marquee space-y-8 py-4 hidden md:block" style="--marquee-duration: 48320ms;">
<div class="animate-marquee space-y-6 py-4 hidden md:block" style="--marquee-duration: 42000ms;">
<% for(var i=0; i<reviewsList2.length; i++) {%>
<%- include('./review', {
review: reviewsList2[i]
}) -%>
<% } %>
</div>
<div class="animate-marquee space-y-8 py-4 hidden lg:block" style="--marquee-duration: 38320ms;">
<div class="animate-marquee space-y-6 py-4 hidden lg:block" style="--marquee-duration: 38000ms;">
<% for(var i=0; i<reviewsList3.length; i++) {%>
<%- include('./review', {
review: reviewsList3[i]
}) -%>
<% } %>
</div>
<div class="pointer-events-none absolute inset-x-0 top-0 h-32 bg-gradient-to-b from-slate-50"></div>
<div class="pointer-events-none absolute inset-x-0 bottom-0 h-32 bg-gradient-to-t from-slate-50"></div>
<div class="pointer-events-none absolute inset-x-0 top-0 h-40 bg-gradient-to-b from-slate-50"></div>
<div class="pointer-events-none absolute inset-x-0 bottom-0 h-40 bg-gradient-to-t from-white"></div>
</div>
</div>
</section>