Projects

GitHub Gist Manager
Completed

GitHub Gist Manager

Built November 15, 2024Updated January 8, 2025

This app lets users authenticate with GitHub, search and view gists, and manage favorites with persistent storage. It focuses on secure OAuth flow handling, rate-safe API integration, and a clean interface for browsing and organizing gists. The backend was built to support future collaboration features and scalable data storage.

The problem this solves

GitHub's native Gist interface is functional but minimal — no way to tag, search across all your gists by content, or store personal notes. Developers who use Gists heavily end up with hundreds of snippets they can't find when they need them. This project built a proper management layer on top of the GitHub API.

What it does

  • GitHub OAuth for secure, scope-limited authentication
  • Search across public gists by filename and description
  • Favorites system with MongoDB-backed persistence
  • User comments on individual gists
  • Rate-limit-aware GitHub API integration
  • Clean, keyboard-navigable gist browser UI

Hard parts and how I solved them

GitHub's API rate limits are strict — especially for unauthenticated requests. Designing around this without degrading the user experience required careful request batching and caching strategy. The OAuth flow also had some edge cases around token refresh and scope management that took time to handle correctly. On the frontend, keeping the gist list responsive while fetching file contents lazily was a UX balance that required a few iterations to get right.

Tech stack

Next.jsTypeScriptGitHub OAuthShadcn UIMongoDB

Outcome

A fully working gist manager that feels meaningfully better than the GitHub UI for power users. OAuth works reliably, favorites persist across sessions, and the search is fast enough that it doesn't feel like an API call is happening in the background.

My role

Full-stack — OAuth flow, GitHub API integration, MongoDB schema, REST endpoints, and the entire Next.js frontend. I also designed the UX from scratch.