Inspiration

Courier was born from a need!

As a software developer I spent inordinate amounts of time in my harness, building things, editing videos, writing documents, replying to email. My agents do so many things for me, but the tough nut has always been payments, heck even logging into some websites is still painful. So when I caught wind of the hackathon, I knew I wanted to pitch my solution to that. I reached to Luna with my idea, and we started brainstorm how we would position Courier as a product to stand out as an agentic commerce solution.

On the branding, I also have an artist side (in fact, I am a freelance illustrator too), and I try to carry that whimsy everywhere I go. When I first started thinking about Courier, I knew I wanted it to capture the energy of a bustling city, the delivery boy, going on errands, giving my card to someone and getting it back with a brown bag and a receipt. Earlier iterations of the Courier brand were much wilder!

Eventually, I landed on a minimalistic and sporty brand direction, one that evokes speed and energy, bold text and italics, and carried that into the decision of giving each Courier a unique name, aswell as colors and a face.

What it does

It's simple : Courier gives your agents an ID by tying them to your Paypal account, and access to a web of partner shops that accept Courier IDs. Shops can seamlessly accept Couriers by installing our SDK, no matter their stack, through our partner APIMatic. All you have to do is connect with your Paypal account, connect the MCP to your AI provider or use our platform, and start ordering.

How we built it

Our workflow was simple : lay out a spec sheet, decide on the architecture, and use Claude to write the code : iterating in waves starting from the MVP to the nice-to-have features. Branding and UIUX was by far the most time consuming part. Coding is cheap now, and you arrive pretty quickly at a good architecture plan that fits the spec sheet. UIUX is much harder, many mockups were made! We're still not at a point where the brand feels final, but it's close enough.

Courier is deployed on DigitalOcean, relies on Paypal for logins, Paypal Vault for saved payments, and the Agent Toolkit for returns and tracking. We used Claude models to write the code, with a Node.js server on the backend running Express, OAuth 2.1 with PKCE and dynamic client registration, data is stored on a builtin SQLite database, and we relay on AG Studio and React for our shop desks. Everything else is plain JS/HTML/CSS.

Challenges we ran into

Many! The first being coordination, Luna is currently in China, and I live in France. That's a roughly 8 hour difference. I also found out about the challenge quite lane, just a few weeks before the deadline, while Luna had to separate from her initial teammate.

The UX was also pretty clunky at first in unexpected ways. Multiple approvals, Opus refusing to use tools that sounded like payments, finding a group purchasing formula that worked...

Accomplishments that we're proud of

We quite like the brand we were able to come up with! Many iterations before we got to these fonts, colors, copy, faces and card design.

We're also proud that you can actually conduct an end-to-end purchase, without tons of approvals, without compromising of safety or privacy, even if it's just a sandbox. Courier could become real tomorrow and that's pretty cool.

We're also proud of having been able to complete both a client and a shops demo within such a short period of time without compromising on quality.

What we learned

Definitely learned a lot about UX while building Courier. Tool names changing the behavior of the model was a surprise too even though that's most likely model specific. Most of all, what it takes to make a compelling product, nothing can be left to chance.

What's next for Courier

1) Real shops! We'd love to do Paypal partner onboarding and propose this service to real local businesses who already use Paypal for checkouts, and have them try the Courier way. 2) More agents! Test and polish behavior with ChatGPT, Cursor, and other MCP clients. 3) Webhooks so that we can integrate refunds & shipping updates right inside the errand chat. 4) This was released today by Anthropic, but Connector Apps received a huge update for richer cards and interactions and that would fit Courier's lane perfectly.

Built With

  • ag-studio
  • apimatic-(typescript-and-python-sdks)
  • biome
  • claude-api-(anthropic-sdk
  • digitalocean
  • duckdns
  • express.js
  • jwt-(eddsa-via-jose)
  • model-context-protocol-(mcp)-sdk
  • node.js
  • oauth-2.1-(pkce
  • openapi
  • paypal-agent-toolkit
  • paypal-orders-api
  • paypal-vault
  • react
  • typescript
  • zod
Share this project:

Updates

Submission history