SuryanshChourasia
All work

German hotel group, 47 properties · 2026

Pact

I replaced email and spreadsheet tenders with connected buyer, supplier, and administrator portals for a 47-property hotel group.

Frontend developmentInterface design in codeFull-stack implementation

A 47-property hotel group was running supplier tenders through Excel attachments and email threads.

Preparing one tender took roughly three weeks. Comparing suppliers, protecting bidder identity, recording an award, and answering an audit question all happened in separate places. The new product had to connect those steps without exposing one supplier to another.

Pact procurement platform on a MacBook resting on the hood of a black car under one hard key light, showing a linen tender compared across four supplier columns.
Pact's three portal architecture: separate buyer, supplier and admin views with role based access control.
Three portals over one tender. Role based access with Casbin.
Pact's full procurement audit log with every tender action recorded, timestamped and attributed to a user.
The audit log. The reason the first review took an hour.
A close view of Pact's anonymised supplier comparison, where each bidder receives a per-tender alias.
Each supplier receives a new alias for every tender, preventing buyers from recognising the same bidder across comparisons.
Pact linen tender comparison showing six line items and four anonymised supplier columns.
The buyer compares every position in one table before any supplier identity is revealed.

The decisions that made it work

01

Three portals, one process

Buyer, supplier and admin each see the same tender from their own vantage point. Suppliers never see each other. Buyers never see identities during scoring.

02

Anonymised bidding

Bids are compared by position, not by name. The buyer sees K-1 through K-4 and the numbers underneath. Identity is only revealed after the award, which is what makes the methodology defensible.

03

An audit log you can hand over

Every action recorded with a timestamp and a user. The first internal audit after launch took under an hour, because the answer to every question was already in the log.

04

Self hosted on purpose

A hospitality group in Germany has opinions about where supplier pricing lives. Docker, Caddy, their infrastructure, their data. Slower to build than reaching for a managed platform, and the reason the deal closed.

78%

faster tender cycles

4 days

tender prep, from 3 weeks

40%

more bids per tender

0

sev-1 incidents since launch

Built withNext.jsHonoPostgresDrizzleCasbinDockerCaddy
Next projectScrivaPublic-tender startup
Want one like this?Landing pages from $999, live in about 10 days.Start a project