yeswetrust: a dealmaking platform in six weeks

An impact-investing network in Baar needed software for its investor event in Portugal. Six weeks from signature. What made it hard, how the matching explains itself, and how it was built.

yeswetrust AG is an impact-investing network in Baar. It puts founders in front of investors whose thesis fits. A team decides who joins and who meets whom.

In May 2026 the network needed software. It had to work at an investor event in Portugal on 11 July. We signed on 26 May. The full scope was due on 4 July. It was delivered.

The screens below come from the demo environment. The people, companies and numbers in them are fictional.

The Discover page for a founder: the heading Investor Matches with a count, filter buttons, and a world map with a pin for each matched investor
The network is a map. Each pin is a member the viewer has been matched with.

What made it hard

  • The date was fixed. The event was booked. So the demo path had to be finished first, and the rest waited for July.
  • Everything is gated. A person approves each member, each introduction and each data room. Every page has to know who is asking. A mistake here leaks private data.
  • The match has to be explained. An investor will ask why a founder was shown. The answer has to arrive with the score.
  • The signup email had to arrive. The host blocked outgoing mail. Verification codes never left the server, so nobody could join.
  • It had to be reviewed while it was still moving. Two rounds of audit, on a codebase a few weeks old, with the date already booked.
The admin console on the Approvals tab: six pending sign-ups, each with a role badge, organisation and city, and Decline and Approve buttons
Sign-ups, introductions, events and sponsors are all approved by hand. Every decision is logged.
A company data room as its founder sees it: uploaded financial model and cap table, empty slots for missing documents, and an access request from an investor with Approve and Deny buttons
The founder opens the data room to one investor at a time. Nothing inside reaches a browser before that.

How the match works

One function on the server scores every pair. It compares an investor's thesis with a company's profile on four things.

  • Sectors they share
  • The funding round, against the stages the investor backs
  • The country, against the regions the investor invests in
  • Impact themes they share

Sectors and round count most. No overlap at all means no match, and the company stays out of the feed.

The reasons come from the same comparison. A card reads "Backs Climate and Food Systems at Seed" because those are the tags that matched. The number and the reason cannot disagree.

The tags themselves are managed by the yeswetrust team. An investor who has not filled in a thesis gets an empty tab and a prompt to finish the profile, not a page of guesses.

A company page seen by an investor: banner, one-liner, sectors and impact themes, the raise with target and amount raised, and a match panel reading 82 percent with the reason underneath
One of his companies. The raise on the right, the match and its reason below.

What shipped

  • Profiles for founders, investors and companies, with documents, slides and badges the team awards
  • A discovery feed, filtered by sector and badge, with a map
  • Introductions, held for the team to confirm before two members are connected
  • Data rooms, opened one investor at a time
  • Events with RSVP, a map, and access set per event
  • An admin console for approvals, requests, events and sponsors
  • One layout, from phone to desktop
A founder profile: photo, badges, capital raised, prior exit, the two companies founded, pitch slides, a match panel and a purpose statement
A founder profile. Companies, slides, badges given by the team, and why the viewer was matched.

How we built it

  • Two weeks on a prototype. A clickable app with three demo roles. The team walked every screen and settled the design before anything was real.
  • The prototype became the plan. The real app was built from it, screen by screen, starting 15 June. Django and PostgreSQL, with plain HTML, CSS and JavaScript on one origin.
  • Claude Design and Claude Code. The screens were drawn in Claude Design. The code was written with Claude Code. Our developers set the architecture and reviewed every change.
  • Audited twice before the event. Every screen, as a guest and in each role, on desktop and on a phone. What came out was fixed, checked in the browser and shipped by the end of June.
  • Email fixed. Sent over an HTTP interface instead of the blocked ports, then the domain was authenticated. The codes went from undeliverable to a perfect score on mail-tester.
  • Four hundred commits between the first production commit and 10 September.
  • Added since launch: live streaming on events, a media hub, sponsors, investments logged by the team, two-factor login, an audit log.

What is next

The platform is in daily use and still being built. Three things are on the table.

  • Better matching. Sort the feed by score, use the whole range instead of a narrow band, and weigh a small thesis the same as a long one. Today a single shared tag can look like a perfect fit.
  • Events that feel like the room. Seats can already be requested, approved and capped, and each event has its own gallery, floor plan and partners. Next comes a bespoke page per event, so a summit and a dinner do not look the same.
  • Paid events with Stripe. Ticket tiers already carry real prices, but nothing is charged yet and the team still invoices by hand. Stripe would close that: pay a tier, get the seat, with the guest list staying where it is.
An event page: a cover photo of the sea, the title Ocean Tech Demo Day, date, venue in Lisbon, members-only access, a description and a programme with times
An event. Members meet in rooms too, so the events sit on the same map.

Terms

Price
Not disclosedFixed, in three instalments: signature, the platform live for the event, and the end of a follow-up window in July.
Time
26 May to 4 JulySignature to full scope, a week before the event on 11 July.
  • The client owns everything built for it, on full payment.
  • The platform runs on the client's own servers. The team operates it.
  • Handover documentation is included. There is no lock-in.

Stack

  • Backend. Django, Django REST Framework, PostgreSQL.
  • Frontend. Plain HTML, CSS and JavaScript, served from the same origin. No build step.
  • Security. Cookie sessions, rate-limited sign-in, two-factor login, an admin audit log.
  • Email. Sent over an HTTP interface, with the client's domain authenticated.
  • Live video. Restream, with the status cached on the server.
  • Hosting. The client's own servers.

Article 032 · 18 September 2026 · 5 min read.
Reply to paolo@mont3.ch.