[{"data":1,"prerenderedAt":376},["ShallowReactive",2],{"project-39099980":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":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":42,"post_text":44,"what":45,"said":69,"maker_in_thread":199,"shape":210,"grid":215,"attempts":337,"same_week":338,"maker_shows":38,"maker_hidden":368,"reader_version":369,"card":370},"39099980","Kener","A self hosted clean status page and batteries","title","Show HN: Built a self hosted clean status page and batteries","https:\u002F\u002Fgithub.com\u002Frajnandan1\u002Fkener","github.com","purple_wow",1705988167,2024,187,51,431,3515,13,"notable","infrastructure","status page","web_app",[21,24,25,26],"self hosted","uptime monitoring","sveltekit","curious",-0.024,{"positive":30,"neutral":31,"mixed":32,"critical":33},3,11,1,4,19,{"idea":36,"design":39,"docs":40,"execution":41},{"positive":37,"critical":38},0,2,{"positive":32,"critical":32},{"positive":37,"critical":32},{"positive":38,"critical":37},[32,37,37,37,37,37,32,37,37,37,37,37,32,30,30,37,30,37,30,37,37,37,37,30,30,30,37,30,37,30,30,37,37,43,43,37,43,30,32,37],5,"Status pages have been the way they have seen the mid 2010s. There are few new ones but they are paid. So I decided to build this using svelte + sveltekit. It has all the necessary features. Few are yet to be built. Do check it out",{"problem":46,"audience":52,"pricing":52,"motivation":53,"time_to_build":52,"stack":57,"openness":66,"stage":67,"team_size":68},{"value":47,"source":48,"evidence":49},"Status pages for communicating service uptime; paid options exist and maker wanted a self-hosted free one","maker",[50],{"id":51},"post",null,{"value":54,"source":48,"evidence":55},"Few new status pages exist and the ones that do are paid",[56],{"id":51},[58,62],{"value":59,"source":48,"evidence":60},"Svelte",[61],{"id":51},{"value":63,"source":48,"evidence":64},"SvelteKit",[65],{"id":51},"open_source","beta","unknown",{"praise":70,"objections":94,"requests":139,"questions":160,"alternatives":169},[71,87],{"value":72,"source":73,"evidence":74},"Clean, slick design","commenter",[75,79,83],{"id":76,"by":77,"text":78},"39105564","mikecoles","I checked out the top level pages. Looks slick. Congrats!",{"id":80,"by":81,"text":82},"39101487","cybrox","This seems very nice and clean, I like it! A tangent: This style of status page and the goal that most of these projects (like this) try to achieve is always displaying the…",{"id":84,"by":85,"text":86},"39100260","rudasn","Looks like this works without javascript enabled. Thanks! :)",{"value":88,"source":73,"evidence":89},"Nice to see Svelte used",[90],{"id":91,"by":92,"text":93},"39105717","otteromkram","Nice! Love seeing Svelte getting some attention. Such a great and underutilized framework in a world run by React\u002FVue\u002FAngular.",[95,106,117,128],{"value":96,"source":73,"evidence":97},"Status pages should not be automated from metrics or include extra features like batteries",[98,102],{"id":99,"by":100,"text":101},"39105540","redleader55","In my view, a status page should have only one function: communicate to your users if your service is up, how long has it been down, and which parts are down and maybe list work…",{"id":103,"by":104,"text":105},"39106089","bilekas","This is actually a fair point. The batteries in this case are nice to haves, but to be fair I personally would not be using this as infrastructure frontline status reporting..…",{"value":107,"source":73,"evidence":108},"Daily bar shows full red for one minute of downtime",[109,113],{"id":110,"by":111,"text":112},"39101495","wscourge","There's a whole red bar when the website was down for 1 minute on a given day. I don't like it, and I wouldn't want to show that to my users. I'd suggest you make the bar 1\u002F3600…",{"id":114,"by":115,"text":116},"39102196","8organicbits","I think it's worth deciding what you want to communicate. If it's \"we have good uptime, but we may lie\", then it's a green bar always. If it's \"we're honest about our downtime\"…",{"value":118,"source":73,"evidence":119},"Hosting the status page on the same infrastructure as the service defeats its purpose",[120,124],{"id":121,"by":122,"text":123},"39101760","ahmedfromtunis","I might be mistaken, but I always thought that status pages are supposed to be hosted by a third party. Am I supposed to have this run on a separate (presumably) dedicated…",{"id":125,"by":126,"text":127},"39105619","bearjaws","Just make sure to host it on some other hosting provider. If you're on AWS, use GCP or Azure, etc.. A previous DevOps team I worked with brilliantly centralized everything into…",{"value":129,"source":73,"evidence":130},"Name 'and batteries' is unclear",[131,135],{"id":132,"by":133,"text":134},"39104089","browningstreet","What’s with “and batteries”? Doesn’t even get mentioned in the features list. Makes this feel AI generated and doesn’t clarify anything.",{"id":136,"by":137,"text":138},"39101910","75w","What does ‘batteries’ mean in this instance?",[140,149,156],{"value":141,"source":73,"evidence":142},"Use a gradient or step colours for downtime bars",[143,144,145],{"id":110,"by":111,"text":112},{"id":114,"by":115,"text":116},{"id":146,"by":147,"text":148},"39103027","Tempest1981","Dynamic? A 1 minute outage in the last 60 min seems more red-color-worthy than a 1 minute outage a few days ago.",{"value":150,"source":73,"evidence":151},"Explain differences from Upptime in the README",[152],{"id":153,"by":154,"text":155},"39102901","ChrisMLane","This looks great! One thing I would like to see in the README is how this project differs from other popular similar projects such as \"Upptime\" which is already mentioned in the…",{"value":157,"source":73,"evidence":158},"Make the page work without JavaScript for day data views",[159],{"id":84,"by":85,"text":86},[161,165],{"value":162,"source":73,"evidence":163},"Should the status page be hosted separately from the service",[164],{"id":121,"by":122,"text":123},{"value":166,"source":73,"evidence":167},"What does 'batteries' mean in the title",[168],{"id":136,"by":137,"text":138},[170,178,185,192],{"value":171,"source":73,"evidence":172},"Upptime",[173,177],{"id":174,"by":175,"text":176},"39102419","rustdesk","I love https:\u002F\u002Fgithub.com\u002Fupptime\u002Fupptime, you run your uptime page on github.",{"id":153,"by":154,"text":155},{"value":179,"source":73,"evidence":180},"Uptime Kuma",[181],{"id":182,"by":183,"text":184},"39101664","Daviey","For personal monitoring, I've been using Uptime Kuma (and been happy with it). Has anyone looked how these two compare?",{"value":186,"source":73,"evidence":187},"OpenStatus",[188],{"id":189,"by":190,"text":191},"39109073","darrenBaldwin03","This is cool! OpenStatus (https:\u002F\u002Fwww.openstatus.dev\u002F) is another project thats aiming for something similar",{"value":193,"source":73,"evidence":194},"Steam status page steamstat.us",[195],{"id":196,"by":197,"text":198},"39106358","sibit","Completely agree. I think the unofficial Steam Status[0] by xPaw[1] is a great example. I never go to the site unless I'm having issues. Between the service stats and the page…",{"comments":30,"answered":32,"key":200},[201,204,207],{"id":202,"text":203},"39101852","Interesting. May be I can add a gradient from red -> yellow -> green with effected minute count, normalized to gradient threshold percentage. Let me try doing that",{"id":205,"text":206},"39101822","In case of status page you would want to host it in a different server \u002F zone.",{"id":208,"text":209},"39101493","Well the initial load will work, but switching to Day Data will not work :(",{"commenters":211,"max_depth":212,"maker_replies":30,"first_comment_mins":213,"lifespan_hours":214},43,6,61,29,[216,218,222,225,228,231,232,235,236,238,241,244,247,250,252,254,256,257,260,262,265,267,270,273,276,279,282,284,289,292,294,296,298,301,305,306,309,311,314,317,319,321,324,328,331,334],[99,37,32,217,100,37],"project\u002Fcritical\u002Fidea",[219,37,37,220,221,37],"39105821","commenter\u002Fneutral\u002Fnone","azornathogron",[223,37,37,220,224,37],"39105846","TheAdamist",[226,37,37,220,227,37],"39106019","hypeatei",[229,37,37,220,230,37],"39106145","matrss",[196,37,37,220,197,37],[233,37,37,220,234,37],"39105996","willsmith72",[103,37,32,217,104,37],[174,32,37,237,175,37],"other\u002Fneutral\u002Fnone",[239,32,37,237,240,37],"39102621","xtracto",[242,32,37,237,243,37],"39102780","tibozaurus",[245,32,37,237,246,37],"39103824","djbusby",[248,32,37,237,249,37],"39103270","madeofpalk",[110,38,32,251,111,37],"project\u002Fcritical\u002Fdesign",[202,38,37,253,11,32],"maker\u002Fneutral\u002Fdesign",[114,38,30,255,115,37],"project\u002Fneutral\u002Fdesign",[146,38,30,255,147,37],[258,30,37,237,259,37],"39103678","corobo",[80,33,30,261,81,37],"project\u002Fmixed\u002Fidea",[263,33,37,220,264,37],"39101740","yellowsir",[136,43,30,266,137,37],"project\u002Fneutral\u002Fnone",[268,43,37,220,269,37],"39101940","milliams",[271,43,37,220,272,37],"39102544","patja",[274,43,37,220,275,37],"39104074","pricechild",[277,43,37,220,278,37],"39108311","myself248",[280,43,37,220,281,37],"39115927","karolist",[153,212,30,283,154,37],"project\u002Fneutral\u002Fdocs",[285,286,30,287,288,37],"39104972",7,"project\u002Fneutral\u002Fexecution","lnxg33k1",[121,290,30,291,122,37],8,"project\u002Fneutral\u002Fidea",[293,290,37,220,183,37],"39101810",[205,290,37,295,11,32],"maker\u002Fneutral\u002Fnone",[182,297,30,266,183,37],9,[299,297,37,237,300,37],"39105214","ehaughee",[302,303,30,291,304,37],"39105249",10,"renewiltord",[125,31,30,266,126,37],[307,31,37,220,308,37],"39106739","dirigeant",[189,310,37,237,190,37],12,[312,18,30,266,313,37],"39105646","andy_ppp",[91,315,43,316,92,37],14,"project\u002Fpositive\u002Fexecution",[84,318,43,316,85,37],15,[208,318,37,320,11,32],"maker\u002Fneutral\u002Fexecution",[76,322,43,323,77,37],16,"project\u002Fpositive\u002Fdesign",[325,326,30,283,327,37],"39104223",17,"MaxGabriel",[132,329,32,330,133,37],18,"project\u002Fcritical\u002Fdocs",[332,329,37,220,333,37],"39104305","js2",[335,329,37,237,336,37],"39105004","foobarbecue",[],[339,344,349,354,359,364],{"id":340,"name":341,"points":342,"category":343},"39120647","funding simulator",654,"finance_crypto",{"id":345,"name":346,"points":347,"category":348},"39113879","teachyourselfmath",384,"learning_science",{"id":350,"name":351,"points":352,"category":353},"39113972","nlm-ingestor",293,"data",{"id":355,"name":356,"points":357,"category":358},"39067496","Coffeehouse",229,"consumer_social",{"id":360,"name":361,"points":362,"category":363},"39105502","Retriever",193,"security_privacy",{"id":365,"name":366,"points":367,"category":348},"39072079","Checkmate Champ",192,false,"v2",{"id":371,"name":5,"line":6,"ai":368,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":372,"top":18,"kw":373,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":374,"url":9,"mix":375,"praise":72,"objection":96,"sub":21},39099980,-0.02,[21,24,25,26],"1000001000001330303000033303033005505310",[30,31,32,33],1793991083234]