projects/Richard Empleo Tribute Website
A tribute gallery with smooth animated scrolling that updates itself: the family adds photos to a shared Google Drive folder and they appear on the site, no redeploy needed.

The problem. The client wanted a tribute site that family members could add photos to at any time, without anyone having to ask a developer to upload files or republish the site.
What I built. An interactive gallery that reads directly from a shared Google Drive folder. It uses the official Drive API and automatically falls back to a public-folder reader if the API is unavailable, so the gallery keeps working. The page itself features smooth inertia scrolling and timeline-style animations tuned to stay fluid on phones.
The result. Adding a photo is as simple as dropping it into the shared folder: it shows up on the live site without a redeployment or developer involvement.
Key architectural decisions, concrete code implementations, and performance wins behind this project.
Client requested zero-maintenance photo updates directly through a shared Google Drive folder without requiring manual redeployments, static asset bundling, or complete service disruptions during API quota depletion or key misconfigurations.
Engineered a resilient dual-layer Next.js API route that queries the Google Drive REST API v3 using field mask filtering (`fields=files(id,name,mimeType,thumbnailLink)`). Implemented an automatic zero-config fallback parser that queries public drive folder payloads, categorizes media by metadata heuristics, and delivers CDN-accelerated direct streaming URLs (`lh3.googleusercontent.com/d/{id}`).
Rendering high-resolution multi-aspect photography and video assets alongside rich particle canvases frequently induces frame drops, layout thrashing, and scroll stutter.
Integrated Lenis smooth scrolling with GSAP ScrollTrigger timeline interpolation, offloading transformations directly to GPU compositing layers with CSS hardware acceleration (`will-change`, `transform: translate3d`).
// community_discussion
Have thoughts, questions, or ideas regarding this system's architecture? Leave a comment below with your GitHub account.