AboutBlogLaunch app

The making of Repography

Published on Feb 1, 2022 by Arpad Ray

Repography is a micro-startup one developer and one designer working on this alongside all our normal work, with no funding to support other roles. Therefore the tech stack is oriented towards low maintenance and easy scaling.

We make heavy use of the Google Cloud Platform with the addition of a couple of great services:

  • Cloudflare which handles DNS and CDN duties.
  • Backblaze B2 for larger object storage, taking advantage of free traffic between B2 and Cloudflare.

There are two services running on App Engine:

  • A Next.js app which is the visible frontend of repography.com
  • A Go app which serves all the backend API calls interaction with GitHub, orders etc.

If you choose the command line option rather than installing the GitHub app then you'll be using a completely separate program written in Rust, to analyse your local commit history and upload to our API. I chose Rust in this case for performance and the ease of building static binaries for multiple platforms (thanks GitHub actions!).

The service which actually renders the dashboards and posters is a Cloud Function written in Javascript. The designs are implemented as Javascript functions which receive the repo analysis and output an SVG. This has made it simple to develop the designs, since the same code can be run in a local test rig and then deployed to production.

Working on designs in the local test rig

To turn an SVG into a PNG ready for download or print, we have a final service running on Cloud Run. This allows us to go beyond the limitations of Cloud Functions (e.g. custom Docker container, more system resources) but on a similar cost basis.

What is Repography?

Repography is a web app which creates data visualizations for your Git repos. You can use our command line script to try out Repography on any Git repo, or install our GitHub app.

Our dashboards are kept up-to-date automatically and are designed to be embedded in your README.md.
Our dashboards are kept up-to-date automatically and are designed to be embedded in your README.md.
[object Object]
Our posters are available for purchase both as downloads (€5) and as framed prints (€60).

One click, no signup required

BETA