[{"data":1,"prerenderedAt":771},["ShallowReactive",2],{"project-46847690":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":45,"post_text":47,"what":48,"said":96,"maker_in_thread":261,"shape":274,"grid":279,"attempts":732,"same_week":733,"maker_shows":43,"maker_hidden":763,"reader_version":764,"card":765},"46847690","Craftplan","I built my wife a production management tool for her bakery","title","Show HN: Craftplan – I built my wife a production management tool for her bakery","https:\u002F\u002Fgithub.com\u002Fpuemos\u002Fcraftplan","github.com","deofoo",1769966739,2026,577,167,35,4366,1,"legend","web_saas","production management","web_app",[21,24,25,26,27],"bakery software","bill of materials","inventory traceability","small batch manufacturing","loved",0.505,{"positive":31,"neutral":32,"mixed":33,"critical":34},27,14,5,3,49,{"execution":37,"idea":39,"design":41,"performance":42,"docs":44},{"positive":34,"critical":38},0,{"positive":40,"critical":38},7,{"positive":33,"critical":38},{"positive":38,"critical":43},2,{"positive":43,"critical":38},[38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,34,38,33,33,34,34,38,46,33,34,33,34,34,33,33,33,33,33,33,33,46,33,34,33],4,"My wife was planning to open a micro-bakery. We looked at production management software and it was all either expensive or way too generic. The actual workflows for a small-batch manufacturer aren't that complex, so I built one and open-sourced it.\n\nCraftplan handles recipes (versioned BOMs with cost rollups), inventory (lot traceability, demand forecasting, allergen tracking), orders, production batch planning, and purchasing. Built with Elixir, Ash Framework, Phoenix LiveView, and PostgreSQL.\n\nLive demo: https:\u002F\u002Fcraftplan.fly.dev (test@test.com \u002F Aa123123123123)\n\nGitHub: https:\u002F\u002Fgithub.com\u002F",{"problem":49,"audience":55,"pricing":59,"motivation":60,"time_to_build":64,"stack":76,"openness":93,"stage":94,"team_size":95},{"value":50,"source":51,"evidence":52},"Production management software is either expensive or too generic for small-batch manufacturers","maker",[53],{"id":54},"post",{"value":56,"source":51,"evidence":57},"Small-batch manufacturers such as micro-bakeries",[58],{"id":54},null,{"value":61,"source":51,"evidence":62},"Built for the maker's wife who was planning to open a micro-bakery",[63],{"id":54},{"value":65,"source":51,"evidence":66},"A few weekends to a few weeks",[67,70,73],{"id":68,"by":11,"text":69},"46884158","A few weekends. At the end I used AI to get JSON:API and GraphQL working, plus the docs website, a few UI changes + bug fixing",{"id":71,"by":11,"text":72},"46882309","A few weeks (mostly weekends)",{"id":74,"by":11,"text":75},"46884904","Yeah, trying to pump more memory. It took a few weekends over a long period of time",[77,81,85,89],{"value":78,"source":51,"evidence":79},"Elixir",[80],{"id":54},{"value":82,"source":51,"evidence":83},"Ash Framework",[84],{"id":54},{"value":86,"source":51,"evidence":87},"Phoenix LiveView",[88],{"id":54},{"value":90,"source":51,"evidence":91},"PostgreSQL",[92],{"id":54},"open_source","launched","solo",{"praise":97,"objections":140,"requests":178,"questions":205,"alternatives":236},[98,114,125,133],{"value":99,"source":100,"evidence":101},"Clean, well-designed UI and codebase","commenter",[102,106,110],{"id":103,"by":104,"text":105},"46883511","shane_kerns","This is a great piece of software, with much thought put into nitty gritty details. Aside from the gripes around the mobile experience that some have outlined here, I would say…",{"id":107,"by":108,"text":109},"46879897","cyberax","As someone who struggled with ERPs, this is super-nice and clean!",{"id":111,"by":112,"text":113},"46881881","dabedee","Honestly, well done and thanks for sharing it. I also really appreciate the fact that you included multiple screenshots of the UI, as well as some of the agent plans. Reading the…",{"value":115,"source":100,"evidence":116},"Built for a specific real user rather than generic",[117,121],{"id":118,"by":119,"text":120},"46885983","Soerensen","The approach of building for one specific user (your wife) rather than abstracting too early is underrated. You end up with something that actually fits the workflows instead of…",{"id":122,"by":123,"text":124},"46888709","ewalk153","Assuming this was user tested in hand with your wife, it’s nice to this kind of project built for a real user. So often, these tools lack usability because they’re built…",{"value":126,"source":100,"evidence":127},"BOM with cost rollups and allergen tracking are useful",[128,129],{"id":118,"by":119,"text":120},{"id":130,"by":131,"text":132},"46879818","ggm","I think this is a very nicely thought out approach. I particularly like it doing allergen tracking. Obviously you're at the mercy of supplier\u002Fsupply-chain integrity but if you do…",{"value":134,"source":100,"evidence":135},"Easy Docker compose setup",[136],{"id":137,"by":138,"text":139},"46881231","joeyguerra","I love that you can just \"curl download the docker compose file and docker up\" to run. Awesome UX.",[141,160,171],{"value":142,"source":100,"evidence":143},"Live demo slow or not loading, likely due to traffic",[144,148,152,156],{"id":145,"by":146,"text":147},"46883670","rubymamis","Live demo not loading for me - hug of death?",{"id":149,"by":150,"text":151},"46883555","alexcroox","Login submission hangs forever, guessing too much traffic",{"id":153,"by":154,"text":155},"46884730","dhatawesomedude","This looks great! Love the screenshots, although I'm unable to login to the app. Likely due to the extra traffic this post has gotten. How long did it take you to build this ?",{"id":157,"by":158,"text":159},"46882705","peterpost2","That is one good-looking website. Seems like the live demo website is about to die though.",{"value":161,"source":100,"evidence":162},"Mobile layout issues with pop-ups and production schedule",[163,167],{"id":164,"by":165,"text":166},"46881923","spockz","This is amazing! My wife is also planning to open up a bakery and I was thinking of building something similar. Hadn’t thought of that daily production workflow, just the…",{"id":168,"by":169,"text":170},"46881260","lateral_cloud","Nice work. My wife will love this. Only minor gripe is the production schedule doesn't play nicely on mobile. Text leaks between columns.",{"value":172,"source":100,"evidence":173},"Forecasting and reorder logic hard-coded",[174],{"id":175,"by":176,"text":177},"46880418","mandeepj","Is the logic behind \"Usage Forecast\" and \"Reorder Planner\" hard-coded somewhere? I'm not seeing any configuration for that, so I had to ask the question.",[179,186,192,198],{"value":180,"source":100,"evidence":181},"Support semi-finished products like jam used as ingredients",[182],{"id":183,"by":184,"text":185},"46882589","randogp","Awesome, does it support Semiproducts? For example I'm making my own jam (sugar + fruit) and then I use this again as a material in different finished products, say cakes and…",{"value":187,"source":100,"evidence":188},"Make forecasting and planner logic configurable",[189],{"id":190,"by":11,"text":191},"46882913","Right now it's hard-coded. But based on your feedback I'm going to make some of it configurable",{"value":193,"source":51,"evidence":194},"Add e-commerce layer",[195],{"id":196,"by":11,"text":197},"46884267","Love that. I was thinking to add e-commerce layer",{"value":199,"source":100,"evidence":200},"Rename to avoid clash with CraftNote",[201],{"id":202,"by":203,"text":204},"46883472","Abimelex","awesome and thank you for open sourcing it! Maybe consider renaming it, since there is CraftNote, an app with similar scope in construction business.",[206,217,224],{"value":207,"source":100,"evidence":208},"How much of the code was written with AI",[209,213],{"id":210,"by":211,"text":212},"46886019","lp4v4n","Congrats, deofoo. Very interesting. How much of it was developed with AI? If you had to give us a percentage of how much of the code was written by yourself vs AI, what would the…",{"id":214,"by":215,"text":216},"46883519","jack_pp","Can you estimate how many hours went into this? Did you use agents?",{"value":218,"source":100,"evidence":219},"Why Ash over plain Phoenix LiveView",[220],{"id":221,"by":222,"text":223},"46880426","nsriv","Love to the point of invention! This looks and feels great. I'm an Elixir newbie and wondering if I should start with learning Ash or stick with Liveview until I know more. Any…",{"value":225,"source":100,"evidence":226},"How long it took to build",[227,231,235],{"id":228,"by":229,"text":230},"46881191","thedangler","This is unreal. Nice work How long did it take ? I tried to use ash to build a simple app and couldn’t get it to work lol. I’m an elixir noob",{"id":232,"by":233,"text":234},"46881791","fergbrain","This looks amazing! How long did it take to get to this state?",{"id":153,"by":154,"text":155},[237,244,251,255],{"value":238,"source":100,"evidence":239},"Grist",[240],{"id":241,"by":242,"text":243},"46883907","jon-wood","Grist[1] is great for this stuff, at first glance its a spreadsheet but that spreadsheet is backed by a SQLite database and you can put an actual UI on top of it without leaving…",{"value":245,"source":100,"evidence":246},"Mathesar",[247],{"id":248,"by":249,"text":250},"46881435","uint8_t","Just amazing. I had a need for something like this but wound up building it out in Mathesar. That, too, is an amazing project, but my business logic has to remain separate.…",{"value":252,"source":100,"evidence":253},"CraftNote",[254],{"id":202,"by":203,"text":204},{"value":256,"source":100,"evidence":257},"Microsoft Access",[258],{"id":259,"by":165,"text":260},"46883043","I still think MS Access was awesome. In the small companies I worked it was used successfully by moderately tech savvy directors and support employees to manage ERP, license…",{"comments":262,"answered":263,"key":264},24,9,[265,268,271],{"id":266,"text":267},"46882311","100%",{"id":269,"text":270},"46883930","So true, we devs are so stuck in our own bubble",{"id":272,"text":273},"46883916","The truth is that I put a lot of work in at the beginning to define the data structure and flows by myself. AI was very useful later to experiment with how to build the views on…",{"commenters":275,"max_depth":276,"maker_replies":262,"first_comment_mins":277,"lifespan_hours":278},108,8,3286,235,[280,284,286,289,292,295,297,299,301,304,307,308,310,312,313,316,319,321,324,326,328,331,334,337,339,340,343,345,347,350,353,356,359,362,364,366,369,372,374,377,380,382,385,387,390,393,396,399,401,403,405,408,410,412,414,416,419,421,423,426,429,432,435,437,439,441,443,445,447,451,455,458,461,464,467,470,473,476,478,481,484,486,488,491,493,496,500,502,505,508,511,514,516,519,522,525,528,532,534,538,540,542,545,548,550,554,557,560,562,567,571,575,578,581,583,585,587,589,590,594,598,602,605,607,609,612,614,617,619,622,626,629,632,636,638,640,642,645,649,652,654,656,658,662,664,667,671,675,678,680,682,684,685,688,693,695,699,701,703,705,707,709,711,715,719,721,724,728],[281,38,38,282,283,38],"46882114","other\u002Fneutral\u002Fnone","larodi",[266,38,38,285,11,18],"commenter\u002Fneutral\u002Fnone",[287,38,38,282,288,38],"46882547","ramshanker",[290,38,38,285,291,38],"46882732","lelanthran",[293,38,38,285,294,38],"46882873","mschild",[296,38,38,285,291,38],"46882978",[298,38,38,285,294,38],"46883414",[300,38,38,285,291,38],"46883937",[302,38,38,285,303,38],"46883616","mrkeen",[305,38,38,282,306,38],"46882983","RobinL",[259,38,38,282,165,38],[309,38,38,282,306,38],"46883098",[311,38,38,282,165,38],"46883412",[241,38,38,282,242,38],[314,38,38,282,315,38],"46884284","viraptor",[317,38,38,282,318,38],"46885089","fsagx",[320,38,38,282,291,38],"46883057",[322,38,38,282,323,38],"46887184","calvinmorrison",[325,38,38,285,283,38],"46883395",[327,38,38,285,291,38],"46883969",[329,38,38,285,330,38],"46884193","darkwater",[332,38,38,285,333,38],"46884312","newsclues",[335,38,38,285,336,38],"46883427","risyachka",[338,38,38,285,283,38],"46883547",[269,38,38,285,11,18],[341,38,38,282,342,38],"46885497","germinalphrase",[344,38,38,282,283,38],"46887569",[346,38,38,285,336,38],"46897253",[348,38,38,282,349,38],"46884376","jackdoe",[351,38,38,282,352,38],"46885413","wwfn",[354,38,38,282,355,38],"46884403","nkapias",[357,38,38,285,358,38],"46884705","makerdiety",[360,38,38,282,361,38],"46887641","kayo_20211030",[363,38,38,282,355,38],"46895745",[365,38,38,285,361,38],"46906589",[367,38,38,282,368,38],"46888159","currydove",[370,38,38,282,371,38],"46889100","monknomo",[373,38,38,285,355,38],"46895866",[375,38,38,282,376,38],"46890475","nickthegreek",[378,38,38,282,379,38],"46893863","cube00",[381,38,38,285,355,38],"46895793",[383,38,38,285,384,38],"46884431","haunter",[386,38,38,282,283,38],"46884604",[388,38,38,282,389,38],"46884764","dv_dt",[391,38,38,282,392,38],"46887643","globular-toast",[394,38,38,282,395,38],"46884799","DrScientist",[397,38,38,282,398,38],"46885167","arethuza",[400,38,38,282,395,38],"46885631",[402,38,38,282,398,38],"46886037",[404,38,38,282,395,38],"46886377",[406,38,38,282,407,38],"46885930","alansaber",[409,38,38,285,395,38],"46886493",[411,38,38,282,323,38],"46887164",[413,38,38,282,283,38],"46887322",[415,38,38,285,398,38],"46887538",[417,38,38,285,418,38],"46885302","tantalor",[420,38,38,285,283,38],"46887254",[422,38,38,285,418,38],"46887744",[424,38,38,285,425,38],"46887814","jasondigitized",[427,38,38,285,428,38],"46888465","dandellion",[430,38,38,282,431,38],"46885340","xtiansimon",[433,38,38,285,434,38],"46886994","y-curious",[436,38,38,282,431,38],"46898904",[438,38,38,282,323,38],"46887145",[440,38,38,285,283,38],"46887365",[442,38,38,285,323,38],"46890020",[444,38,38,285,283,38],"46896705",[446,38,38,282,392,38],"46887488",[448,38,34,449,450,38],"46888066","maker\u002Fneutral\u002Fnone","ericmcer",[452,38,34,453,454,38],"46888723","project\u002Fneutral\u002Fnone","nobody_r_knows",[456,38,34,449,457,38],"46888767","newswasboring",[459,38,38,285,460,38],"46892542","yunohn",[462,38,38,282,463,38],"46888903","bdcravens",[465,38,38,282,466,38],"46890617","k1rd",[468,38,38,285,469,38],"46888539","pinewurst",[471,38,38,282,472,38],"46888809","bs7280",[474,38,38,285,475,38],"46912687","nolroz",[103,18,33,477,104,38],"project\u002Fpositive\u002Fexecution",[479,18,38,285,480,38],"46883575","billynomates",[482,18,38,285,483,38],"46885627","zmhanham",[485,18,38,285,480,38],"46974370",[272,18,38,487,11,18],"maker\u002Fneutral\u002Fidea",[489,18,34,487,490,38],"46886974","kejaed",[118,43,33,492,119,38],"project\u002Fpositive\u002Fdesign",[494,43,38,495,11,18],"46886480","maker\u002Fpositive\u002Fexecution",[497,43,34,498,499,38],"46886770","project\u002Fmixed\u002Fidea","toddmorey",[501,34,38,282,483,38],"46880443",[503,34,38,282,504,38],"46881002","Onavo",[506,34,38,282,507,38],"46884485","t0mas88",[509,34,38,282,510,38],"46886227","LunaSea",[512,46,34,453,513,38],"46882872","artemave",[196,46,38,515,11,18],"maker\u002Fpositive\u002Fnone",[517,46,38,282,518,38],"46884296","lm28469",[520,46,38,285,521,38],"46884496","MonkeyClub",[523,46,38,282,524,38],"46884607","simonklitj",[526,46,38,282,527,38],"46888043","rancevent",[529,33,33,530,531,38],"46881205","project\u002Fpositive\u002Fnone","edoceo",[533,33,38,449,11,18],"46882507",[535,536,34,453,537,38],"46887960",6,"alejoar",[164,40,34,539,165,38],"project\u002Fmixed\u002Fexecution",[541,40,38,495,11,18],"46882255",[543,40,38,544,11,18],"46884042","maker\u002Fneutral\u002Fexecution",[546,276,33,530,547,38],"46880140","Vivtek",[549,276,38,449,11,18],"46882280",[551,263,34,552,553,38],"46879509","project\u002Fneutral\u002Fdesign","pimlottc",[555,263,38,556,11,18],"46882264","maker\u002Fneutral\u002Fdesign",[175,558,34,559,176,38],10,"project\u002Fneutral\u002Fidea",[190,558,38,561,11,18],"maker\u002Fpositive\u002Fidea",[563,564,38,565,566,38],"46914064",11,"other\u002Fneutral\u002Fidea","Jide_Lambo",[568,569,33,530,570,38],"46879422",12,"protocolture",[572,573,38,282,574,38],"46885279",13,"nottorp",[576,573,38,282,577,38],"46885312","JoBrad",[579,32,33,492,580,38],"46881336","rbabtista",[210,582,34,449,211,38],15,[183,584,34,559,184,38],16,[586,584,38,449,11,18],"46882811",[214,588,34,449,215,38],17,[68,588,38,449,11,18],[591,592,33,530,593,38],"46884608",18,"sentrysapper",[595,592,18,596,597,38],"46885553","project\u002Fcritical\u002Fnone","leowoo91",[599,600,38,282,601,38],"46887700",19,"gglitch",[168,603,34,604,169,38],20,"project\u002Fmixed\u002Fdesign",[606,603,38,556,11,18],"46882515",[608,603,38,556,11,18],"46884047",[122,610,33,611,123,38],21,"project\u002Fpositive\u002Fidea",[130,613,33,611,131,38],22,[615,613,38,616,11,18],"46882306","project\u002Fneutral\u002Fexecution",[137,618,33,477,138,38],23,[620,262,33,477,621,38],"46885307","ssenssei",[623,624,34,559,625,38],"46888063",25,"harwoodr",[627,628,33,492,392,38],"46890153",26,[630,31,33,611,631,38],"46897534","masterbit",[633,634,33,611,635,38],"46880042",28,"xianshou",[248,637,33,611,249,38],29,[221,639,33,492,222,38],30,[641,639,34,616,483,38],"46880492",[643,639,38,285,644,38],"46882648","victorbjorklund",[646,647,38,282,648,38],"46885439",31,"theturtletalks",[153,650,34,651,154,38],32,"project\u002Fmixed\u002Fperformance",[74,650,38,653,11,18],"maker\u002Fneutral\u002Fperformance",[107,655,33,492,108,38],33,[657,655,38,449,11,18],"46882297",[659,660,33,611,661,38],"46879690",34,"sukh",[663,660,38,487,11,18],"46882295",[665,16,38,282,666,38],"46889181","syntaxing",[668,669,38,282,670,38],"46887137",36,"hcrisp",[672,673,38,282,674,38],"46881241",37,"mh-",[676,673,38,282,677,38],"46881451","jeremyjacob",[679,673,38,285,674,38],"46881460",[681,673,38,282,11,18],"46882272",[228,683,33,530,229,38],38,[71,683,38,449,11,18],[145,686,18,687,146,38],39,"project\u002Fcritical\u002Fperformance",[689,690,33,691,692,38],"46883416",40,"project\u002Fpositive\u002Fdocs","viviansolide",[111,694,33,691,112,38],41,[696,697,33,530,698,38],"46882399",42,"johng",[157,700,34,651,158,38],43,[702,700,38,653,11,18],"46882802",[232,704,33,530,233,38],44,[706,704,38,449,11,18],"46882269",[149,708,18,687,150,38],45,[202,710,33,530,203,38],46,[712,713,38,282,714,38],"46883434",47,"hkt",[716,717,33,530,718,38],"46882696",48,"fud101",[720,717,38,449,11,18],"46882816",[722,35,34,453,723,38],"46885461","dude250711",[725,726,33,611,727,38],"46886650",50,"babu_mick",[729,730,33,530,731,38],"46884557",51,"bryanzborges",[],[734,739,744,749,754,759],{"id":735,"name":736,"points":737,"category":738},"46850205","NanoClaw",533,"ai",{"id":740,"name":741,"points":742,"category":743},"46832074","ear",469,"languages",{"id":745,"name":746,"points":747,"category":748},"46850803","Xikipedia",441,"learning_science",{"id":750,"name":751,"points":752,"category":753},"46882389","Ghidra MCP Server",298,"dev_tools",{"id":755,"name":756,"points":757,"category":758},"46868479","Safe-now.live",195,"infrastructure",{"id":760,"name":761,"points":762,"category":758},"46824877","Amla Sandbox",146,false,"v2",{"id":766,"name":5,"line":6,"ai":763,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":767,"top":18,"kw":768,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":769,"url":9,"mix":770,"praise":99,"objection":142,"sub":21},46847690,0.51,[21,24,25,26,27],"0000000000000000305533045353355555554535",[31,32,33,34],1794036691967]