Work / loveyourepo

loveyourepo

Connects to GitHub, GitLab and Bitbucket, tracks each repository’s dependencies over time and flags outdated packages so teams can ticket them.

Role
Product, design and engineering
Status
Alpha
Stack
Next.js, TypeScript, Prisma, Supabase
The loveyourepo website

The problem

Dependencies in active repositories drift out of date, and keeping them current is upkeep that pulls time from real work. loveyourepo gives teams gentle nudges and health checks so repositories stay current without constant reminders.

What I did

  • •OAuth connections to GitHub, GitLab and Bitbucket that import an organisation’s repositories, including a Bitbucket workspace picker.
  • •Automatic fetching of package.json and composer.json manifests, with a snapshot history of how dependencies change over time.
  • •An update checker that sorts available updates into major, minor and patch and records how many major versions each package is behind.
  • •A searchable, filterable dependency list with CSV export, and a timeline view that compares snapshots.
  • •One-click Jira tickets for outdated dependencies, with project selection and the required custom fields fetched on demand.

How it works

A pnpm and Turborepo monorepo with a Next.js app and shared packages for the API, auth and database. The API is built with oRPC and Hono and called through TanStack Query. Repositories, manifest history, check runs, updates and tickets live in Postgres through Prisma, and update checks run against the npm registry on the server.

Decisions and trade-offs

  • •Moved authentication from Better Auth to Supabase Auth, mapping existing user fields across so nothing was lost.
  • •Widened the schema from package.json to multiple manifest types, starting with PHP’s composer.json, while keeping the old fields for compatibility.
  • •Made the ticket model platform-agnostic, so one dependency update can link to tickets in Jira now and other trackers later.

Where it stands

In alpha, with early-access sign-up open on the site.

Need this on your team?

I take contract roles as a senior product engineer. Tell me about the team and the work.