Skip to content

Commit ef03983

Browse files
LastMile AI case study (TraceMachina#1937)
* LastMile AI case study * fix image and configs * fix ordering and spacing * revert tsconfig change * fix formatting in json configs
1 parent 969713d commit ef03983

5 files changed

Lines changed: 66 additions & 24 deletions

File tree

.github/styles/config/vocabularies/TraceMachina/accept.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Bazelisk
88
[Bb]oolean
99
Cloudflare
1010
Colab
11+
composable
1112
CPUs
1213
[Dd]eduplication
1314
ELB
@@ -22,6 +23,8 @@ JDK
2223
JSON
2324
Kustomization
2425
Kustomizations
26+
LastMile
27+
LastMileAI
2528
LLD
2629
LLM
2730
LLMs
@@ -38,6 +41,7 @@ hello@nativelink.com
3841
OCI
3942
onboarding
4043
OSSF
44+
protobuf
4145
Reclient
4246
Rosetta
4347
[Rr]epository

web/platform/deno.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/platform/src/content/posts/CaseStudy_CIQ.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ tags: ["news", "case-studies"]
44
image: https://nativelink-cdn.s3.us-east-1.amazonaws.com/nativelink_ciq.webp
55
slug: case-study-ciq
66
pubDate: 2024-08-13
7-
readTime: 30 seconds
7+
readTime: 2 minutes
88
---
99
CIQ is an enterprise company that specializes in Linux distribution,
1010
computing infrastructure, and cluster management and provisioning systems.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: "Case Study: LastMile AI"
3+
tags: ["news", "case-studies"]
4+
image: https://nativelink-cdn.s3.us-east-1.amazonaws.com/lastmileai-logo.webp
5+
slug: case-study-last-mile-ai
6+
pubDate: 2025-09-25
7+
readTime: 2 minutes
8+
---
9+
## **About LastMile AI**
10+
11+
[LastMile AI](https://lastmileai.dev/) is an AI startup creating tools to enable developers to build AI agents. The team comes from backgrounds in top research and engineering organizations, building infrastructure and developer tools, and is backed by leading investors like Gradient Ventures, AME Cloud Ventures and Exceptional Capital.
12+
13+
LastMile AI empowers developers to build and deploy their own AI agents using [**mcp-agent**](https://mcp-agent.com/), a framework built on Model Context Protocol. mcp-agent has become a go-to toolkit for developers looking to connect large language models to real-world tools and workflows, and reflects the philosophy of empowering developers with transparent, composable systems.
14+
15+
As mcp-agent has grown, scaling the infrastructure needed to support different libraries and tech stacks across thousands of developers has become increasingly demanding.
16+
17+
## **Key Outcomes with NativeLink**
18+
19+
* Eliminated repetitive local rebuilds across our engineering team.
20+
* Enabled custom integrations with complex dependencies (like Temporal and Envoy) without build-time bottlenecks.
21+
* Accelerated development of AI agents by streamlining interoperability across languages, allowing the best technology to be implemented for each task.
22+
* Improved reliability of our platform while maintaining developer speed.
23+
24+
## **The Challenge**
25+
26+
LastMile AI relies heavily on a diverse range of technologies to power our platform, such as Temporal and Envoy, with a common denominator of protobuf and gRPC, to form the foundation of mcp-agent’s infrastructure, requiring interoperability across languages. In the world of AI, this challenge compounds:
27+
28+
* **AI is uniquely polyglot.** While application code often lives in Python, the ecosystem depends critically on native libraries written in languages like Rust, C++, and CUDA.
29+
* **Complex build targets.** To support diverse deployment environments, it’s often necessary to break apart dependencies and reconstruct them with Bazel.
30+
* **Developer overhead.** Without a shared caching system, every engineer building their own AI agent would be forced to repeatedly recompile these large dependencies, slowing iteration, wasting time and frustrating developers. Shared remote caching lets the team treat foundational components as fixtures that benefit everyone instead of slowing down iteration.
31+
32+
## **The Solution**
33+
34+
NativeLink has eliminated much of the overhead needed in managing all the library dependencies. LastMile uses NativeLink as a remote build cache for Bazel:
35+
36+
* **Eliminating repetitive local rebuilds.** Using NativeLink as a remote build cache for Bazel in our monorepo allows developers to reuse shared build outputs.
37+
* **Incorporating heavier dependencies.** By caching builds, the team can incorporate heavier dependencies (such as Envoy and Temporal) directly into the build process.
38+
* **Reproducible builds.** Because developers don’t have to waste time or resources with local rebuilds, they can get back to building.

web/platform/src/pages/resources/index.astro

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,27 @@ const pageTitle = "NativeLink Resources | Blog, Case Studies, Changelog";
3939
</a>
4040
</div>
4141

42+
<LinearGradient text="Case Studies" class="text-thin text-4xl self-start pl-8 md:pl-48 py-8" />
43+
44+
<div id="Card" class="relative w-screen px-8 md:px-2 md:w-9/12 flex gap-4 snap-x snap-mandatory overflow-x-auto pb-16 mb-6 ">
45+
{caseStudies
46+
.sort((a, b) => new Date(b.data.pubDate).getTime() - new Date(a.data.pubDate).getTime())
47+
.map((post) => (
48+
<a
49+
href={"/resources/blog/" + post.id}
50+
class="h-96 w-11/12 md:w-72 shrink-0 flex flex-col snap-always md:justify-evenly justify-start rounded-xl items-center border border-solid border-white snap-center"
51+
>
52+
{post.data.image && (
53+
<img src={post.data.image} alt={post.data.title || "Blog post image"} class="w-full h-48 object-contain rounded-t-xl" />
54+
)}
55+
<div class="w-full h-full flex flex-col justify-between items-start p-6">
56+
<LinearGradient text={post.data.title} class="text-lg w-full" />
57+
<span class="text-lg">Read More</span>
58+
</div>
59+
</a>
60+
))}
61+
</div>
62+
4263
<LinearGradient text="Blog Posts" class="text-thin text-4xl self-start pl-8 md:pl-48 py-8"/>
4364

4465
<div id="Card" class="relative w-screen px-8 md:px-0 md:w-9/12 flex gap-4 snap-x snap-mandatory overflow-x-auto pb-16 mb-6 ">
@@ -94,27 +115,6 @@ const pageTitle = "NativeLink Resources | Blog, Case Studies, Changelog";
94115
))}
95116
</div>
96117

97-
<LinearGradient text="Case Studies" class="text-thin text-4xl self-start pl-8 md:pl-48 py-8" />
98-
99-
<div id="Card" class="relative w-screen px-8 md:px-2 md:w-9/12 flex gap-4 snap-x snap-mandatory overflow-x-auto pb-16 mb-6 ">
100-
{caseStudies
101-
.sort((a, b) => new Date(b.data.pubDate).getTime() - new Date(a.data.pubDate).getTime())
102-
.map((post) => (
103-
<a
104-
href={"/resources/blog/" + post.id}
105-
class="h-96 w-11/12 md:w-72 shrink-0 flex flex-col snap-always md:justify-evenly justify-start rounded-xl items-center border border-solid border-white snap-center"
106-
>
107-
{post.data.image && (
108-
<img src={post.data.image} alt={post.data.title || "Blog post image"} class="w-full h-48 object-contain rounded-t-xl" />
109-
)}
110-
<div class="w-full h-full flex flex-col justify-between items-start p-6">
111-
<LinearGradient text={post.data.title} class="text-lg w-full" />
112-
<span class="text-lg">Read More</span>
113-
</div>
114-
</a>
115-
))}
116-
</div>
117-
118118
<div class="w-full pb-12 h-auto flex justify-center items-center">
119119
<a class="w-36 h-10 bg-white flex justify-center items-center rounded-xl border border-solid border-white" href="/resources/blog">
120120
<button type="button" class="text-sm! md:text-md text-black">

0 commit comments

Comments
 (0)