Inspiration

Every day, huge amounts of perfectly edible food are thrown away by supermarkets, restaurants, and catering businesses, while shelters and food banks struggle to meet demand.

We realized that the real problem is not the lack of food — it is the lack of coordination between businesses, shelters, and volunteers. Most food rescue systems still rely heavily on manual communication, spreadsheets, and phone calls.

We wanted to build a system that could autonomously coordinate the entire rescue process in real time using AI agents and graph-based logic. That idea became Nourish.

What it does

Nourish is an autonomous food rescue platform built entirely with Jac and Jaseci.

The platform connects:

businesses with surplus food, shelters that need donations, and volunteer drivers who can transport the food.

The system uses three autonomous Jac walkers acting as AI agents:

Supply Manager — validates and creates donation entries when businesses upload surplus food. Demand Tracker — continuously monitors shelter capacities and food needs. Autonomous Dispatcher — automatically matches donations to shelters, assigns volunteers, and dispatches deliveries.

Nourish also includes:

a live frontend dashboard, donation and shelter management, AI monitoring pages, a geographic map view, analytics and alerts, and a REST API backend.

How we built it

We built the entire project using the Jac programming language on top of the Jaseci platform.

The backend is modeled as a live spatial graph:

businesses, shelters, donations, and volunteers

are represented as nodes connected through typed edges.

Instead of traditional database relationships, Jac allowed us to naturally represent the real-world logistics network as a traversable graph.

The autonomous agents were implemented as Jac walkers:

walkers traverse the graph, make decisions, update node states, and coordinate deliveries autonomously.

For the frontend, we used Jac’s .cl.jac client syntax to create:

dashboards, feeds, map pages, and live monitoring interfaces.

Everything — frontend, backend, API, and AI orchestration — was built in one language.

Challenges we ran into

One of the biggest challenges was designing autonomous dispatch logic that could:

avoid duplicate dispatches, handle missing volunteers, and correctly match donations to shelters with available capacity.

Another challenge was modeling persistent state inside the graph while keeping the dispatch cycles efficient and scalable.

We also had to carefully structure the relationships between nodes and edges so the walkers could traverse the ecosystem predictably and safely.

On the frontend side, synchronizing live backend state with dashboard updates required significant coordination.

Accomplishments that we're proud of

We are especially proud that we built a fully working autonomous multi-agent system entirely in Jac.

Some highlights include:

real graph-native architecture, autonomous dispatch walkers, live logistics coordination, persistent graph memory, full-stack implementation in one language, and a polished frontend dashboard.

We are also proud that the project solves a meaningful real-world problem with potential social impact.

What we learned

Through this project, we learned how powerful Jac’s Data Spatial Programming model is for real-world coordination systems.

We learned:

how to design graph-native architectures, how walkers can act as autonomous AI agents, how persistent graph memory simplifies state management, and how spatial programming naturally fits logistics and dispatch systems.

We also gained experience building full-stack systems entirely within a single ecosystem.

What's next for Nourish

Our next steps include:

real SMS and email integrations, LLM-powered semantic food matching using by llm(), real-time volunteer tracking, Supabase/PostgreSQL persistence, mobile applications, multi-city support, and smarter AI prioritization systems.

We want Nourish to evolve from a hackathon prototype into a scalable real-world food rescue platform.

Built With

  • jac
  • jacstudio
Share this project:

Updates