DevVault
DevVault is a developer resource search app built as part of a team project during a Chingu Voyage. It helps developers quickly find curated tutorials, blogs, and videos shared in the Chingu Discord.
Live versionRepo

Project Goal
Build an app to help developers discover useful learning resources. It supports phrase-based search, tag filtering, persistent state, and fallback handling for API downtime.
Tech Stack
- React, Vite, TypeScript, Tailwind CSS
- Context API with a custom
usePersistedState
hook for localStorage persistence - Fuse.js for typo-tolerant search
- Material UI for select dropdowns
- Framer Motion for animated placeholder UX
Teamwork & My Contributions
This was my fourth Chingu Voyage, so by this point I had a solid understanding of working in a team using Scrum and Agile methodologies. It was also the first Voyage where we had no major merge conflicts something I believe was thanks to better planning, communication, and GitFlow practices. It was easy to collaborate because the other developers also had experience working in Chingu teams and understood the value of clean pull requests and frequent updates.
- Built the full-phrase and fuzzy search using Fuse.js
- Implemented persistent state using a custom hook
- Added fallback static data in case of API failures
- Implemented tag filtering and sorting functionality
- Created a custom API endpoint with handpicked Chingu resources
- Wrote and shared a GitFlow guide to support team collaboration

Challenges & Thought Process
The original Chingu API was unreliable and often went down. To keep the app functional, I:
- Fetched data once per day and stored it in localStorage
- Provided fallback resources using
FALLBACK_DATA
- Filtered broken URLs and removed duplicates from the API response
Building a smart, typo-tolerant search bar pushed me to deeply explore Fuse.js and carefully design the app’s state structure. I also added additional educational resources for new Chingu users, like a Git team workflow guide, GitFlow documentation, and helpful videos from the Chingu YouTube channel about how Voyages work.
What I Learned
- How to handle unreliable APIs by implementing fallback strategies and persistent caching
- How to clean up and validate API data, including removing duplicates and broken links
- How to build a smart, typo-tolerant search bar that supports full phrases using Fuse.js
- How to separate state logic cleanly using custom hooks for a resilient UX