
How FoodTech is Transforming UK Restaurant Operations in 2026
UK restaurants are cutting costs by 30% and boosting orders with FoodTech. Here is how the platform works and why operators are making the switch.
fefefefe{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>f
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}
{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}
{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}
{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}
{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}
vheuri hgrejkuigerjbkureiheri hfj k
t
g
g
g
gt
gthhttthhtg erfrftthht
{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}{/* Other Blogs */}
{otherBlogs.length > 0 && (
<section className="mt-24">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900">
Other Blogs
</h2>
<p className="mt-3 text-gray-600">
Continue exploring more insights from the ONAP team.
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{otherBlogs.map((item) => (
<Link
key={item.id}
href={`/blog/${item.slug}`}
className="
group
rounded-3xl
overflow-hidden
bg-white
border
border-gray-200
hover:border-purple-400
shadow-sm
hover:shadow-xl
transition-all
duration-300
flex
flex-col
"
>
{item.thumb_image && (
<div className="aspect-[16/9] overflow-hidden">
<img
src={item.thumb_image}
alt={item.title}
className="
w-full
h-full
object-cover
transition-transform
duration-500
group-hover:scale-105
"
/>
</div>
)}
<div className="p-6 flex flex-col flex-1">
<div className="flex items-center gap-2 mb-4">
{PRODUCT_MAP[item.product] && (
<span
className="px-3 py-1 rounded-full text-xs font-semibold text-white"
style={{
background: PRODUCT_MAP[item.product].color,
}}
>
{PRODUCT_MAP[item.product].label}
</span>
)}
{item.published_at && (
<span className="text-xs text-gray-500">
{formatDate(item.published_at)}
</span>
)}
</div>
<h3
className="
text-xl
font-bold
leading-snug
text-gray-900
group-hover:text-purple-700
transition-colors
line-clamp-2
"
>
{item.title}
</h3>
{item.short_description && (
<p className="mt-3 text-gray-600 line-clamp-3">
{item.short_description}
</p>
)}
<div
className="
mt-6
inline-flex
items-center
gap-2
text-purple-700
font-semibold
"
>
Read Article
<svg
className="w-4 h-4 transition-transform group-hover:translate-x-1"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M9 5l7 7-7 7"
/>
</svg>
</div>
</div>
</Link>
))}
</div>
</section>
)}