Mnemora
Collected hourly

How this page is built.

This is not a static portfolio. An hourly job collects public repository data from GitHub, stores it in Postgres, and serves it through a read-only API to the page you are reading. The numbers on the other page are rows in that database.

01 What is in the store

What is in the store right now

NOT CONNECTED

Counts unavailable

This deployment is not connected to the repository feed. No repository data is shown until the feed is available.

Who runs it

John-Ronan S. Beira — BS Computer Science, fourth year. Building with intent.

The rest of the portfolio — projects, certificates, archive — lives at syn-forge.com.

02 The pipeline
01

Collect

An n8n queue-worker calls the public GitHub API hourly, once per repository. A repository whose last push has not changed is skipped rather than re-fetched, and a run lock makes a second tick stand down instead of duplicating work.

02

Store

Postgres keeps repositories, commits and one row per run. Commits are keyed by SHA, so re-crawling the same history adds nothing twice. Every figure on the home page is a COUNT over those rows.

03

Serve

A read-only database role answers four GET routes: repository index, one repository, commit feed, activity histogram. They sit behind nginx, which checks the key, caches responses for 60 seconds and rate-limits the edge. Readers cannot reach the write path.

04

Render

This page is server-rendered by TanStack Start inside a Cloudflare Worker. The Worker holds the read key and calls the API server-to-server, so the key never reaches the browser bundle.

03 Limits

What it will not claim

  • Commit counts come from the GitHub API for each default branch — merges and bot commits are included. They are not "authored contributions".
  • Public repositories only. Private work is not counted, summarised or implied.
  • The collector runs hourly, so this data can legitimately be up to an hour old. The stamp on the home page says when it last ran.
  • There are no testimonials, client logos or benchmarks on this site, because none exist.