{"id":11185,"date":"2026-01-09T23:55:04","date_gmt":"2026-01-09T23:55:04","guid":{"rendered":"https:\/\/www.mrericsir.com\/blog\/?p=11185"},"modified":"2026-01-09T23:55:06","modified_gmt":"2026-01-09T23:55:06","slug":"munimet-ro","status":"publish","type":"post","link":"https:\/\/www.mrericsir.com\/blog\/technology\/munimet-ro\/","title":{"rendered":"MuniMet.ro"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/www.mrericsir.com\/blog\/wp-content\/uploads\/munimetro-jpeg.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"195\" height=\"300\" src=\"https:\/\/www.mrericsir.com\/blog\/wp-content\/uploads\/munimetro-jpeg-195x300.jpg\" alt=\"\" class=\"wp-image-11187\" srcset=\"https:\/\/www.mrericsir.com\/blog\/wp-content\/uploads\/munimetro-jpeg-195x300.jpg 195w, https:\/\/www.mrericsir.com\/blog\/wp-content\/uploads\/munimetro-jpeg.jpg 600w\" sizes=\"auto, (max-width: 195px) 100vw, 195px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Over the holidays I took my first real crack at &#8220;vibe coding&#8221; a project I&#8217;d wanted to build for a while: a webapp that lets you know if <a href=\"http:\/\/SFMTA.com\/MuniMetro\" title=\"\">San Francisco&#8217;s Muni Metro<\/a> subway is working or not.<br><br>Using Claude Code, I had it build an image classifier and a script that scrapes the <a href=\"http:\/\/sfmunicentral.com\/\" title=\"\">live snapshot image<\/a> that Muni uploads to the web. After labeling hundreds of images I trained a model to predict the overall status based on those snapshots. Next I had Claude write some scripts to docker-ize a background task and an API server, as well as a script to deploy both to Google Cloud Run.<br><br>What I <em>didn&#8217;t<\/em> use AI for was creating the cute little graphics; those are the work of <a href=\"https:\/\/wendy-wright.com\/\" title=\"\">a local illustrator<\/a> I hired for the project. Some things still need a human touch.<br><br>Try it out yourself at <a href=\"https:\/\/munimet.ro\/\" title=\"munimet.ro\">munimet.ro<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the holidays I took my first real crack at &#8220;vibe coding&#8221; a project I&#8217;d wanted to build for a while: a webapp that lets [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","slim_seo":{"title":"MuniMet.ro - MrEricSir.com","description":"Over the holidays I took my first real crack at \"vibe coding\" a project I'd wanted to build for a while: a webapp that lets you know if San Francisco's Muni Met"},"autoblue_enabled":true,"autoblue_custom_message":"","autoblue_shares":[],"autoblue_post_url":"","autoblue_publish_document":false,"footnotes":""},"categories":[3],"tags":[1520,1522,1521,91,1459,414,23,877,181,674,272],"class_list":["post-11185","post","type-post","status-publish","format-standard","hentry","category-technology","tag-ai","tag-docker","tag-ml","tag-muni","tag-muni-metro","tag-public-transportation","tag-san-francisco","tag-subway","tag-tech","tag-technology-2","tag-web"],"_links":{"self":[{"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/posts\/11185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/comments?post=11185"}],"version-history":[{"count":1,"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/posts\/11185\/revisions"}],"predecessor-version":[{"id":11188,"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/posts\/11185\/revisions\/11188"}],"wp:attachment":[{"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/media?parent=11185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/categories?post=11185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mrericsir.com\/blog\/wp-json\/wp\/v2\/tags?post=11185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}