[{"data":1,"prerenderedAt":472},["ShallowReactive",2],{"project-44006231":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":43,"post_text":46,"what":47,"said":78,"maker_in_thread":176,"shape":187,"grid":192,"attempts":436,"same_week":437,"maker_shows":34,"maker_hidden":464,"reader_version":465,"card":466},"44006231","Erlang-RED","Visual flow-based programming for Erlang, inspired by Node-RED","title","Show HN: Visual flow-based programming for Erlang, inspired by Node-RED","https:\u002F\u002Fgithub.com\u002Fgorenje\u002Ferlang-red","github.com","Towaway69",1747407253,2025,243,102,248,3837,7,"notable","dev_tools","visual programming environment","web_app",[24,25,26,27,28],"flow-based programming","erlang","node-red","visual programming","concurrency","curious",-0.078,{"positive":32,"neutral":33,"mixed":34,"critical":18},4,20,1,32,{"idea":37,"docs":38,"execution":40,"design":42},{"positive":34,"critical":32},{"positive":34,"critical":39},2,{"positive":41,"critical":41},0,{"positive":41,"critical":41},[44,44,39,34,44,41,41,41,41,44,41,41,41,41,45,44,44,44,44,44,41,44,34,41,34,34,45,41,41,44,45,44,34,44,41,34,41,41,41,41],3,5,"Hi There,\n\nErlang-RED has been my project for the last couple of months and I would love to get some feedback from the HN community.\n\nThe idea is to take advantage of Erlangs message passing and low overhead processes to have true concurrency in Node-RED flows. Plus also to bring low-code visual flow-based programming to Erlang.",{"problem":48,"audience":54,"pricing":60,"motivation":61,"time_to_build":60,"stack":66,"openness":75,"stage":76,"team_size":77},{"value":49,"source":50,"evidence":51},"Brings Node-RED style flow-based concurrency to Erlang's message-passing processes","maker",[52],{"id":53},"post",{"value":55,"source":50,"evidence":56},"Erlang developers unfamiliar with flow-based programming",[57],{"id":58,"by":11,"text":59},"44007499","1. Ah sorry, indeed I forgot to add a link to J. Paul Morrison[1] the inventor of FBP - definitely add that. 2. The target audience is definitely Erlang developers who have not…",null,{"value":62,"source":50,"evidence":63},"Maker wanted to bring visual flow-based programming to Erlang and experiment with Erlang's concurrency",[64,65],{"id":53},{"id":58,"by":11,"text":59},[67,71],{"value":68,"source":50,"evidence":69},"Erlang",[70],{"id":53},{"value":72,"source":50,"evidence":73},"Node-RED",[74],{"id":53},"open_source","beta","solo",{"praise":79,"objections":91,"requests":127,"questions":146,"alternatives":161},[80],{"value":81,"source":82,"evidence":83},"Good idea for Erlang concurrency and flow-based programming","commenter",[84,87],{"id":85,"by":11,"text":86},"44007929","> wish that it was not multi-processing and Erlang Hehe - honestly I chose Erlang because I love the syntax and secondly because it is so niche. Flow based programming is niche,…",{"id":88,"by":89,"text":90},"44006615","thinkyfish","I was just thinking of making something like this last night but using FLENG instead of Erlang ;) I'm really glad more people are taking inspiration from Node-RED, I will…",[92,101,112],{"value":93,"source":82,"evidence":94},"Visual flow code is hard to version control and diff",[95,98],{"id":96,"by":11,"text":97},"44006783","I know of Py-Red[1] which is an attempt to do the same but with Python. Using Node-RED as a frontend and something else as a backend, no I haven't heard of anything similar. Main…",{"id":99,"by":11,"text":100},"44008017","> Could you sort the JSON before saving so the output is more stable and diff-able? Jsons are definitely diff-able but it's the difference between a change that changes the logic…",{"value":102,"source":82,"evidence":103},"Documentation lacks explanation of flow-based programming and terms",[104,108],{"id":105,"by":106,"text":107},"44016418","nilslindemann","The thing which makes me be annoyed with Yours and the Node-RED site, is that you people do not define terms, before using them. Like \"flow\". What is this? A program? Please…",{"id":109,"by":110,"text":111},"44006855","paddy_m","Nice work! A couple of comments 1. You don't explain what flow based programming is or when it should be used. It looks like it represents some type of data pipeline, but I'm not…",{"value":113,"source":82,"evidence":114},"Examples and screenshots are buried in the README",[115,119,123],{"id":116,"by":117,"text":118},"44006385","tzarko","This is neat - maybe move the example section higher up; it looks great and gives a much better idea of what the system looks like visually, which to me is key in node-based envs.",{"id":120,"by":121,"text":122},"44008861","aantix","I would move your sample images to the top of the README. Don't bury the lede.",{"id":124,"by":125,"text":126},"44008498","fnord77","for a visual environment, I was expecting more images to show me what this tool is",[128,137,142],{"value":129,"source":82,"evidence":130},"Move examples and screenshots higher in the README",[131,132,133],{"id":116,"by":117,"text":118},{"id":120,"by":121,"text":122},{"id":134,"by":135,"text":136},"44006405","js4ever","Congratulations for the launch! Also I never heard of that license before: \"LICENSE - DON'T DO EVIL\" https:\u002F\u002Fgithub.com\u002Fgorenje\u002Ferlang-red?tab=License-1-ov-file#readme Also I…",{"value":138,"source":82,"evidence":139},"Add a glossary and explain flow-based programming",[140,141],{"id":105,"by":106,"text":107},{"id":109,"by":110,"text":111},{"value":143,"source":82,"evidence":144},"Provide a browser-based JS implementation for demos",[145],{"id":109,"by":110,"text":111},[147,154],{"value":148,"source":82,"evidence":149},"Is there a code-based DSL for event-driven flow problems?",[150],{"id":151,"by":152,"text":153},"44007122","Arch-TK","I saw Node-RED recently, and now this. While I think these are cool (and I would rather Erlang than NodeJS), is there some code based system for these kinds of things? I know I…",{"value":155,"source":82,"evidence":156},"Is there a visual flow tool based on Rust?",[157],{"id":158,"by":159,"text":160},"44007812","oersted","> Node-RED is a amazing[*] tool for creating flows that describe concurrent processing, it is just a shame the NodeJS is single threaded. So why not use something that is…",[162,166,170],{"value":163,"source":50,"evidence":164},"Py-Red",[165],{"id":96,"by":11,"text":97},{"value":167,"source":50,"evidence":168},"n8n",[169],{"id":96,"by":11,"text":97},{"value":171,"source":82,"evidence":172},"AtomVM",[173],{"id":174,"by":11,"text":175},"44007860","Wow! That does look interesting: > With AtomVM, you can write your IoT applications in a functional programming language, using a modern actor-based concurrency model, making…",{"comments":177,"answered":178,"key":179},23,11,[180,183,184],{"id":181,"text":182},"44007684","Not to my knowledge, the closest thing to a DSL for Node-RED is its flows.json format for storing flow configurations. It's a very simple array-of-object format with the…",{"id":85,"text":86},{"id":185,"text":186},"44008237","Yes Erlang processes all the way down!",{"commenters":188,"max_depth":189,"maker_replies":177,"first_comment_mins":190,"lifespan_hours":191},47,10,12,85,[193,195,196,199,202,205,208,210,213,216,218,221,222,226,228,231,234,236,238,240,242,244,247,249,253,256,258,260,262,265,267,269,271,274,278,279,281,284,285,288,290,293,296,297,300,302,305,307,310,314,316,320,323,325,327,329,332,337,339,341,344,347,348,350,352,355,359,362,365,367,370,373,377,379,382,385,387,389,391,394,396,397,400,402,405,409,411,413,415,418,420,423,425,427,429,432,434],[151,41,44,194,152,41],"project\u002Fneutral\u002Fidea",[181,41,41,194,11,34],[197,41,44,198,152,41],"44008555","project\u002Fneutral\u002Fnone",[200,41,44,194,201,41],"44009477","NortySpock",[203,41,44,194,204,41],"44012044","a-ungurianu",[206,41,44,194,207,41],"44012613","mogili",[158,34,34,209,159,41],"project\u002Fcritical\u002Fidea",[211,34,34,209,212,41],"44007924","bheadmaster",[214,34,44,194,215,41],"44014239","Intermernet",[85,34,41,217,11,34],"project\u002Fpositive\u002Fidea",[219,34,44,198,220,41],"44008197","notpushkin",[185,34,41,198,11,34],[223,34,41,224,225,41],"44008362","other\u002Fneutral\u002Fnone","macintux",[227,34,41,224,220,41],"44008595",[229,34,41,224,230,41],"44009037","SigmundA",[232,34,41,224,233,41],"44009347","neonsunset",[235,34,41,224,230,41],"44009463",[237,34,41,224,233,41],"44009646",[239,34,41,224,230,41],"44009776",[241,34,41,224,233,41],"44009801",[243,34,41,224,230,41],"44009870",[245,34,41,246,233,41],"44009315","other\u002Fneutral\u002Fperformance",[248,34,44,194,125,41],"44008520",[250,34,41,251,252,41],"44008981","commenter\u002Fneutral\u002Fnone","rdtsc",[254,34,41,255,230,41],"44009660","commenter\u002Fneutral\u002Fperformance",[257,34,41,255,252,41],"44009867",[259,34,41,255,230,41],"44011371",[261,34,41,255,252,41],"44011910",[263,34,41,264,11,34],"44012371","project\u002Fneutral\u002Fperformance",[266,34,41,255,230,41],"44013707",[268,34,41,255,252,41],"44018637",[270,34,41,255,230,41],"44021271",[272,34,41,255,273,41],"44012105","marci",[275,34,45,276,277,41],"44011466","project\u002Fpositive\u002Fdocs","creata",[88,39,45,217,89,41],[280,39,41,224,11,34],"44007571",[282,44,44,194,283,41],"44006463","concerndc1tizen",[96,44,41,194,11,34],[286,44,44,194,287,41],"44006979","regularfry",[174,44,41,289,11,34],"project\u002Fpositive\u002Fperformance",[291,44,41,224,292,41],"44009368","cess11",[294,44,44,295,110,41],"44007188","project\u002Fneutral\u002Fexecution",[99,44,41,194,11,34],[298,44,44,295,299,41],"44008376","HappMacDonald",[301,44,41,194,11,34],"44009462",[303,44,44,194,304,41],"44007740","punnerud",[306,44,41,194,11,34],"44007836",[308,44,44,194,309,41],"44011059","applied_heat",[311,44,41,312,313,41],"44006883","other\u002Fneutral\u002Fidea","jayd16",[315,44,41,224,110,41],"44006956",[317,44,41,318,319,41],"44008692","other\u002Fcritical\u002Fidea","WillAdams",[321,44,44,194,322,41],"44015273","randunel",[116,32,44,324,117,41],"project\u002Fneutral\u002Fdocs",[326,32,41,324,11,34],"44008064",[105,45,34,328,106,41],"project\u002Fcritical\u002Fdocs",[330,45,41,331,106,41],"44016518","commenter\u002Fneutral\u002Fdocs",[333,334,41,335,336,41],"44006768",6,"other\u002Fneutral\u002Fdocs","bn-l",[338,334,41,335,11,34],"44006864",[340,334,41,335,336,41],"44009698",[342,334,34,209,343,41],"44008644","randito",[345,334,41,346,11,34],"44009551","maker\u002Fneutral\u002Fidea",[120,18,44,324,121,41],[124,349,34,328,125,41],8,[351,349,41,198,11,34],"44009305",[353,349,45,354,125,41],"44037554","project\u002Fpositive\u002Fnone",[356,357,41,224,358,41],"44006913",9,"nisten",[360,189,41,224,361,41],"44007580","mystraline",[363,189,41,224,364,41],"44007710","wslh",[366,189,41,224,11,34],"44007764",[368,189,41,224,369,41],"44008976","01100011",[371,189,41,224,372,41],"44013360","anonzzzies",[374,178,44,375,376,41],"44007180","project\u002Fneutral\u002Fdesign","pjmlp",[378,178,41,375,11,34],"44007306",[380,178,41,312,381,41],"44008201","tlodboy",[383,190,45,354,384,41],"44006468","smartmic",[109,386,44,324,110,41],13,[388,386,44,324,110,41],"44007071",[390,386,41,295,11,34],"44007187",[392,386,34,209,393,41],"44007075","adastra22",[395,386,41,194,11,34],"44007240",[58,386,41,324,11,34],[134,398,44,399,135,41],14,"project\u002Fmixed\u002Fdocs",[401,398,41,198,11,34],"44006503",[403,398,41,224,404,41],"44006537","tough",[406,398,34,407,408,41],"44006754","project\u002Fcritical\u002Fnone","pvg",[410,398,41,198,11,34],"44007162",[412,398,41,251,408,41],"44007449",[414,398,41,251,393,41],"44007124",[416,398,41,224,417,41],"44006630","90s_dev",[419,398,41,224,417,41],"44006652",[421,398,41,251,422,41],"44006726","SoftTalker",[424,398,41,251,11,34],"44007039",[426,398,41,198,11,34],"44006964",[428,398,41,251,417,41],"44007036",[430,398,41,224,431,41],"44006970","pydry",[433,398,41,251,393,41],"44007135",[435,398,41,224,431,41],"44008305",[],[438,443,447,451,456,460],{"id":439,"name":440,"points":441,"category":442},"44022353","Voynich NLP analysis",381,"learning_science",{"id":444,"name":445,"points":446,"category":20},"44042371","90s.dev",352,{"id":448,"name":449,"points":450,"category":20},"44042490","Jwno",297,{"id":452,"name":453,"points":454,"category":455},"44009321","KVSplit",272,"ai",{"id":457,"name":458,"points":459,"category":20},"44023144","Vaev",233,{"id":461,"name":462,"points":463,"category":20},"44020734","Hardtime.nvim",214,false,"v2",{"id":467,"name":5,"line":6,"ai":464,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":468,"top":18,"kw":469,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":470,"url":9,"mix":471,"praise":81,"objection":93,"sub":21},44006231,-0.08,[24,25,26,27,28],"3321300003000053333303101150035313010000",[32,33,34,18],1794036674928]