[{"data":1,"prerenderedAt":619},["ShallowReactive",2],{"project-48926939":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":50,"post_text":52,"what":53,"said":91,"maker_in_thread":235,"shape":242,"grid":245,"attempts":581,"same_week":582,"maker_shows":51,"maker_hidden":611,"reader_version":612,"card":613},"48926939","Firefox in WebAssembly","title","Show HN: Firefox in WebAssembly","https:\u002F\u002Fdeveloper.puter.com\u002Flabs\u002Ffirefox-wasm\u002F","developer.puter.com","coolelectronics",1784149217,2026,273,125,172,4366,4,"legend","creative","browser in browser demo","web_app",[23,24,25,26,27],"firefox webassembly","browser in browser","wasm","gecko","spidermonkey","curious",-0.311,{"positive":31,"neutral":32,"mixed":33,"critical":34},7,42,6,28,83,{"pricing":37,"performance":40,"idea":43,"execution":44,"privacy":46,"docs":48,"design":49},{"positive":38,"critical":39},0,1,{"positive":41,"critical":42},2,5,{"positive":41,"critical":41},{"positive":39,"critical":45},10,{"positive":39,"critical":47},8,{"positive":38,"critical":39},{"positive":38,"critical":38},[51,51,51,51,51,38,39,42,38,39,39,51,39,39,42,51,17,38,38,39,51,51,51,39,17,39,39,51,51,51,39,41,41,41,39,39,41,39,51,39],3,"This is the entire Firefox browser rendering to a \u003Ccanvas> element. Gecko, all UI components, and the Spidermonkey JS engine are all compiled and running in WebAssembly.\n\nHere are a few things you might find interesting:\n- This is fully end to end encrypted! We use the WISP protocol for TCP-over-websockets.\n- There is a novel WASM->JS JIT for experimental site speedup\n- This port cost over 25k in opus\u002Ffable tokens for debugging and JIT research\n\nThis was just a fun experiment to push the boundaries of WebAssembly. For a more usable \"browser in browser\" experience, we also built [Browser.js](ht",{"problem":54,"audience":60,"pricing":60,"motivation":61,"time_to_build":65,"stack":71,"openness":88,"stage":89,"team_size":90},{"value":55,"source":56,"evidence":57},"Demonstrates running a full browser engine inside WebAssembly to push WebAssembly boundaries","maker",[58],{"id":59},"post",null,{"value":62,"source":56,"evidence":63},"Fun experiment to push the boundaries of WebAssembly",[64],{"id":59},{"value":66,"source":56,"evidence":67},"A few days to get the engine running, with most effort on performance and stability",[68],{"id":69,"by":10,"text":70},"48927724","$25k of tokens, closer to 30 billion I believe. It only took a few days to actually get the engine up, the hard parts where most of the effort was spent was squeezing out…",[72,76,80,84],{"value":73,"source":56,"evidence":74},"WebAssembly",[75],{"id":59},{"value":77,"source":56,"evidence":78},"Gecko",[79],{"id":59},{"value":81,"source":56,"evidence":82},"SpiderMonkey",[83],{"id":59},{"value":85,"source":56,"evidence":86},"WISP protocol",[87],{"id":59},"unknown","launched","team",{"praise":92,"objections":116,"requests":168,"questions":186,"alternatives":215},[93,105],{"value":94,"source":95,"evidence":96},"Impressive that it works and performs well","commenter",[97,101],{"id":98,"by":99,"text":100},"48933317","devttyeu","Oh wow didn't expect this to be either possible or this perform so well. Also fascinating how small the wasm binary is. I made a Wasm port of FreeCad (also had a fairly popular…",{"id":102,"by":103,"text":104},"48929432","koolala","Worked in my Firefox on Steam Deck. I was amazed it could run YouTube.",{"value":106,"source":95,"evidence":107},"Interesting as a browser-in-browser and sandboxing idea",[108,112],{"id":109,"by":110,"text":111},"48927590","MajesticHobo2","Browser sandboxing is now fully solved.",{"id":113,"by":114,"text":115},"48928131","yjftsjthsd-h","In mean... It kinda feels like this is legitimately true? An attacker trying to do anything on a user's machine through this would have to find a Firefox vulnerability and a…",[117,136,146,157],{"value":118,"source":95,"evidence":119},"Does not work on mobile or in several Firefox setups",[120,124,128,132],{"id":121,"by":122,"text":123},"48928594","SpyCoder77","No mobile support",{"id":125,"by":126,"text":127},"48927474","som","... doesn't support Firefox mobile apparently :D",{"id":129,"by":130,"text":131},"48928195","brewmarche","Can’t get it running on Firefox 152.0.6 (aarch64), no extensions. ``` [chrome-demo] chrome assets ready [gecko] warning: unsupported syscall: __syscall_madvise [gecko] embed-xul:…",{"id":133,"by":134,"text":135},"48939774","thx67","Firefox ESR in Debian12, won't start. 140.12.0esr (64-bit) This is the entirety of the log message. ``` [chrome-demo] chrome assets + engine wasm ready [gecko] warning:…",{"value":137,"source":95,"evidence":138},"Single-process mode weakens Firefox sandboxing, so not safe as daily driver",[139,143],{"id":140,"by":141,"text":142},"48928344","rlmineing_dead","This is true but also this is probably also only half true. Sandboxing is not a fully solved issue since this 100% degrades firefox sandboxing since fission cant run and its…",{"id":144,"by":10,"text":145},"48929664","Unless you're running every origin in a different instance, I wouldn't use this as a daily driver, since a site would only need to find a renderer vuln to be able to read the…",{"value":147,"source":95,"evidence":148},"Routing traffic through a Puter server raises privacy concerns",[149,153],{"id":150,"by":151,"text":152},"48927983","zerof1l","All the network traffic from that browser is routed through a server. My IP inside that browser was in India and on CloudFlare network. I don’t particularly trust Puter. Why not…",{"id":154,"by":155,"text":156},"48930739","bawolff","> This is fully end to end encrypted! We use the WISP protocol for TCP-over-websockets. Umm, that doesn't sound right. By definition, i dont think you can be end2end encrypted in…",{"value":158,"source":95,"evidence":159},"Performance is slow and memory heavy",[160,164],{"id":161,"by":162,"text":163},"48932571","virajk_31","I checked internet speed inside and outside the wasm, and inside wasm its 10x slower, what could be the reason?",{"id":165,"by":166,"text":167},"48929550","compass_copium","Great, looking forward to needing 16GB RAM to watch youtube :(",[169,179],{"value":170,"source":95,"evidence":171},"Extension support, such as uBlock Origin",[172,176],{"id":173,"by":174,"text":175},"48927556","degamad","I'm so glad this exists, I've been considering doing something like this for a few months. I recently got a TV based on VIDAA os, a locked-down linux-based OS where everything is…",{"id":177,"by":10,"text":178},"48927591","We also plan on adding extension support to https:\u002F\u002Fgithub.com\u002FHeyPuter\u002Fbrowser.js soon, which should hopefully cover use cases like that as well without the full overhead",{"value":180,"source":95,"evidence":181},"Mobile support and working keyboard and touch input",[182],{"id":183,"by":184,"text":185},"48929166","rmac","on mobile chrome \u002F Android I can't get the following to work : - IME \u002F keyboard doesn't pop on any field - copy paste - scrolling with touch - ai side panel What works on mobile…",[187,204],{"value":188,"source":95,"evidence":189},"Whether the $25k figure is dollars or tokens, and what it was spent on",[190,193,197,200],{"id":191,"by":114,"text":192},"48928161",">This port cost over 25k in opus\u002Ffable tokens for debugging and JIT research > This was just a fun experiment to push the boundaries of WebAssembly I'm a huge fan of the project,…",{"id":194,"by":195,"text":196},"48928264","tiagod","Was it really $25k, or was it done though subscriptions with a reported cost of $25k? I'm on the openai $100 sub and frequently my codexbar will show $250 usage in a day. I think…",{"id":198,"by":141,"text":199},"48936685","I think it was worded badly it was 25k WORTH of API billed tokens, but only actually 1 claude max 5x plan, so it was more like 100 dollars",{"id":201,"by":202,"text":203},"48931240","voidUpdate","What are the $25k in tokens for? Does firefox's build system not allow building to wasm?",{"value":205,"source":95,"evidence":206},"What the practical use case is",[207,211],{"id":208,"by":209,"text":210},"48929719","pmarreck","Impressive and surprisingly performant, but what's the use-case? If anything, this is an ad for WASM!",{"id":212,"by":213,"text":214},"48928756","andai","The description mentions a similar project browser.js which apparently has some real use cases, what are they?",[216,220,228],{"value":217,"source":56,"evidence":218},"Browser.js",[219],{"id":59},{"value":221,"source":95,"evidence":222},"WebKit.js and WebkitWasm",[223,227],{"id":224,"by":225,"text":226},"48927625","azakai","Prior art: WebKit.js, the WebKit rendering engine ported to JS https:\u002F\u002Fgithub.com\u002Ftrevorlinton\u002Fwebkit.js\u002F",{"id":69,"by":10,"text":70},{"value":229,"source":95,"evidence":230},"Reynard browser for iOS",[231],{"id":232,"by":233,"text":234},"48929723","tech234a","Loosely related to porting the Firefox engine in unusual places: here is a project that ports Firefox's Gecko rendering engine to iOS as a sideloadable app (normally Apple only…",{"comments":42,"answered":51,"key":236},[237,240,241],{"id":238,"text":239},"48927491","Oh and for anyone asking, you can run firefox-wasm inside firefox-wasm inside firefox! I only got this to load once though since it gets pretty unstable at that level.",{"id":177,"text":178},{"id":144,"text":145},{"commenters":243,"max_depth":31,"maker_replies":42,"first_comment_mins":244,"lifespan_hours":32},72,33,[246,248,250,253,256,259,261,263,264,267,269,272,275,279,282,285,286,289,292,294,297,301,304,307,309,311,315,318,321,324,327,330,332,334,336,338,340,342,344,346,349,350,353,355,359,363,365,368,371,374,376,379,381,385,388,390,392,395,397,399,402,405,407,410,413,415,418,420,422,424,426,429,431,434,436,438,442,444,446,448,452,457,461,465,466,469,472,474,476,481,484,488,490,492,494,497,499,503,506,508,512,514,516,518,520,522,525,527,530,535,537,539,541,545,549,551,554,555,557,559,563,565,569,572,574,578],[191,38,51,247,114,38],"maker\u002Fneutral\u002Fnone",[194,38,51,249,195,38],"project\u002Fneutral\u002Fpricing",[251,38,38,252,141,38],"48929734","commenter\u002Fneutral\u002Fnone",[254,38,51,249,255,38],"48928275","smalltorch",[257,38,38,252,258,38],"48928314","rustyhancock",[260,38,51,249,114,38],"48928439",[262,38,51,249,255,38],"48929874",[198,38,51,249,141,38],[265,38,51,249,266,38],"48928469","dangoodmanUT",[268,38,38,252,213,38],"48928747",[270,38,38,252,271,38],"48929062","esafak",[273,38,51,249,274,38],"48929028","userbinator",[276,38,38,277,278,38],"48931005","other\u002Fneutral\u002Fnone","gertop",[280,38,38,252,281,38],"48931239","fulafel",[283,38,51,249,284,38],"48936538","jaakkoc",[232,39,38,277,233,38],[287,39,38,288,141,38],"48929740","other\u002Fpositive\u002Fnone",[290,39,38,288,291,38],"48929911","The_SamminAter",[238,41,38,293,10,39],"project\u002Fneutral\u002Fnone",[295,41,38,277,296,38],"48929735","sanex",[298,41,39,299,300,38],"48932141","project\u002Fcritical\u002Fperformance","csomar",[302,41,51,293,303,38],"48932652","preisschild",[305,51,38,277,306,38],"48929218","ksmithbaylor",[173,17,42,308,174,38],"project\u002Fpositive\u002Fidea",[177,17,38,310,10,39],"maker\u002Fneutral\u002Fidea",[312,17,38,313,314,38],"48927896","other\u002Fcritical\u002Fidea","shevy-java",[316,17,38,277,317,38],"48928001","quantummagic",[319,17,38,277,320,38],"48930716","Sabinus",[322,17,38,277,323,38],"48943268","BobbyTables2",[325,17,38,277,326,38],"48929111","mrtesthah",[328,17,39,299,329,38],"48932146","saidinesh5",[224,42,51,331,225,38],"project\u002Fneutral\u002Fidea",[129,33,39,333,130,38],"project\u002Fcritical\u002Fexecution",[335,33,38,252,141,38],"48928316",[337,33,38,252,130,38],"48928322",[339,33,38,252,141,38],"48928716",[109,31,51,341,110,38],"project\u002Fneutral\u002Fprivacy",[113,31,51,343,114,38],"project\u002Fmixed\u002Fprivacy",[140,31,39,345,141,38],"project\u002Fcritical\u002Fprivacy",[347,31,39,345,348,38],"48929263","Retr0id",[144,31,38,345,10,39],[351,31,39,345,352,38],"48930973","one33seven",[354,47,39,333,255,38],"48934205",[356,357,39,333,358,38],"48929262",9,"lxe",[360,357,42,361,362,38],"48929360","project\u002Fpositive\u002Fexecution","jagged-chisel",[102,357,42,364,103,38],"project\u002Fpositive\u002Fperformance",[366,357,51,367,141,38],"48936563","maker\u002Fneutral\u002Fperformance",[369,357,51,370,209,38],"48929703","project\u002Fneutral\u002Fexecution",[372,45,51,247,373,38],"48927638","sangeeth96",[69,45,38,375,10,39],"maker\u002Fneutral\u002Fpricing",[377,45,42,378,373,38],"48927811","maker\u002Fpositive\u002Fnone",[150,380,39,345,151,38],11,[382,380,42,383,384,38],"48928027","project\u002Fpositive\u002Fprivacy","ent101",[386,380,38,252,387,38],"48928292","gnabgib",[389,380,38,252,384,38],"48928543",[391,380,38,252,387,38],"48928618",[393,380,38,252,394,38],"48928686","peesem",[396,380,38,252,384,38],"48928782",[398,380,38,252,387,38],"48929010",[400,380,38,252,401,38],"48932510","RobMurray",[403,380,38,252,404,38],"48928034","kevincox",[406,380,51,341,141,38],"48928036",[408,380,39,409,348,38],"48928184","project\u002Fcritical\u002Fdocs",[411,380,51,412,384,38],"48928245","maker\u002Fneutral\u002Fdocs",[414,380,51,412,141,38],"48928285",[416,380,51,417,103,38],"48928667","project\u002Fneutral\u002Fdocs",[419,380,51,412,141,38],"48928742",[421,380,38,277,103,38],"48928650",[423,380,51,331,141,38],"48928767",[425,380,51,331,103,38],"48929448",[427,380,38,428,155,38],"48930755","commenter\u002Fneutral\u002Fprivacy",[430,380,38,252,103,38],"48931269",[432,380,38,277,433,38],"48932285","maxloh",[435,380,51,293,141,38],"48936265",[437,380,39,333,103,38],"48940398",[439,380,51,440,441,38],"48929266","project\u002Fmixed\u002Fperformance","mintflow",[98,443,42,364,99,38],12,[445,443,51,440,141,38],"48936528",[133,447,39,333,134,38],13,[449,450,39,333,451,38],"48940577",14,"pjsg",[453,454,51,455,456,38],"48928248",15,"project\u002Fmixed\u002Fexecution","simonw",[458,459,51,440,460,38],"48928798",16,"adamddev1",[462,463,39,345,464,38],"48929112",17,"EvanAnderson",[165,463,39,299,166,38],[467,463,39,468,141,38],"48929729","project\u002Fcritical\u002Fidea",[470,463,51,331,471,38],"48932095","lukan",[473,463,51,341,464,38],"48932809",[475,463,51,331,141,38],"48936383",[477,478,51,479,480,38],"48927370",18,"project\u002Fneutral\u002Fperformance","eqrion",[482,478,51,479,483,38],"48946319","dima00782",[485,486,38,277,487,38],"48927326",19,"throwaway2027",[489,486,38,277,141,38],"48927407",[208,491,39,468,209,38],20,[493,491,42,308,141,38],"48936588",[495,496,51,370,103,38],"48928683",21,[498,496,38,370,10,39],"48928759",[500,501,39,345,502,38],"48928684",22,"elmer2",[504,501,51,370,505,38],"48928876","haddr",[507,501,51,370,141,38],"48936359",[509,510,39,333,511,38],"48930698",23,"ksdme9",[161,513,39,299,162,38],24,[515,513,51,479,141,38],"48936292",[212,517,51,331,213,38],25,[201,519,51,249,202,38],26,[521,519,51,249,174,38],"48931288",[523,519,39,524,202,38],"48931301","project\u002Fcritical\u002Fpricing",[183,526,51,455,184,38],27,[528,34,38,277,529,38],"48932120","poulpy123",[531,532,51,533,534,38],"48948127",29,"project\u002Fneutral\u002Fdesign","sunhp",[154,536,39,345,155,38],30,[538,536,51,341,141,38],"48936339",[540,536,39,345,155,38],"48940238",[542,543,38,277,544,38],"48929618",31,"chews",[546,547,51,370,548,38],"48927853",32,"jedisct1",[550,547,51,370,141,38],"48928361",[552,547,39,333,553,38],"48931930","stuaxo",[125,244,39,333,126,38],[556,244,51,370,141,38],"48927518",[558,244,39,333,141,38],"48927621",[560,561,38,277,562,38],"48927334",34,"mdlxxv",[564,561,38,277,384,38],"48927404",[566,567,51,331,568,38],"48929526",35,"l1ng0",[121,570,39,571,122,38],36,"project\u002Fcritical\u002Fnone",[573,570,39,299,141,38],"48928788",[575,576,51,249,577,38],"48928923",37,"luciana1u",[579,576,38,580,103,38],"48929464","commenter\u002Fneutral\u002Fpricing",[],[583,588,593,597,602,607],{"id":584,"name":585,"points":586,"category":587},"48845049","18 Words",1160,"games",{"id":589,"name":590,"points":591,"category":592},"48842459","colibri",937,"ai",{"id":594,"name":595,"points":596,"category":587},"48896286","Super Dario",397,{"id":598,"name":599,"points":600,"category":601},"48875377","Ant",330,"languages",{"id":603,"name":604,"points":605,"category":606},"48883305","Juggler",280,"dev_tools",{"id":608,"name":609,"points":610,"category":606},"48892859","Clawk",226,false,"v2",{"id":614,"name":5,"line":5,"ai":611,"cat":19,"year":12,"points":13,"comments":14,"rec":28,"s":615,"top":17,"kw":616,"maker":10,"domain":9,"tier":18,"attempts":38,"strip":617,"url":8,"mix":618,"praise":94,"objection":118,"sub":20},48926939,-0.31,[23,24,25,26,27],"3333301501131153400133314113331222112131",[31,32,33,34],1794036705161]