[{"data":1,"prerenderedAt":491},["ShallowReactive",2],{"project-39549194":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":85,"maker_in_thread":190,"shape":197,"grid":202,"attempts":453,"same_week":454,"maker_shows":34,"maker_hidden":483,"reader_version":484,"card":485},"39549194","Workout Tracker","self-hosted, single binary web application","title","Show HN: Workout Tracker – self-hosted, single binary web application","https:\u002F\u002Fgithub.com\u002Fjovandeginste\u002Fworkout-tracker","github.com","jovdg",1709214344,2024,263,97,278,3515,8,"legend","infrastructure","self-hosted fitness tracker","web_app",[24,25,26,27,28],"self-hosted","workout tracker","gpx","running","cycling","mixed",0.404,{"positive":32,"neutral":32,"mixed":33,"critical":34},10,0,2,22,{"idea":37,"privacy":39,"design":41,"performance":42,"execution":43},{"positive":38,"critical":33},5,{"positive":40,"critical":33},1,{"positive":34,"critical":40},{"positive":33,"critical":40},{"positive":33,"critical":33},[38,33,33,33,38,33,33,33,33,33,33,33,33,45,45,33,40,33,33,40,38,38,45,33,33,33,33,33,38,33,33,45,38,45,33,38,38,45,33,33],3,"I tried some web tools to track my workouts (specifically, running); some (like FitTrackee) came close, but I always found annoyances. So I decided to build my own. Specifically geared towards distance-based workouts, such as walking, running or cycling.",{"problem":48,"audience":54,"pricing":62,"motivation":63,"time_to_build":62,"stack":67,"openness":82,"stage":83,"team_size":84},{"value":49,"source":50,"evidence":51},"Existing web tools for tracking distance-based workouts have annoyances","maker",[52],{"id":53},"post",{"value":55,"source":56,"evidence":57},"Runners, walkers and cyclists who want to self-host their workout data","inferred",[58,59],{"id":53},{"id":60,"by":11,"text":61},"39555378","I can access it from any of my devices (laptops, desktop, phone), and my family can use it too.",null,{"value":64,"source":50,"evidence":65},"Dissatisfied with annoyances in existing web workout tools such as FitTrackee",[66],{"id":53},[68,76],{"value":69,"source":70,"evidence":71},"Go","commenter",[72],{"id":73,"by":74,"text":75},"39552645","abusaidm","This is a great looking project. The combo of single binary Go-lang and the ability to package assets like css, js and html makes this a killed multi platform distributable one…",{"value":77,"source":50,"evidence":78},"HTMX",[79],{"id":80,"by":11,"text":81},"39553410","I did some evaluation of HTMX a few weeks ago; while I understand the appeal, it does not yet ... vibe with me. Also, the use for HTMX is still very limited in this project. I…","open_source","launched","unknown",{"praise":86,"objections":110,"requests":129,"questions":148,"alternatives":162},[87,98,102],{"value":88,"source":70,"evidence":89},"Clean UI and focused design",[90,94],{"id":91,"by":92,"text":93},"39552395","vimeh","This is great! Am a fan of this kind of focused, self hosted application. Clean UI, too. Interested to hear your thoughts on HTMX when you get around to eval-ing it",{"id":95,"by":96,"text":97},"39552267","abound","This looks truly excellent, nice work! I've been using RideWithGPS, which is a great tool, but doesn't scratch my \"self-host everything, own my own data\" itch, so I'll definitely…",{"value":99,"source":70,"evidence":100},"Single binary Go app is easy to distribute and run",[101],{"id":73,"by":74,"text":75},{"value":103,"source":70,"evidence":104},"Self-hosting and owning data appeals to commenters",[105,106],{"id":95,"by":96,"text":97},{"id":107,"by":108,"text":109},"39554493","wly_cdgr","Heck yeah, this is awesome. Any chance of some kind of social features? I want to control my data, but I also do want to be able to share my fitness stats & journey with a…",[111,122],{"value":112,"source":70,"evidence":113},"Web apps need always-on hosting and fail during power or network outages",[114,118],{"id":115,"by":116,"text":117},"39557119","VyseofArcadia","I still can't use it if my power or internet are out though, even if the server still has both. (Rephrased to be less mean.)",{"id":119,"by":120,"text":121},"39555714","xnx","Web app = Always on. No interruption from power outages or wifi problems. Higher bandwidth and more anonymous (if it's going to make requests). Virtual android device in the…",{"value":123,"source":70,"evidence":124},"Does not track indoor activities like weight lifting",[125],{"id":126,"by":127,"text":128},"39554414","Osiris","By \"Workout\" do mean only exercise that can be tracked via GPS (walking, running, cycling)? It doesn't seem to track any indoor activities like weight lifting.",[130,137,144],{"value":131,"source":70,"evidence":132},"Support for .fit files",[133],{"id":134,"by":135,"text":136},"39553911","nose-wuzzy-pad","Looks great! Any chance you plan for it to work with .fit files? Thanks for making this!",{"value":138,"source":70,"evidence":139},"Import from Strava",[140],{"id":141,"by":142,"text":143},"39552940","mattegan","Sweet! Would love to host this myself and get rid of my Strava subscription. I wrote a Python script that iterates through all of my activities there and downloads the `.gpx` for…",{"value":145,"source":70,"evidence":146},"Social or sharing features",[147],{"id":107,"by":108,"text":109},[149,155],{"value":150,"source":70,"evidence":151},"Why build a web app instead of a native mobile or desktop app",[152],{"id":153,"by":116,"text":154},"39555287","I think a good question to ask is, what is gained here by being a web app? Couldn't this just be an Android or iPhone (or even desktop!) app?",{"value":156,"source":70,"evidence":157},"How is distance and activity type tracked",[158],{"id":159,"by":160,"text":161},"39552127","shantnutiwari","nice. How do you track teh distance (walked or running?)",[163,172,176,183],{"value":164,"source":70,"evidence":165},"FitoTrack",[166,169],{"id":167,"by":11,"text":168},"39554631","Yes, GPX based workouts. Did you look at FitoTrack?",{"id":170,"by":11,"text":171},"39554682","Check out FitoTrack",{"value":173,"source":50,"evidence":174},"FitTrackee",[175],{"id":53},{"value":177,"source":70,"evidence":178},"Intervals.icu, Strava, Veloviewer",[179],{"id":180,"by":181,"text":182},"39555151","eitally","I came into the github not expecting to like this, but you've done a great job so far! I currently use a combination of Garmin Connect (track on watch & head unit), Intervals.icu…",{"value":184,"source":70,"evidence":185},"Gymstro and FitNotes for lifting",[186],{"id":187,"by":188,"text":189},"39554678","dominick-cc","For lifting, check out Gymstro. Free and very good. I recently switched over from FitNotes (also free and good, but quirky).",{"comments":32,"answered":18,"key":191},[192,195,196],{"id":193,"text":194},"39553363","Would you mind cleaning up your script and open-sourcing it? It could be a sort of external component to many such projects...",{"id":60,"text":61},{"id":167,"text":168},{"commenters":198,"max_depth":199,"maker_replies":32,"first_comment_mins":200,"lifespan_hours":201},65,7,203,42,[203,205,209,212,216,219,222,225,228,230,233,237,238,241,242,244,247,250,253,255,257,260,263,265,268,271,274,277,279,282,285,288,290,292,293,296,298,300,303,305,307,310,312,314,316,318,320,323,326,329,332,335,336,339,342,345,348,349,352,355,357,359,362,365,368,370,373,375,376,377,379,382,384,387,389,392,395,396,399,401,403,405,408,411,414,419,421,423,426,431,433,435,437,441,444,447,450],[180,33,38,204,181,33],"project\u002Fpositive\u002Fidea",[206,33,33,207,208,33],"39557445","other\u002Fneutral\u002Fnone","pcchristie",[210,33,33,207,211,33],"39558551","mgl",[213,33,33,214,215,33],"39558616","commenter\u002Fneutral\u002Fnone","Solvency",[217,33,33,214,218,33],"39559041","idiotsecant",[220,33,33,207,221,33],"39559700","LandR",[223,33,33,207,224,33],"39559934","tpm",[226,33,33,207,227,33],"39562036","noitpmeder",[229,33,33,207,224,33],"39562567",[231,33,33,207,232,33],"39564600","ddek",[234,33,38,235,236,33],"39570648","project\u002Fpositive\u002Fprivacy","Abishek_Muthian",[141,40,38,204,142,33],[239,40,33,214,240,33],"39553176","doakes",[193,40,33,214,11,40],[243,34,33,207,120,33],"39552479",[245,34,33,207,246,33],"39552625","ramon156",[248,34,33,207,249,33],"39553116","panzagl",[251,34,33,207,252,33],"39557619","ClumsyPilot",[254,34,33,207,120,33],"39553250",[256,34,33,207,208,33],"39557419",[258,34,33,207,259,33],"39554910","jollyllama",[261,34,33,207,262,33],"39555221","KomoD",[264,34,33,207,262,33],"39555250",[266,34,33,207,267,33],"39557358","CardenB",[269,34,33,207,270,33],"39552660","giobox",[272,34,33,207,273,33],"39557221","easyas124",[275,34,33,207,276,33],"39557446","alex_lav",[278,34,33,207,252,33],"39557608",[280,34,33,207,281,33],"39557656","QuinnyPig",[283,34,33,207,284,33],"39558049","monksy",[286,34,33,207,287,33],"39558405","bogwog",[153,34,45,289,116,33],"project\u002Fneutral\u002Fdesign",[60,34,33,291,11,40],"project\u002Fpositive\u002Fdesign",[119,34,45,289,120,33],[294,34,33,214,295,33],"39556238","filleduchaos",[297,34,33,214,273,33],"39557239",[299,34,33,214,295,33],"39557561",[301,34,33,214,302,33],"39563467","freedomben",[304,34,33,207,120,33],"39557648",[115,34,40,306,116,33],"project\u002Fcritical\u002Fdesign",[308,34,33,214,309,33],"39557155","weakfish",[311,34,33,214,116,33],"39557177",[313,34,33,207,120,33],"39557640",[315,34,33,214,273,33],"39557210",[317,34,33,207,120,33],"39557622",[319,34,33,214,302,33],"39563403",[321,34,33,214,322,33],"39558834","kristiandupont",[324,34,40,325,116,33],"39561981","project\u002Fcritical\u002Fperformance",[327,34,38,204,328,33],"39555905","mnutt",[330,34,33,207,331,33],"39556575","imiric",[333,34,33,207,334,33],"39561058","nucleative",[73,45,38,291,74,33],[337,45,45,289,338,33],"39554514","turtlebits",[340,45,33,207,341,33],"39555163","ggpsv",[126,343,45,344,127,33],4,"project\u002Fneutral\u002Fidea",[346,343,33,207,347,33],"39554604","wredue",[187,343,33,207,188,33],[350,343,33,207,351,33],"39555109","switchers",[353,343,33,207,354,33],"39555497","InitialLastName",[356,343,33,207,347,33],"39556020",[358,343,33,207,354,33],"39557128",[360,343,33,207,361,33],"39557458","ralfhn",[363,343,33,207,364,33],"39557964","gejose",[366,343,33,207,367,33],"39559332","anty",[167,343,33,369,11,40],"maker\u002Fneutral\u002Fnone",[371,343,33,207,372,33],"39557604","e12e",[374,343,33,369,11,40],"39559530",[91,38,38,291,92,33],[80,38,33,369,11,40],[95,378,38,204,96,33],6,[380,378,33,214,381,33],"39554989","juiiiced",[383,378,33,207,96,33],"39556756",[385,378,33,207,386,33],"39558928","reidjs",[388,378,33,207,96,33],"39562573",[390,199,33,207,391,33],"39552494","agilob",[393,18,45,394,302,33],"39554639","project\u002Fneutral\u002Fnone",[170,18,33,207,11,40],[397,18,33,207,398,33],"39564261","nexle",[107,400,38,204,108,33],9,[402,400,33,369,11,40],"39554649",[404,400,45,344,108,33],"39570691",[406,32,45,394,407,33],"39554931","Otek",[409,32,33,207,410,33],"39555577","klaushardt",[412,32,33,207,413,33],"39556445","mikestew",[415,416,38,417,418,33],"39558059",11,"maker\u002Fpositive\u002Fnone","matthewhartmans",[134,420,45,394,135,33],12,[422,420,33,394,11,40],"39553970",[424,420,33,425,11,40],"39556281","project\u002Fneutral\u002Fexecution",[427,428,38,429,430,33],"39552791",13,"project\u002Fpositive\u002Fnone","tamimio",[159,432,45,425,160,33],14,[434,432,45,425,96,33],"39552349",[436,432,33,425,11,40],"39553283",[438,439,33,207,440,33],"39553385",15,"lapetitejort",[442,439,33,207,443,33],"39553760","salad-tycoon",[445,439,33,214,446,33],"39554502","drBonkers",[448,439,33,207,449,33],"39554565","zhivota",[451,439,33,207,452,33],"39559746","mangateparu",[],[455,460,464,469,474,478],{"id":456,"name":457,"points":458,"category":459},"39597030","Puter",1274,"dev_tools",{"id":461,"name":462,"points":463,"category":459},"39620540","dockerc",374,{"id":465,"name":466,"points":467,"category":468},"39557188","Struct",298,"productivity",{"id":470,"name":471,"points":472,"category":473},"39591529","Astro App",291,"learning_science",{"id":475,"name":476,"points":477,"category":468},"39551064","Row Zero",274,{"id":479,"name":480,"points":481,"category":482},"39619053","Fructose",218,"ai",false,"v2",{"id":486,"name":5,"line":6,"ai":483,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":487,"top":18,"kw":488,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":489,"url":9,"mix":490,"praise":88,"objection":112,"sub":21},39549194,0.4,[24,25,26,27,28],"5000500000000330100155300000500353055300",[32,32,33,34],1793991085686]