Client
Non-profit
Timeline
9 months
Scope
API and schema design, third-party integrations, WebSocket server
Outcome
Sub-100ms interaction to next paint (INP); 1.7 second largest contentful paint (LCP)
Sub-100ms interaction to next paint (INP); 1.7 second largest contentful paint (LCP)

The Problem

The site was built on an outdated PHP framework with non-normalized database schema. It had built up a lot of technical debt over the years, and the team wanted to modernize the backend to optimize and prepare for growth.

What I Built

I built the backend system that integrations user subscriptions with the static site. User contributions flow through the backend to be reviewed, vetted, and incorporated. It interfaces with an OAuth 2.0 provider for authentication and a subscription billing service for payments, which updates the site database by webhooks.

Technical Highlights

Written in Go, using Gorilla, Pop, and Buffalo. Contribution and subscription data is maintained in a PostgreSQL database. The static site pages are stored in S3 and served conditionally based on subscription status.

Results

  • Dashboard data latency: Page load times are well within target specs, with sub-100ms interaction to next paint (INP) and a 1.7 second largest contentful paint (LCP).
  • Reliability: The new backend has been stable and reliable since launch, with 99.9% uptime.
← Back to all projects