DEV Community

Cover image for Devlog-OSS-Finder-03: Good First Issues and Testing
Barbora Klusackova
Barbora Klusackova

Posted on

Devlog-OSS-Finder-03: Good First Issues and Testing

Date: January 26, 2026

Status: Feature Complete — Testing Added


What I Built

A major feature update that transforms OSS Finder from a repository search tool into a complete platform for open-source contribution discovery.
Good first issue feature

New Capabilities

  • Good First Issues page — Find beginner-friendly issues across GitHub
  • Tab navigation — Switch between Repositories and Issues views
  • TanStack Query caching — Smart data caching for better performance
  • Testing infrastructure — Vitest + Testing Library for both frontend and backend
  • Tests in CI/CD — Automated testing on every PR

Links


What I Learned

Caching Is a Game-Changer (TanStack Query)

Before TanStack Query, every search hit the GitHub API:

  • User searches "react" → API call
  • User changes page → API call
  • User goes back to page 1 → API call again (even though we just fetched it)

Now with TanStack Query:

  • The first search triggers an API call (cached for 5 minutes)
  • Subsequent identical searches are instant (served from cache)
  • Automatic background refetching when data goes stale
  • Built-in loading and error states

Implementation was straightforward. I refactored useRepositories and created useIssues to use useQuery:

const { data, isLoading, error } = useQuery({
  queryKey: ['issues', params],
  queryFn: () => apiService.searchIssues(params),
  staleTime: 5 * 60 * 1000, // 5 minutes
})
Enter fullscreen mode Exit fullscreen mode

Caching isn't just about performance — it's about respecting API rate limits and creating a snappier user experience. GitHub's API has strict limits, and unnecessary calls burn through them fast. Previously, I thought "I'll add caching later if needed." Now I understand: caching should be part of the architecture from the start, not a performance afterthought.

Testing

I added the testing stack and wired it into CI:

  • Vitest for frontend and backend
  • Testing Library for React
  • Tests + lint + format on every PR

Coverage is small, but the pipeline is there, so adding tests is cheap.


That’s it for this iteration: Good First Issue feature, caching is in, tests are running in CI, and the app is ready for the next round of features.

Cheers,
B.

Top comments (0)