fix: stop .gitignore from excluding build/.next (site 502/blank after deploy)
.gitignore's ".next/" rule (no leading slash) matched at any depth, so build/.next was silently excluded from every commit even though build.sh populates it. The Docker image was built without the compiled server/static output, so server.js had nothing to serve. Anchor the rule to the repo root and commit the compiled output that Dokploy actually needs.
This commit is contained in:
207
build/.next/server/app/blog.segments/_full.segment.rsc
Normal file
207
build/.next/server/app/blog.segments/_full.segment.rsc
Normal file
File diff suppressed because one or more lines are too long
6
build/.next/server/app/blog.segments/_head.segment.rsc
Normal file
6
build/.next/server/app/blog.segments/_head.segment.rsc
Normal file
@@ -0,0 +1,6 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"]
|
||||
3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"]
|
||||
4:"$Sreact.suspense"
|
||||
5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"]
|
||||
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Blog – Doormile"}],["$","meta","1",{"name":"description","content":"Practical notes on delivery planning, EV fleet operations, route optimisation, charging, and last-mile performance from the Doormile team."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"}
|
||||
15
build/.next/server/app/blog.segments/_index.segment.rsc
Normal file
15
build/.next/server/app/blog.segments/_index.segment.rsc
Normal file
@@ -0,0 +1,15 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"]
|
||||
7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
:HL["/_next/static/chunks/13ci0umlwh11-.css","style"]
|
||||
:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"]
|
||||
:HL["/css/site.css","style"]
|
||||
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"}
|
||||
10
build/.next/server/app/blog.segments/_tree.segment.rsc
Normal file
10
build/.next/server/app/blog.segments/_tree.segment.rsc
Normal file
@@ -0,0 +1,10 @@
|
||||
:HL["/_next/static/chunks/13ci0umlwh11-.css","style"]
|
||||
:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"]
|
||||
:HL["/css/site.css","style"]
|
||||
:HL["/images/home2-banner-1.webp","image"]
|
||||
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"}
|
||||
5
build/.next/server/app/blog.segments/blog.segment.rsc
Normal file
5
build/.next/server/app/blog.segments/blog.segment.rsc
Normal file
@@ -0,0 +1,5 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"]
|
||||
4:[]
|
||||
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"}
|
||||
176
build/.next/server/app/blog.segments/blog/__PAGE__.segment.rsc
Normal file
176
build/.next/server/app/blog.segments/blog/__PAGE__.segment.rsc
Normal file
@@ -0,0 +1,176 @@
|
||||
1:"$Sreact.fragment"
|
||||
5:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ScrollReveal"]
|
||||
6:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],""]
|
||||
7:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"Image"]
|
||||
f:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"]
|
||||
10:"$Sreact.suspense"
|
||||
2:T17ff,
|
||||
.custom-blog-grid {
|
||||
display: grid !important;
|
||||
grid-template-columns: repeat(3, 1fr) !important;
|
||||
gap: 40px !important;
|
||||
width: 100% !important;
|
||||
max-width: 1200px !important;
|
||||
margin: 0 auto !important;
|
||||
padding: 40px 20px !important;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.custom-blog-grid {
|
||||
grid-template-columns: repeat(2, 1fr) !important;
|
||||
}
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.elementor-104 .elementor-element.elementor-element-c70681e {
|
||||
margin-top: var(--space-section) !important;
|
||||
margin-bottom: 16px !important;
|
||||
}
|
||||
.custom-blog-grid {
|
||||
grid-template-columns: 1fr !important;
|
||||
gap: 28px !important;
|
||||
padding: 24px 20px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.elementor-104 .elementor-element.elementor-element-c70681e {
|
||||
--padding-left: 10px !important;
|
||||
--padding-right: 10px !important;
|
||||
padding-left: 10px !important;
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
.elementor-104 .elementor-element.elementor-element-3dec5cf {
|
||||
--padding-left: 0px !important;
|
||||
--padding-right: 0px !important;
|
||||
padding-left: 0 !important;
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
.elementor-104 .elementor-element.elementor-element-aa12479,
|
||||
.elementor-104 .elementor-element.elementor-element-aa12479 > .elementor-widget-container,
|
||||
.elementor-104 .archive-listing,
|
||||
.elementor-104 .custom-blog-grid {
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
.elementor-104 .custom-blog-grid {
|
||||
padding-left: 0 !important;
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.custom-blog-card {
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
justify-content: space-between !important;
|
||||
height: 100% !important;
|
||||
background: #ffffff !important;
|
||||
border: 1px solid rgba(0, 0, 0, 0.08) !important;
|
||||
border-radius: 28px !important;
|
||||
padding: 28px !important;
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
|
||||
transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease !important;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
|
||||
.custom-blog-card:hover {
|
||||
transform: translateY(-8px) !important;
|
||||
box-shadow: 0 20px 40px rgba(192, 18, 39, 0.12) !important;
|
||||
border-color: rgba(192, 18, 39, 0.2) !important;
|
||||
}
|
||||
|
||||
.custom-blog-title {
|
||||
font-size: 20px !important;
|
||||
font-weight: 800 !important;
|
||||
color: #1e293b !important;
|
||||
line-height: 1.35 !important;
|
||||
text-transform: none !important;
|
||||
letter-spacing: -0.4px !important;
|
||||
margin: 0 0 12px 0 !important;
|
||||
display: -webkit-box !important;
|
||||
-webkit-line-clamp: 2 !important;
|
||||
-webkit-box-orient: vertical !important;
|
||||
overflow: hidden !important;
|
||||
transition: color 0.2s ease !important;
|
||||
font-family: var(--font-manrope), sans-serif !important;
|
||||
}
|
||||
|
||||
.custom-blog-card:hover .custom-blog-title {
|
||||
color: #c01227 !important;
|
||||
}
|
||||
|
||||
.custom-blog-excerpt {
|
||||
font-size: 13.5px !important;
|
||||
font-weight: 500 !important;
|
||||
color: #64748b !important;
|
||||
line-height: 1.6 !important;
|
||||
margin: 0 0 18px 0 !important;
|
||||
text-transform: none !important;
|
||||
font-family: var(--font-manrope), sans-serif !important;
|
||||
}
|
||||
|
||||
/* Bottom block pinned to the card base. Keeps Read More + image at the
|
||||
same vertical position across cards with different text lengths. */
|
||||
.custom-blog-bottom {
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
margin-top: auto !important;
|
||||
}
|
||||
|
||||
.custom-blog-readmore {
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
align-self: flex-start !important;
|
||||
gap: 6px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 800 !important;
|
||||
color: #c01227 !important;
|
||||
text-transform: uppercase !important;
|
||||
letter-spacing: 0.5px !important;
|
||||
margin: 0 0 24px 0 !important;
|
||||
font-family: var(--font-manrope), sans-serif !important;
|
||||
}
|
||||
|
||||
.custom-blog-readmore-arrow {
|
||||
transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) !important;
|
||||
}
|
||||
|
||||
.custom-blog-card:hover .custom-blog-readmore-arrow {
|
||||
transform: translateX(5px) !important;
|
||||
}
|
||||
|
||||
.custom-blog-img-container {
|
||||
position: relative !important;
|
||||
width: 100% !important;
|
||||
aspect-ratio: 4 / 3 !important;
|
||||
border-radius: 20px !important;
|
||||
overflow: hidden !important;
|
||||
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05) !important;
|
||||
}
|
||||
|
||||
.custom-blog-badge {
|
||||
position: absolute !important;
|
||||
top: 14px !important;
|
||||
left: 14px !important;
|
||||
z-index: 5 !important;
|
||||
background: #c01227 !important;
|
||||
color: #ffffff !important;
|
||||
font-size: 9px !important;
|
||||
font-weight: 800 !important;
|
||||
text-transform: uppercase !important;
|
||||
letter-spacing: 1.2px !important;
|
||||
padding: 4px 10px !important;
|
||||
border-radius: 6px !important;
|
||||
box-shadow: 0 4px 10px rgba(192, 18, 39, 0.2) !important;
|
||||
font-family: var(--font-manrope), sans-serif !important;
|
||||
}
|
||||
0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"blogs","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"104","className":"elementor elementor-104","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n .blogs-hero-title {\n color: #ffffff !important;\n font-family: var(--font-manrope), sans-serif !important;\n font-size: clamp(34px, 5.5vw, 68px) !important;\n font-weight: 850 !important;\n line-height: 1.08 !important;\n text-transform: uppercase !important;\n letter-spacing: -1.5px !important;\n margin: 0 !important;\n }\n .blogs-hero-content {\n position: relative !important;\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n flex-direction: column !important;\n max-width: 1000px !important;\n margin: 0 auto !important;\n padding: 0 15px !important;\n box-sizing: border-box !important;\n }\n "}}],["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"style":{"backgroundImage":"url(/images/home2-banner-1.webp)","backgroundPosition":"center center","backgroundRepeat":"no-repeat","backgroundSize":"cover"},"className":"custom-standard-hero-card","children":["$","div",null,{"className":"blogs-hero-content","children":["$","div",null,{"style":{"textAlign":"center","color":"#fff","zIndex":5},"children":["$","h1",null,{"className":"blogs-hero-title","children":["Delivering Trust.",["$","br",null,{}],["$","span",null,{"style":{"color":"#C01227"},"children":"Beyond Boundaries"}]]}]}]}]}]}]],["$","div",null,{"className":"elementor-element elementor-element-c70681e e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"c70681e","data-element_type":"container","data-e-type":"container","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3"]}]]}]}]}]}],null,"$L4"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"}
|
||||
3:["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-3dec5cf e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3dec5cf","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-aa12479 elementor-widget elementor-widget-logico_blog_listing","data-id":"aa12479","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_blog_listing.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"archive-listing","children":["$","div",null,{"className":"custom-blog-grid","children":[["$","$L5","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}],["$","$L5","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Case Study"}]]}]]}]]}]}],["$","$L5","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"custom-blog-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}]]}],"$L8"]}]}],"$L9","$La","$Lb","$Lc","$Ld","$Le"]}]}]}]}]}]}]
|
||||
4:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]
|
||||
8:["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"MileTruth"}]]}]]}]
|
||||
9:["$","$L5","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}]
|
||||
a:["$","$L5","why-mathematical-precision-beats-heuristics-in-routing",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}]
|
||||
b:["$","$L5","fleet-reduction-without-compromising-delivery-volume",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Fleet Reduction Without Compromising Delivery Volume"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Fleet Management"}]]}]]}]]}]}]
|
||||
c:["$","$L5","building-a-greener-city-the-future-of-urban-logistics",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Building a Greener City: The Future of Urban Logistics"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Sustainability"}]]}]]}]]}]}]
|
||||
d:["$","$L5","how-doormile-maintains-99-9-sla-compliance-at-scale",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","p",null,{"className":"custom-blog-excerpt","children":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Operations"}]]}]]}]]}]}]
|
||||
e:["$","$L5","battery-simulation-the-secret-to-ev-route-pre-validation",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}]
|
||||
11:null
|
||||
Reference in New Issue
Block a user