← Back to Resume

Web apps

Progressive web apps (PWAs) you can install and open like a native app — full screen, optional offline use, and updates when you are online.

Add to your home screen (PWA)

These apps ship a web manifest and can run in standalone mode after installation — full screen, no browser chrome, and they open from your launcher like any other app.

iPhone & iPad (Safari)

  1. On this site, open Gym Flow at /gym-flow/ in Safari (install prompts from Chrome or other browsers on iOS are limited).
  2. Tap the Share button (square with arrow).
  3. Scroll and tap Add to Home Screen, then confirm.

After that, launch it from your home screen icon. Updates apply the next time you open the app with a network connection (service worker permitting).

Android (Chrome)

  1. Open the app in Chrome.
  2. Tap the menu (⋮) and choose Install app or Add to Home screen, or use the install banner when it appears.
  3. Confirm — the icon appears in your app drawer / home screen.

Desktop (Chrome, Edge, Brave)

  1. Open the app in the browser.
  2. Look for the install icon in the address bar, or use the menu → Install ….
  3. Launch from your applications list or taskbar shortcut.

Exact wording varies slightly by browser version; "Install" or "Create shortcut" (with window option) achieves the same goal.

Apps

Gym Flow

Offline-first gym planner & progress tracker

ReactVitePWATypeScript

Plan workouts, browse exercises, and track progress in the browser. Works as a standalone app once installed — handy at the gym without hunting for the tab.

Discover

Interactive travel & place discovery map

Next.jsLeafletWikipedia APITypeScript

Explore any city on a dark interactive map and instantly surface interesting nearby places — museums, historic sites, parks, and more — powered by Wikipedia. Read summaries and full articles without leaving the page.

Stock Screener

S&P 500 fundamental & technical screener

Next.jsFinnhubTypeScript

Screen S&P 500 stocks with Finnhub fundamentals and momentum filters. Slide back up to 1 year for return-based backtests; live data refreshes weekly.