Client Portal

State fo affairs

  • Engagement docs by email
  • Process outline by email/slack/conversation
  • Client given access to Dropbox
  • ...or files sent to client

Brief

  • One-stop shop for clients
  • Engagement documents
  • Process outline
  • Project assets
  • Fathom brand

Goals

  • Improve process consistency
  • Easy to manage
  • Easy to create new portals

💡 Idea

It's Just Dropbox™

Solution

  • Dropbox as CMS
  • Folder depth for structure — pages > sections
  • Simple markdown file per folder for content — content.md
  • Simple naming convention for versioning — 001-Filename

Goals

  • Improve process consistency ✅
  • Easy to manage ✅
  • Easy to create new portals — more on this later
React AppDropbox API

Issue

Using Dropbox API in the client means your API key is exposed

Serverless

Backend code without managing servers

Functions as a Service (FaaS)

  • Auto-scaling
  • Pay-per-execution
  • Event-driven

Pros

  • Reduced operational cost
  • Reduced complexity
  • Reduced engineering lead time

Cons

  • Increased reliance on vendor dependencies
  • Comparatively immature supporting services
  • Cold starts, potential latency
React Ap pServerless FunctionDropbox API

Demo

So what about creating new portals?

💡 Idea

🤖 CLI tool

Issues

  • A bit cumbersome
  • Needs an engineer to do it

💡 (Better) Idea

Self-Service Portal Creation™

Demo

Behind the scenes

  • Copies client portal template in Dropbox
  • Updates homepage markdown with client name
  • Creates branch in client portal repo
  • Updates config file with new portal details
  • Polls Netlify for deployment status

Questions?

Thank you 🙏