[{"data":1,"prerenderedAt":841},["ShallowReactive",2],{"project-42118039":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":48,"post_text":50,"what":51,"said":96,"maker_in_thread":276,"shape":283,"grid":287,"attempts":802,"same_week":803,"maker_shows":47,"maker_hidden":833,"reader_version":834,"card":835},"42118039","Stretch My Time Off","An Algorithm to Optimize Your Vacation Days","title","Show HN: Stretch My Time Off – An Algorithm to Optimize Your Vacation Days","https:\u002F\u002Fstretchmytimeoff.com","stretchmytimeoff.com","zachd",1731435109,2024,358,174,139,3515,4,"legend","productivity","vacation planning","web_app",[24,25,26,27],"vacation planner","pto optimizer","public holidays","time off calendar","mixed",-0.017,{"positive":31,"neutral":32,"mixed":33,"critical":34},20,46,9,25,100,{"idea":37,"execution":39,"design":42,"docs":45,"privacy":46},{"positive":38,"critical":33},10,{"positive":40,"critical":41},5,12,{"positive":43,"critical":44},2,0,{"positive":44,"critical":44},{"positive":44,"critical":47},1,[44,47,44,44,44,49,40,49,44,44,47,43,18,43,18,49,49,43,43,44,47,49,47,40,49,43,43,49,18,49,49,49,18,18,47,18,40,49,47,43],3,"Hey HN! I built StretchMyTimeOff as a quick experiment using Cursor (Anysphere's AI code editor) and GPT-4o to see how far AI could go in building a simple, functional site.\n\nWhat it does: The site helps you get the most out of your vacation by suggesting optimal days to take off around national holidays, maximizing long breaks with minimal vacation days, anywhere in the world and for any calendar year.\n\nIt's an idea I've had for a while, and building the algorithm with GPT was a fun challenge. Any feedback or ideas I'm all ears :)",{"problem":52,"audience":58,"pricing":67,"motivation":68,"time_to_build":67,"stack":72,"openness":93,"stage":94,"team_size":95},{"value":53,"source":54,"evidence":55},"Getting the most consecutive days off from limited vacation days around public holidays","maker",[56],{"id":57},"post",{"value":59,"source":60,"evidence":61},"Employees planning vacation days around public holidays","inferred",[62,63],{"id":57},{"id":64,"by":65,"text":66},"42121886","lumb63","Ha, this reminds me of a very similar practice I used to engage in with a few buddies when we started work. It was always fun to try to figure out how to optimize the PTO to get…",null,{"value":69,"source":54,"evidence":70},"Experiment to see how far AI could go in building a simple, functional site; idea had been kept for a while",[71],{"id":57},[73,77,81,87],{"value":74,"source":54,"evidence":75},"Cursor",[76],{"id":57},{"value":78,"source":54,"evidence":79},"GPT-4o",[80],{"id":57},{"value":82,"source":54,"evidence":83},"npm package date-holidays",[84],{"id":85,"by":11,"text":86},"42121532","Ah shame, I totally depend on the well maintained npm package date-holidays. But I guess it could use a PR!…",{"value":88,"source":54,"evidence":89},"ISO-3166-1 npm package for country list",[90],{"id":91,"by":11,"text":92},"42130973","Hi, thanks for your feedback! The list of countries comes from a popular ISO-3166-1 npm package. I can see there was already much discussion about this topic over on their repo…","unknown","launched","solo",{"praise":97,"objections":132,"requests":188,"questions":248,"alternatives":260},[98,114,125],{"value":99,"source":100,"evidence":101},"Useful for planning vacations around holidays and kids' school breaks","commenter",[102,106,110],{"id":103,"by":104,"text":105},"42118960","shmoogy","This is a great idea for something I typically do manually to plan around maximizing vacation time around when my kids have off. Would recommend being able to adjust the public…",{"id":107,"by":108,"text":109},"42123294","8mobile","Very useful app, especially for kids holidays. I live in Bavaria, Germany and the holidays are different from other regions. I really like the app and hope you will continue to…",{"id":111,"by":112,"text":113},"42126469","zerkten","Would be interesting if you can also factor in a school schedule or Jewish holidays as well. There are probably other layers you could add because school schedules in the US and…",{"value":115,"source":100,"evidence":116},"Holiday data is largely correct for several countries",[117,121],{"id":118,"by":119,"text":120},"42122424","slyall","Very nice. All the holidays look correct. Covers most of the tricks people here (New Zealand) use to stretch out their Holiday lengths.",{"id":122,"by":123,"text":124},"42124510","bittermandel","I love this! Every year in Sweden around christmas, almost all popular magazines publish articles for how to optimally book your vacation days. We have quite a few bank days…",{"value":126,"source":100,"evidence":127},"Impressive for being built with a code assistant",[128],{"id":129,"by":130,"text":131},"42126205","jorisnoo","Hey, that's an impressive site for being built using a code assistant. I was wondering where you got the list of countries from or whether you're using a library for the…",[133,152,167,177],{"value":134,"source":100,"evidence":135},"Stretch count overstates extra days off, counting weekends already adjacent to holidays",[136,140,144,148],{"id":137,"by":138,"text":139},"42123507","aziaziazi","Congrats ! However I feel the claim is lying to me and inconsistant: « In […], there are 11 public holidays in 2024. Let's stretch your time off from 25 days to 61 days » 61…",{"id":141,"by":142,"text":143},"42125876","shinryuu","Well done! Though it oversells it a bit. Check japan for instance you get 10 holidays a year, and it says you'll be able to stretch it to 51 days. Which is true to some extent.…",{"id":145,"by":146,"text":147},"42124302","amsterdorn","Nice tool! Some feedback: - The subtitle telling me I can \"stretch [my] time off from 20 days to 42 days\" is quite misleading. This tool doesn't magically give me more vacation…",{"id":149,"by":150,"text":151},"42121366","whaaaaat","Something is strange in the math for \"Let's stretch your time off from X days to Y days\" I am in the US, and it says I have 11 days off. If I say I get 0 days off, it says:…",{"value":153,"source":100,"evidence":154},"Missing holidays and wrong regional holiday data (e.g. Sweden, company-specific days)",[155,159,163],{"id":156,"by":157,"text":158},"42120569","occz","Cool project! Some regional feedback coming from Sweden - your source data set is not 100% in line with what most workers in Sweden will get. For example, 24 December, 31…",{"id":160,"by":161,"text":162},"42123890","spzzz","Really neat idea! However, half of the world has Monday as the first day of the week. A setting to change that would be nice :) Also there are some holidays missing for Sweden.…",{"id":164,"by":165,"text":166},"42121072","quickthrowman","Like others have mentioned, being able to toggle which days are holidays would make this useful. I get (8) holidays each year: New Year’s Day, Memorial Day, July 4th, Labor Day,…",{"value":168,"source":100,"evidence":169},"Gives only one result with no way to choose among equally good options",[170,174],{"id":171,"by":172,"text":173},"42121034","abeppu","This seems like the start of something handy, but isn't yet useful. As others have mentioned, which holidays a company offers will vary. But more than that, given a number of…",{"id":175,"by":11,"text":176},"42121552","Thanks for your feedback! Indeed the algorithm only gives one result, as it tries to fill all gaps from smallest to biggest in the best way possible to create clusters. Making it…",{"value":178,"source":100,"evidence":179},"Travel during public holidays is costly, so optimal days may be the wrong ones",[180,184],{"id":181,"by":182,"text":183},"42121828","jaza","I typically try to take annual leave and to travel exactly on the opposite dates to what this tool recommends. That's because I care more about avoiding the significant extra…",{"id":185,"by":186,"text":187},"42125560","onion2k","A much simpler way to do this is to move to a country or join a company where you get a lot of vacation days, and then you don't need to worry about it.",[189,205,217,226,241],{"value":190,"source":100,"evidence":191},"Customizable work week and holiday lists, including company-specific days",[192,196,200,201],{"id":193,"by":194,"text":195},"42124175","Micanthus","This is really cool! I might use this to help plan some of my 2025 vacations Some suggestions for useful features: - Ability to customize the work week. I only work Mon-Thurs,…",{"id":197,"by":198,"text":199},"42126814","bobmagoo","Fun tool! I'd love for the \"Edit List\" menu to allow me to add company holidays to factor those into the maximization",{"id":164,"by":165,"text":166},{"id":202,"by":203,"text":204},"42121564","ct0","Very cool! It would be helpful if you just made a list of holidays we could check off. Im going to use this!",{"value":206,"source":100,"evidence":207},"Pick a date range or count only remaining days in the year",[208,212,216],{"id":209,"by":210,"text":211},"42126640","linuxguy2","Would love to see a \"use X days off between now and the end of the year\" feature. Putting in the amount of PTO I've currently got gets shown for the whole year instead of just…",{"id":213,"by":214,"text":215},"42126739","wink","Nice idea, but I was a little surprised that now, in November, it would give me a default of 20 days for this year. Maybe a checkbox \"starting today\u002Ftomorrow\" would make it a lot…",{"id":193,"by":194,"text":195},{"value":218,"source":100,"evidence":219},"Consider school holidays and avoid peak travel periods",[220,221,225],{"id":111,"by":112,"text":113},{"id":222,"by":223,"text":224},"42127950","vander_elst","Nice idea, but it seems that for some countries the longest possible time off has a big overlap with school holidays, which makes sense. However travelling during school breaks…",{"id":107,"by":108,"text":109},{"value":227,"source":100,"evidence":228},"Show alternative options or weight months and block spacing",[229,233,237],{"id":230,"by":231,"text":232},"42125497","alkonaut","I'd like to add some more constraints, like \"I'd like to maximize my time off around christmas\", where you can see different alternatives e.g. using 3 days off, you get 7…",{"id":234,"by":235,"text":236},"42121731","enasterosophes","This is pretty cool. I've organically done something similar for many years (i.e. tried to optimize leave to coincide with public holidays to get those extra long weekends.) If…",{"id":238,"by":239,"text":240},"42121771","leonagano","Nice work! I once launched stretchyourannualleave[dot]com on PH https:\u002F\u002Fwww.producthunt.com\u002Fproducts\u002Fstretch-your-annual-leave#stretch-your-annual-leave and also here…",{"value":242,"source":100,"evidence":243},"Fix year start and carry-over leave balance",[244],{"id":245,"by":246,"text":247},"42120560","sksksk","Awesome idea, some suggestions (to fit my use case) My annual leave resets on April 1st, so being able to change the year would be handy. I worked compressed hours (I have every…",[249,256],{"value":250,"source":100,"evidence":251},"How the site was built and how much Cursor was used",[252],{"id":253,"by":254,"text":255},"42125749","hasbot","It's interesting all the comments are focused on the functionality and not on how it was built. Can you write some more on the experience? You say it was \"a fun challenge.\" Would…",{"value":257,"source":100,"evidence":258},"Where the country list comes from",[259],{"id":129,"by":130,"text":131},[261,265],{"value":262,"source":100,"evidence":263},"stretchyourannualleave",[264],{"id":238,"by":239,"text":240},{"value":266,"source":100,"evidence":267},"Manual planning in spreadsheets or mentally",[268,272],{"id":269,"by":270,"text":271},"42123031","cgarrigue","Interesting idea but I do not see the point: people are able to compute the same results mentally very easily. By the way, I would suggest adding an option: how many consecutive…",{"id":273,"by":274,"text":275},"42124901","jokethrowaway","Awesome! That reminds me of my paternity leave which I turned into basically working 3 days per week for a long time with some special considerations around holidays. There is…",{"comments":41,"answered":47,"key":277},[278,279,280],{"id":175,"text":176},{"id":91,"text":92},{"id":281,"text":282},"42121518","Thanks for the feedback! ChatGPT and I made the change to hide individual holidays for a country per year, click \"edit list\" :)",{"commenters":284,"max_depth":38,"maker_replies":41,"first_comment_mins":285,"lifespan_hours":286},138,96,55,[288,290,293,296,299,303,306,309,312,315,317,320,323,325,328,331,333,336,338,341,343,346,348,352,355,358,360,362,366,368,371,374,377,378,381,384,387,389,392,394,397,400,404,407,410,412,415,417,420,422,424,426,429,433,436,440,442,444,447,450,452,455,459,461,462,465,468,470,473,475,476,478,481,482,485,487,489,493,495,498,500,502,506,509,512,515,517,519,522,524,526,530,531,535,538,541,543,545,549,552,554,556,557,559,561,563,565,567,569,572,574,576,580,584,586,590,594,598,600,602,606,610,614,619,621,625,627,629,631,635,638,640,641,644,648,652,656,660,665,669,672,675,679,682,684,688,692,696,700,705,709,713,716,720,723,727,732,736,738,740,743,747,752,756,760,764,768,772,776,780,784,788,793,797],[64,44,44,289,65,44],"commenter\u002Fneutral\u002Fnone",[291,44,44,289,292,44],"42122774","Frost1x",[294,44,44,289,295,44],"42127016","bombcar",[297,44,44,289,298,44],"42127944","madcaptenor",[300,44,47,301,302,44],"42123676","project\u002Fcritical\u002Fidea","fullstackchris",[304,44,44,289,305,44],"42123950","jagermo",[307,44,44,289,308,44],"42124934","kleiba",[310,44,44,289,311,44],"42125129","Freak_NL",[313,44,44,289,314,44],"42126404","Winse",[316,44,44,289,311,44],"42126738",[318,44,44,289,319,44],"42127036","PenguinCoder",[321,44,44,289,322,44],"42127540","l_h",[324,44,44,289,308,44],"42129003",[326,44,44,289,327,44],"42127743","ahtihn",[329,44,44,289,330,44],"42130978","BrandoElFollito",[332,44,44,289,305,44],"42136401",[334,44,44,289,335,44],"42127272","j45",[337,44,44,289,330,44],"42130991",[339,44,44,289,340,44],"42132064","HeyLaughingBoy",[342,44,44,289,335,44],"42143083",[344,44,44,289,345,44],"42128269","generic92034",[347,44,44,289,305,44],"42136415",[349,44,49,350,351,44],"42128416","project\u002Fneutral\u002Fidea","MikeTheGreat",[353,44,49,350,354,44],"42124712","matsemann",[356,44,44,289,357,44],"42124961","svilen_dobrev",[359,44,44,289,311,44],"42125116",[361,44,44,289,335,44],"42127296",[363,44,40,364,365,44],"42125936","project\u002Fpositive\u002Fidea","pc86",[367,44,40,364,335,44],"42127258",[369,44,44,289,370,44],"42124535","MoreQARespect",[372,44,44,289,373,44],"42128593","dfxm12",[375,44,44,289,376,44],"42128676","ericmcer",[181,47,49,350,182,44],[379,47,44,289,380,44],"42122114","hackernewds",[382,47,44,289,383,44],"42122546","msds",[385,47,44,289,386,44],"42122766","lmm",[388,47,44,289,182,44],"42122941",[390,47,44,289,391,44],"42123093","parpfish",[393,47,44,289,302,44],"42123698",[395,47,44,289,396,44],"42124817","miyuru",[398,47,44,289,399,44],"42124547","TrickyRick",[401,47,44,402,403,44],"42124552","other\u002Fneutral\u002Fnone","blitzar",[405,47,44,289,406,44],"42125688","askl",[408,47,44,289,409,44],"42126518","RheingoldRiver",[411,47,44,289,335,44],"42127331",[413,47,44,402,414,44],"42131401","nicbou",[137,43,47,416,138,44],"project\u002Fcritical\u002Fexecution",[418,43,47,416,419,44],"42129099","drdoooom",[421,43,44,289,330,44],"42131039",[171,49,49,423,172,44],"project\u002Fmixed\u002Fexecution",[175,49,44,425,11,47],"maker\u002Fneutral\u002Fidea",[427,49,49,350,428,44],"42122077","mtnGoat",[430,49,49,431,432,44],"42123016","project\u002Fneutral\u002Fdesign","ffsm8",[434,49,49,350,435,44],"42123115","monkeycantype",[437,18,49,438,439,44],"42123842","project\u002Fneutral\u002Fnone","hundunpao",[129,40,40,441,130,44],"project\u002Fpositive\u002Fexecution",[91,40,44,443,11,47],"maker\u002Fneutral\u002Fnone",[145,445,49,446,146,44],6,"project\u002Fmixed\u002Fdesign",[448,445,47,416,449,44],"42124709","dnpls",[122,451,49,423,123,44],7,[453,451,49,454,399,44],"42124537","project\u002Fneutral\u002Fexecution",[456,457,49,431,458,44],"42120538",8,"geostupid",[281,457,44,460,11,47],"maker\u002Fneutral\u002Fexecution",[103,33,40,441,104,44],[463,33,49,350,464,44],"42120166","helios_invictus",[466,33,49,350,467,44],"42120883","jimjonah",[469,33,44,425,11,47],"42121689",[471,33,49,431,472,44],"42123375","sushid",[474,33,44,460,11,47],"42121650",[141,38,49,423,142,44],[253,477,49,460,254,44],11,[479,477,44,402,480,44],"42126022","beepbooptheory",[160,41,49,454,161,44],[483,41,47,301,484,44],"42124362","wasmitnetzen",[486,41,49,431,354,44],"42124734",[488,41,44,460,11,47],"42130999",[490,491,44,402,492,44],"42125451",13,"LoveMortuus",[230,494,49,350,231,44],14,[496,494,49,431,497,44],"42125820","grahamj",[269,499,47,301,270,44],15,[193,501,40,364,194,44],16,[503,504,47,301,505,44],"42124544",17,"apexalpha",[507,504,44,289,508,44],"42124586","Farbklex",[510,504,44,402,511,44],"42124637","walthamstow",[513,504,44,289,514,44],"42124727","pnut",[516,504,44,289,511,44],"42125771",[518,504,44,289,449,44],"42124664",[520,504,44,289,521,44],"42124665","s6af7ygt",[523,504,47,416,214,44],"42126760",[209,525,49,350,210,44],18,[527,528,47,301,529,44],"42123270",19,"disambiguation",[273,31,49,350,274,44],[532,533,44,402,534,44],"42127570",21,"nsxwolf",[536,533,44,402,537,44],"42127807","bryan2",[539,533,44,402,540,44],"42128547","IshKebab",[542,533,44,402,534,44],"42128742",[544,533,44,402,540,44],"42129552",[546,547,47,416,548,44],"42123457",22,"jasonkester",[550,547,44,289,551,44],"42123984","reyqn",[197,553,49,350,198,44],23,[234,555,40,364,235,44],24,[238,34,44,402,239,44],[164,558,40,441,165,44],26,[560,558,44,460,11,47],"42121565",[107,562,40,364,108,44],27,[149,564,47,416,150,44],28,[566,564,44,460,11,47],"42121583",[568,564,49,431,150,44],"42121993",[570,564,49,446,571,44],"42124212","vindex10",[213,573,49,431,214,44],29,[185,575,47,301,186,44],30,[577,578,49,350,579,44],"42123511",31,"Suppafly",[581,582,44,402,583,44],"42122943",32,"pkaye",[111,585,49,350,112,44],33,[587,588,49,350,589,44],"42123770",34,"ablx000",[591,592,49,350,593,44],"42123131",35,"cloudedcordial",[595,596,47,416,597,44],"42122791",36,"ranit",[118,599,40,441,119,44],37,[222,601,49,350,223,44],38,[603,604,49,454,605,44],"42127325",39,"countvonbalzac",[607,608,47,301,609,44],"42129556",40,"rapfaria",[611,612,49,350,613,44],"42123710",41,"ivve",[615,616,40,617,618,44],"42120301",42,"project\u002Fpositive\u002Fdesign","xutopia",[620,616,44,443,11,47],"42121528",[622,623,49,423,624,44],"42127176",43,"jcrash",[626,623,49,350,335,44],"42127313",[245,628,49,350,246,44],44,[630,628,44,443,11,47],"42121657",[632,633,47,416,634,44],"42121862",45,"bigiain",[636,32,40,441,637,44],"42128721","someoldgit",[156,639,47,416,157,44],47,[85,639,44,443,11,47],[642,639,49,454,643,44],"42124969","limbero",[645,646,40,364,647,44],"42124832",48,"mecker",[649,650,49,350,651,44],"42122397",49,"bluetidepro",[653,654,49,350,655,44],"42126699",50,"bparsons",[657,658,49,438,659,44],"42132404",51,"jac_no_k",[661,662,49,663,664,44],"42125808",52,"maker\u002Fneutral\u002Fdocs","froh",[666,667,49,350,668,44],"42126180",53,"HumblyTossed",[670,671,49,350,571,44],"42124806",54,[673,286,49,350,674,44],"42121706","clord",[676,677,40,364,678,44],"42126571",56,"marssaxman",[680,677,44,289,681,44],"42126593","arethuza",[683,677,44,289,678,44],"42127157",[685,686,49,350,687,44],"42127407",57,"sgwizdak",[689,690,40,364,691,44],"42124367",58,"gunnihinn",[693,694,49,446,695,44],"42125569",59,"debesyla",[697,698,47,301,699,44],"42128400",60,"carabiner",[701,702,47,703,704,44],"42123338",61,"project\u002Fcritical\u002Fnone","deviation",[706,707,49,423,708,44],"42126938",62,"switch007",[710,711,49,350,712,44],"42126531",63,"skizm",[714,711,47,301,715,44],"42127131","smugglerFlynn",[717,718,40,364,719,44],"42127443",64,"itherseed",[721,722,47,703,699,44],"42128840",65,[724,725,49,438,726,44],"42127047",66,"Rygian",[728,729,40,730,731,44],"42122387",67,"project\u002Fpositive\u002Fnone","v123l",[733,734,44,402,735,44],"42128936",68,"mannyv",[202,737,40,364,203,44],69,[739,737,44,443,11,47],"42121642",[741,737,49,350,742,44],"42121863","_rs",[744,745,49,350,746,44],"42122400",70,"newman314",[748,749,49,750,751,44],"42125299",71,"project\u002Fmixed\u002Fidea","10729287",[753,754,40,617,755,44],"42123261",72,"rjakobsson",[757,758,49,438,759,44],"42122899",73,"voiper1",[761,762,47,416,763,44],"42129138",74,"croisillon",[765,766,49,431,767,44],"42123538",75,"Hamuko",[769,770,44,402,771,44],"42128196",76,"temporallobe",[773,774,44,402,775,44],"42126370",77,"ellisv",[777,778,47,416,779,44],"42124327",78,"gloosx",[781,782,47,703,783,44],"42127042",79,"small_crow",[785,786,47,416,787,44],"42133285",80,"brokenmachine",[789,790,47,791,792,44],"42124009",81,"project\u002Fcritical\u002Fprivacy","briandear",[794,795,40,730,796,44],"42125251",82,"matthewfelgate",[798,799,40,800,801,44],"42128300",83,"maker\u002Fpositive\u002Fnone","hmcamp",[],[804,809,814,818,823,828],{"id":805,"name":806,"points":807,"category":808},"42082430","Jamcorder",590,"hardware",{"id":810,"name":811,"points":812,"category":813},"42093511","HTML-to-Markdown",360,"dev_tools",{"id":815,"name":816,"points":817,"category":20},"42119042","Jelly",338,{"id":819,"name":820,"points":821,"category":822},"42085036","Asterogue",331,"games",{"id":824,"name":825,"points":826,"category":827},"42095879","Jaws",290,"languages",{"id":829,"name":830,"points":831,"category":832},"42104224","Krita RGBA Tech",271,"creative",false,"v2",{"id":836,"name":5,"line":6,"ai":833,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":837,"top":18,"kw":838,"maker":11,"domain":10,"tier":19,"attempts":44,"strip":839,"url":9,"mix":840,"praise":99,"objection":134,"sub":21},42118039,-0.02,[24,25,26,27],"0100035300124243322013153223433344145312",[31,32,33,34],1794036664217]