How it works

Delta Portal

MATTER, deployed for Delta. Delta’s deployment of MATTER: RFIs, bids, contracts and chat. It replaced Procore, a $48K-a-year bill; about 400 past projects moved off it in about two hours.

Live · Delta Construction

Fig.Delta Construction’s deployment of MATTER, for its own team and for the architects and subs it works with.

Architecture

  1. APeople· 2Delta’s team · Architects & subs
    • Delta’s teamweb · phones · iPadsUI

      UI · web · phones · iPads

      Delta’s project managers, engineers and field staff, in the app.

      Talks to

      • → Public API (HTTPS)
      • → Live sockets (live)
    • Architects & subsemailed linksUI

      UI · emailed links

      People outside Delta. They answer RFIs and submit bids from a link, without an account.

      Talks to

      • → Public API (emailed link)
  2. BGateway· 2Public API · Live sockets
    • Public APISpring Boot · JWTSERVICE

      SERVICE · Spring Boot · JWT

      Checks who is asking and forwards each request with their identity. Link tokens are checked here too.

      Talks to

      • ← Delta’s team (HTTPS)
      • ← Architects & subs (emailed link)
      • → Project (REST)
      • → Bid packages (REST)
    • Live socketsWebSocketsREALTIME

      REALTIME · WebSockets

      Pushes chat and notifications to open apps as they happen.

      Talks to

      • ← Delta’s team (live)
      • ← Redis (pub/sub)
  3. CProject· 9Project · RFIs · Submittals · Drawings · Chat · Bid packages · Bids · Contracts · Notifications
    • Projectteam · directorySERVICE

      SERVICE · team · directory

      Everything hangs off a project and the companies and people on it.

      Talks to

      • ← Public API (REST)
      • → Bid packages (packages)
      • → PostgreSQL (SQL)
      • ← Procore (import)
    • RFIsball in courtSERVICE

      SERVICE · ball in court

      Questions to the design team, with the ball moving between companies as the RFI is answered.

    • Submittalsrevise & resubmitSERVICE

      SERVICE · revise & resubmit

      Submittals go round in revisions until approved.

    • Drawingssheets · revisionsSERVICE

      SERVICE · sheets · revisions

      Plan sets split into sheets, with revisions side by side.

      Talks to

      • → Object storage (files)
      • → Autodesk APS (linked files)
    • Chatreal timeSERVICE

      SERVICE · real time

      Project conversations, live.

      Talks to

      • → Redis (publish)
    • Bid packagesinvites · levelingSERVICE

      SERVICE · invites · leveling

      A trade’s scope packaged for bidding, with the subs invited to it.

      Talks to

      • ← Public API (REST)
      • ← Project (packages)
      • → Bids (collects)
    • BidsSOV · alternatesSERVICE

      SERVICE · SOV · alternates

      Each sub’s bid, with a schedule of values and any alternates, levelled against the others.

      Talks to

      • ← Bid packages (collects)
      • → Contracts (awarded)
    • ContractsSOV from the awardSERVICE

      SERVICE · SOV from the award

      The awarded bid’s schedule of values is carried onto a payable contract on the same project.

      Talks to

      • ← Bids (awarded)
    • Notificationsin-app · emailSERVICE

      SERVICE · in-app · email

      Tells people when something they own moves.

      Talks to

      • → Redis (publish)
  4. DData· 3PostgreSQL · Object storage · Redis
    • PostgreSQLSTORE

      STORE

      The record of every project, RFI, bid and contract.

      Talks to

      • ← Project (SQL)
    • Object storageS3-compatibleSTORE

      STORE · S3-compatible

      Drawings, attachments and photos.

      Talks to

      • ← Drawings (files)
    • Redispub/subSTORE

      STORE · pub/sub

      Carries chat and notification events to the sockets.

      Talks to

      • ← Chat (publish)
      • ← Notifications (publish)
      • → Live sockets (pub/sub)
  5. ELinks· 2Procore · Autodesk APS
    • Procoreone-time importEXTERNAL

      EXTERNAL · one-time import

      Projects came across from Procore once. Nothing writes back.

      Talks to

      • → Project (import)
    • Autodesk APSfolders · filesEXTERNAL

      EXTERNAL · folders · files

      Delta’s Autodesk folders and files, linked to the project.

      Talks to

      • ← Drawings (linked files)
Connections · 15

→ request · ⇢ webhook, queue or schedule

  1. Delta’s team → Public API · HTTPS
  2. Architects & subs → Public API · emailed link
  3. Delta’s team → Live sockets · live
  4. Public API → Project · REST
  5. Public API → Bid packages · REST
  6. Project → Bid packages · packages
  7. Bid packages → Bids · collects
  8. Bids → Contracts · awarded
  9. Chat ⇢ Redis · publish
  10. Notifications ⇢ Redis · publish
  11. Redis ⇢ Live sockets · pub/sub
  12. Project → PostgreSQL · SQL
  13. Drawings → Object storage · files
  14. Drawings → Autodesk APS · linked files
  15. Procore ⇢ Project · import

One flow

A bid package becomes a subcontract

Walk through it and each step lights the parts it runs through in the drawings above.

By count

past projects moved off Procore, in about two hours
~400
a year of Procore licensing, replaced
$48K

Notes

  1. N.1It replaced Procore, whose bill grew as Delta did. Projects were brought over from Procore once; nothing writes back to it.
  2. N.2About 180 active projects and $14M in contracts run through it, with hundreds of RFIs a week.
  3. N.3People outside Delta answer RFIs and submit bids from an emailed link, so the people who owe a reply don’t need a login.
  4. N.4Chat is live, and you aren’t notified about a conversation you’re already reading.

Built by

I design, architect and build software products like this one.

naram@hey.com·See the rest of my work

More systems