Skip to content
View DuarteSantos8's full-sized avatar
🎯
Focusing
🎯
Focusing

Sponsors

@bully911210
@AlexanderBabel

Highlights

  • Pro

Block or report DuarteSantos8

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
DuarteSantos8/README.md
Terminal: whoami prints Duarte Santos, app dev apprentice at Sunrise, Switzerland

hey, I'm Duarte. I'm doing my apprenticeship as an application developer at Sunrise in Switzerland, and I maintain openGym, an open-source workout tracker with 16k+ stars that runs on your phone, your wrist and your own server.

I like shipping things people actually use, and I host almost everything I build myself. Mostly on one small server at home.

duarte-santos.ch  ·  openGym Discord  ·  Buy me a coffee


openGym in numbers: stars, contributors, APK downloads, Discord members, latest release, App Store

Every gym tracker I tried wanted a subscription, an account or my training data on someone else's server, usually all three. So I wrote a small page for exactly one user (me). Now it's an iPhone + Apple Watch app in the App Store (every country), an Android APK, a self-hostable web app with passkey login and sync, thousands of animated exercises with a muscle map, imports from Strong, Hevy, FitNotes and Apple Health, an MCP server and an optional AI coach. I run it like a real project: releases every couple of weeks, a CLA, a Discord full of people telling me what's broken, and I'm still the first user of every release. opengym.ch


Homelab rack with a status light for each public app, fed by Uptime Kuma

Other things I've built

AgentDeck: browser terminal deck for long-running Claude Code and shell agents attitude: spatial orientation test for pilot candidates

Homelab: Proxmox box behind Cloudflare Tunnel running about 20 apps Client work: websites for Swiss small businesses, for example litho.ch

What I mostly work with

Tech stack: React, Vite, Node.js, Capacitor, Docker, Linux, Nginx, Cloudflare. At school and work also Java/Spring Boot, Python, Vue and SQL.

My week, itemised

This week on GitHub as a gym receipt

Zurich area, Switzerland  ·  Applikationsentwickler EFZ + BM  ·  every graphic here is a hand-rolled SVG, refreshed daily by one Node script

Pinned Loading

  1. openGym openGym Public

    Open-source gym & body-weight tracker, now in the App Store (iPhone + Apple Watch) and as an Android APK. Plan routines, log workouts, see which muscles are trained, import from Strong/Hevy/FitNote…

    JavaScript 17.2k 2.2k

  2. agentdeck agentdeck Public

    Self-hosted browser terminal deck for long-running Claude Code and shell agents — every session is a tmux session, so it survives the closed tab, the dropped VPN and a service restart.

    JavaScript 11 4

  3. Hand-recognition Hand-recognition Public

    Python

  4. litho litho Public

    JavaScript 1

  5. portfolio portfolio Public

    JavaScript

  6. attitude attitude Public

    Spatial orientation test for pilot candidates — read the aircraft's attitude, steer with W A S D

    JavaScript 1