Case study · Design & Development

GrowOperative

A local food trading app built around contacts, orders and mutual credit. We designed the product and built the client, backend and connection to the FOAF ledger.

Site
growoperative.app ↗
Status
Live
Disciplines
UX design · Visual design · Full-stack development · Project management
Stack
Expo / React Native · TypeScript · Redux Toolkit · Ruby on Rails · PostgreSQL · FOAF API

The problem

Local food trade depends on availability, trading relationships and order settlement. GrowOperative gives producers, brokers, retailers and consumers a shared application to manage these activities, with mutual credit as part of the trading model.

What was built

We designed the product flows and visual identity, then built the application around the relationships and records each trade needs:

  • Listings, inventory and requests for finding and offering goods
  • Contacts and trustlines for managing trading relationships and credit limits
  • Orders and settlement flows connecting the application to the ledger
  • An Expo/React Native client, including a web build, backed by Rails and PostgreSQL

Development

Trading relationships with explicit credit limits

GrowOperative handles trading, while a separate FOAF service handles ledger balances and payment capacity. The Rails backend connects the two and publishes credit limits and settlement events through the FOAF API.

01

Contacts and trustlines

Trustlines set explicit credit limits for trading relationships between participants. The ledger uses those limits to check payment capacity.

02

Mutual credit settlement

Order settlement uses the FOAF ledger for balance and capacity calculations. The application reads the results through the API without calculating balances separately.

03

Orders and inventory

The Rails backend models inventory, item requests, orders and trading relationships needed to move goods through the network.

04

Expo and React Native client

The TypeScript client uses Expo, React Native and Redux Toolkit, with a web build for browser access.

05

Separate ledger integration

A durable outbox records trustline-limit updates for delivery to FOAF, separating application changes from API delivery. Failed deliveries can be retried.

The project began with Novadiem directing a small development team. We later took over direct development, rebuilding the client with Expo/React Native and continuing the Rails and ledger integration work.

What this shows

One place for balance and capacity calculations

Credit limits, balances and settlement have to agree across the product. We keep trading records in Rails and ledger calculations in FOAF. This gives the client a consistent source for payment capacity while allowing the trading workflow and ledger to evolve separately.

Read the FOAF reference implementation ↗

Ω

Building a trading platform?

We work across product design, application development and the systems that connect orders, accounts and settlement.