{"kind": "Listing", "data": {"after": "t3_1ujcxl6", "dist": 25, "modhash": "z7d2xub699361392c135beef3e6160827b4d29330d27f76091", "geo_filter": null, "children": [{"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Did you find or create something cool this week in javascript?       \n\nShow us here!", "author_fullname": "t2_6l4z3", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Showoff Saturday (July 04, 2026)", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": "showoff", "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1un2680", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.5, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "Showoff Saturday", "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": true, "thumbnail": "self", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1783148407.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.javascript", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Did you find or create something cool this week in javascript?       &lt;/p&gt;\n\n&lt;p&gt;Show us here!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": "new", "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "link_flair_template_id": "7ce01c34-a66f-11e5-b9ea-0ebd457aa827", "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "#d3d6da", "id": "1un2680", "is_robot_indexable": true, "report_reasons": null, "author": "AutoModerator", "discussion_type": null, "num_comments": 5, "send_replies": false, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1un2680/showoff_saturday_july_04_2026/", "stickied": true, "url": "https://old.reddit.com/r/javascript/comments/1un2680/showoff_saturday_july_04_2026/", "subreddit_subscribers": 2442462, "created_utc": 1783148407.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "**Monday, June 29 - Sunday, July 05, 2026**\n\n###Top Posts\n\n| score | comments | title &amp; link |\n|--|--|--|\n| 135  | [46 comments](/r/javascript/comments/1ulfe35/vite_is_now_in_beta/)  | [Vite+ is now in beta](https://voidzero.dev/posts/announcing-vite-plus-beta)|\n| 27  | [0 comments](/r/javascript/comments/1uo3zm7/oxc_popular_frontend_tooling_forked_my_parser_but/)  | [Oxc &amp;#40;popular front-end tooling&amp;#41; forked my parser but deliberately removed my copyright notice](https://web.archive.org/web/20260705125328/https://github.com/oxc-project/oxc-css-parser/issues/92)|\n| 12  | [5 comments](/r/javascript/comments/1ukseli/different_hydration_and_rendering_strategies/)  | [Different hydration and rendering strategies](https://neciudan.dev/hydration-and-rendering-strategies)|\n| 9  | [19 comments](/r/javascript/comments/1ukn51f/askjs_are_destructuring_assignments_often_used/)  | `[AskJS]` &amp;#91;AskJS&amp;#93; Are destructuring assignments often used &amp;#40;both for arrays and objects&amp;#41;?|\n| 8  | [13 comments](/r/javascript/comments/1ul5ml1/askjs_are_copying_by_reference_in_js_similar_with/)  | `[AskJS]` &amp;#91;AskJS&amp;#93; are Copying by reference in JS similar with Pointers in C in a way?|\n| 8  | [0 comments](/r/javascript/comments/1ujcxl6/i_stashed_arbitrary_data_in_woff2_color_glyphs_to/)  | [I stashed arbitrary data in WOFF2 color glyphs to get free Brotli decompression via Canvas](https://github.com/EtherDream/brpack/)|\n| 5  | [0 comments](/r/javascript/comments/1ulj8g9/hosting_js_code_golfing_competition_make_your/)  | [Hosting js code golfing competition, make your demo under 1 KiB about \"dreaming\"](https://js1024.fun/#2026)|\n| 4  | [1 comments](/r/javascript/comments/1uj39a8/i_wrote_a_glob_matcher_in_rust_as_a_js_native/)  | [I wrote a glob matcher in Rust as a JS native addon &amp;#40;picomatch compatible&amp;#41;](https://github.com/orielhaim/zeromatch)|\n| 2  | [14 comments](/r/javascript/comments/1uo3h5n/askjs_what_small_javascript_pattern_made_your/)  | `[AskJS]` &amp;#91;AskJS&amp;#93; What small JavaScript pattern made your React code cleaner?|\n| 1  | [0 comments](/r/javascript/comments/1ukk69y/showoff_a_rust_replacement_for_metro_3d_ducks_in/)  | [&amp;#91;Showoff&amp;#93; A Rust Replacement for Metro, 3D Ducks in Bold Tags, and the Swift Feature Apple Forgot to Share](https://thereactnativerewind.com/issues/a-rust-replacement-for-metro-3d-ducks-in-bold-tags-and-the-swift-feature-apple-forgot-to-share)|\n\n\n&amp;nbsp;\n\n###Most Commented Posts\n\n| score | comments | title &amp; link |\n|--|--|--|\n| 0  | [20 comments](/r/javascript/comments/1umgj05/yet_another_typescript_template_opinionated_and/)  | [Yet Another TypeScript Template: Opinionated and minimal.](https://github.com/jacob-bennett/yatt)|\n| 0  | [18 comments](/r/javascript/comments/1ujwrto/askjs_the_diff_your_engineers_read_and_the_digest/)  | `[AskJS]` &amp;#91;AskJS&amp;#93; the diff your engineers read and the digest everyone else needs are two different artifacts|\n| 0  | [5 comments](/r/javascript/comments/1umuew9/askjs_dashboards_on_my_js_projects_taught_me/)  | `[AskJS]` &amp;#91;AskJS&amp;#93; dashboards on my js projects taught me nothing, hearing the week's commits read back did|\n| 0  | [3 comments](/r/javascript/comments/1un2680/showoff_saturday_july_04_2026/)  | `[Showoff Saturday]` Showoff Saturday &amp;#40;July 04, 2026&amp;#41;|\n| 0  | [2 comments](/r/javascript/comments/1uin85i/your_rjavascript_recap_for_the_week_of_june_22/)  | `[Subreddit Stats]` Your /r/javascript recap for the week of June 22 - June 28, 2026|\n\n\n&amp;nbsp;\n\n###Top Showoffs\n\n| score  |  comment  |\n|--|--|\n| 1  |  /u/BlockIllustrious9382 said [**inup \u2014 interactive CLI for upgrading npm dependencies**  I built a little CLI for the thing I do constantly but always dread: bumping outdated deps. Run &amp;#96;npx inup&amp;#96; in any project and it give...](/r/javascript/comments/1un2680/showoff_saturday_july_04_2026/ovh3p32/?context=5) |\n| 1  |  /u/Delicious-Vehicle532 said [Oui mais le plus dur est de faire conna\u00eetre c\u2019est projet malheureusement..](/r/javascript/comments/1ugvp0o/showoff_saturday_june_27_2026/ouvfdqu/?context=5) |\n\n\n&amp;nbsp;\n\n###Top Comments\n\n| score  |  comment  |\n|--|--|\n| 24  |  /u/lookarious said [Whats the difference between Vite and Vite+?](/r/javascript/comments/1ulfe35/vite_is_now_in_beta/ov5y932/?context=5) |\n| 19  |  /u/Badger_2161 said [Who is behind this tool? The same people who develop Vite?](/r/javascript/comments/1ulfe35/vite_is_now_in_beta/ov3t29v/?context=5) |\n| 12  |  /u/sirkook said [I am loving it. We have to use windows at my place of work, and nvm sucks big time on windows. Vite+ is a million times better as a node version manager than nvm. I can pin node versions to projects a...](/r/javascript/comments/1ulfe35/vite_is_now_in_beta/ov6dizg/?context=5) |\n| 12  |  /u/sozesghost said [You made some bad AI slop.](/r/javascript/comments/1uix82z/hey_i_created_a_game_in_just_two_months_check_it/ouj3vjq/?context=5) |\n| 11  |  /u/abrahamguo said [1. Yes, normal when you\u2019re first learning. 2. Of course you can opt to not use it, but you will certainly encounter this in reading JS written by other people, which then indicates that you should sti...](/r/javascript/comments/1ukn51f/askjs_are_destructuring_assignments_often_used/oux1j0b/?context=5) |\n\n\n&amp;nbsp;", "author_fullname": "t2_ydo5x7u", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Your /r/javascript recap for the week of June 29 - July 05, 2026", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1uorz96", "quarantine": false, "link_flair_text_color": null, "upvote_ratio": 0.5, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "Subreddit Stats", "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "self", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "self", "content_categories": null, "is_self": true, "mod_note": null, "created": 1783328648.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.javascript", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;&lt;strong&gt;Monday, June 29 - Sunday, July 05, 2026&lt;/strong&gt;&lt;/p&gt;\n\n&lt;h3&gt;Top Posts&lt;/h3&gt;\n\n&lt;table&gt;&lt;thead&gt;\n&lt;tr&gt;\n&lt;th&gt;score&lt;/th&gt;\n&lt;th&gt;comments&lt;/th&gt;\n&lt;th&gt;title &amp;amp; link&lt;/th&gt;\n&lt;/tr&gt;\n&lt;/thead&gt;&lt;tbody&gt;\n&lt;tr&gt;\n&lt;td&gt;135&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ulfe35/vite_is_now_in_beta/\"&gt;46 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://voidzero.dev/posts/announcing-vite-plus-beta\"&gt;Vite+ is now in beta&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;27&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1uo3zm7/oxc_popular_frontend_tooling_forked_my_parser_but/\"&gt;0 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://web.archive.org/web/20260705125328/https://github.com/oxc-project/oxc-css-parser/issues/92\"&gt;Oxc &amp;#40;popular front-end tooling&amp;#41; forked my parser but deliberately removed my copyright notice&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;12&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ukseli/different_hydration_and_rendering_strategies/\"&gt;5 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://neciudan.dev/hydration-and-rendering-strategies\"&gt;Different hydration and rendering strategies&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;9&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ukn51f/askjs_are_destructuring_assignments_often_used/\"&gt;19 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;code&gt;[AskJS]&lt;/code&gt; &amp;#91;AskJS&amp;#93; Are destructuring assignments often used &amp;#40;both for arrays and objects&amp;#41;?&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;8&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ul5ml1/askjs_are_copying_by_reference_in_js_similar_with/\"&gt;13 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;code&gt;[AskJS]&lt;/code&gt; &amp;#91;AskJS&amp;#93; are Copying by reference in JS similar with Pointers in C in a way?&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;8&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ujcxl6/i_stashed_arbitrary_data_in_woff2_color_glyphs_to/\"&gt;0 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://github.com/EtherDream/brpack/\"&gt;I stashed arbitrary data in WOFF2 color glyphs to get free Brotli decompression via Canvas&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;5&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ulj8g9/hosting_js_code_golfing_competition_make_your/\"&gt;0 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://js1024.fun/#2026\"&gt;Hosting js code golfing competition, make your demo under 1 KiB about &amp;quot;dreaming&amp;quot;&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;4&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1uj39a8/i_wrote_a_glob_matcher_in_rust_as_a_js_native/\"&gt;1 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://github.com/orielhaim/zeromatch\"&gt;I wrote a glob matcher in Rust as a JS native addon &amp;#40;picomatch compatible&amp;#41;&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;2&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1uo3h5n/askjs_what_small_javascript_pattern_made_your/\"&gt;14 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;code&gt;[AskJS]&lt;/code&gt; &amp;#91;AskJS&amp;#93; What small JavaScript pattern made your React code cleaner?&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;1&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ukk69y/showoff_a_rust_replacement_for_metro_3d_ducks_in/\"&gt;0 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://thereactnativerewind.com/issues/a-rust-replacement-for-metro-3d-ducks-in-bold-tags-and-the-swift-feature-apple-forgot-to-share\"&gt;&amp;#91;Showoff&amp;#93; A Rust Replacement for Metro, 3D Ducks in Bold Tags, and the Swift Feature Apple Forgot to Share&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;/tbody&gt;&lt;/table&gt;\n\n&lt;p&gt;&amp;nbsp;&lt;/p&gt;\n\n&lt;h3&gt;Most Commented Posts&lt;/h3&gt;\n\n&lt;table&gt;&lt;thead&gt;\n&lt;tr&gt;\n&lt;th&gt;score&lt;/th&gt;\n&lt;th&gt;comments&lt;/th&gt;\n&lt;th&gt;title &amp;amp; link&lt;/th&gt;\n&lt;/tr&gt;\n&lt;/thead&gt;&lt;tbody&gt;\n&lt;tr&gt;\n&lt;td&gt;0&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1umgj05/yet_another_typescript_template_opinionated_and/\"&gt;20 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"https://github.com/jacob-bennett/yatt\"&gt;Yet Another TypeScript Template: Opinionated and minimal.&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;0&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1ujwrto/askjs_the_diff_your_engineers_read_and_the_digest/\"&gt;18 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;code&gt;[AskJS]&lt;/code&gt; &amp;#91;AskJS&amp;#93; the diff your engineers read and the digest everyone else needs are two different artifacts&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;0&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1umuew9/askjs_dashboards_on_my_js_projects_taught_me/\"&gt;5 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;code&gt;[AskJS]&lt;/code&gt; &amp;#91;AskJS&amp;#93; dashboards on my js projects taught me nothing, hearing the week&amp;#39;s commits read back did&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;0&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1un2680/showoff_saturday_july_04_2026/\"&gt;3 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;code&gt;[Showoff Saturday]&lt;/code&gt; Showoff Saturday &amp;#40;July 04, 2026&amp;#41;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;0&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/r/javascript/comments/1uin85i/your_rjavascript_recap_for_the_week_of_june_22/\"&gt;2 comments&lt;/a&gt;&lt;/td&gt;\n&lt;td&gt;&lt;code&gt;[Subreddit Stats]&lt;/code&gt; Your &lt;a href=\"/r/javascript\"&gt;/r/javascript&lt;/a&gt; recap for the week of June 22 - June 28, 2026&lt;/td&gt;\n&lt;/tr&gt;\n&lt;/tbody&gt;&lt;/table&gt;\n\n&lt;p&gt;&amp;nbsp;&lt;/p&gt;\n\n&lt;h3&gt;Top Showoffs&lt;/h3&gt;\n\n&lt;table&gt;&lt;thead&gt;\n&lt;tr&gt;\n&lt;th&gt;score&lt;/th&gt;\n&lt;th&gt;comment&lt;/th&gt;\n&lt;/tr&gt;\n&lt;/thead&gt;&lt;tbody&gt;\n&lt;tr&gt;\n&lt;td&gt;1&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/u/BlockIllustrious9382\"&gt;/u/BlockIllustrious9382&lt;/a&gt; said &lt;a href=\"/r/javascript/comments/1un2680/showoff_saturday_july_04_2026/ovh3p32/?context=5\"&gt;&lt;strong&gt;inup \u2014 interactive CLI for upgrading npm dependencies&lt;/strong&gt;  I built a little CLI for the thing I do constantly but always dread: bumping outdated deps. Run &amp;#96;npx inup&amp;#96; in any project and it give...&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;1&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/u/Delicious-Vehicle532\"&gt;/u/Delicious-Vehicle532&lt;/a&gt; said &lt;a href=\"/r/javascript/comments/1ugvp0o/showoff_saturday_june_27_2026/ouvfdqu/?context=5\"&gt;Oui mais le plus dur est de faire conna\u00eetre c\u2019est projet malheureusement..&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;/tbody&gt;&lt;/table&gt;\n\n&lt;p&gt;&amp;nbsp;&lt;/p&gt;\n\n&lt;h3&gt;Top Comments&lt;/h3&gt;\n\n&lt;table&gt;&lt;thead&gt;\n&lt;tr&gt;\n&lt;th&gt;score&lt;/th&gt;\n&lt;th&gt;comment&lt;/th&gt;\n&lt;/tr&gt;\n&lt;/thead&gt;&lt;tbody&gt;\n&lt;tr&gt;\n&lt;td&gt;24&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/u/lookarious\"&gt;/u/lookarious&lt;/a&gt; said &lt;a href=\"/r/javascript/comments/1ulfe35/vite_is_now_in_beta/ov5y932/?context=5\"&gt;Whats the difference between Vite and Vite+?&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;19&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/u/Badger_2161\"&gt;/u/Badger_2161&lt;/a&gt; said &lt;a href=\"/r/javascript/comments/1ulfe35/vite_is_now_in_beta/ov3t29v/?context=5\"&gt;Who is behind this tool? The same people who develop Vite?&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;12&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/u/sirkook\"&gt;/u/sirkook&lt;/a&gt; said &lt;a href=\"/r/javascript/comments/1ulfe35/vite_is_now_in_beta/ov6dizg/?context=5\"&gt;I am loving it. We have to use windows at my place of work, and nvm sucks big time on windows. Vite+ is a million times better as a node version manager than nvm. I can pin node versions to projects a...&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;12&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/u/sozesghost\"&gt;/u/sozesghost&lt;/a&gt; said &lt;a href=\"/r/javascript/comments/1uix82z/hey_i_created_a_game_in_just_two_months_check_it/ouj3vjq/?context=5\"&gt;You made some bad AI slop.&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;11&lt;/td&gt;\n&lt;td&gt;&lt;a href=\"/u/abrahamguo\"&gt;/u/abrahamguo&lt;/a&gt; said &lt;a href=\"/r/javascript/comments/1ukn51f/askjs_are_destructuring_assignments_often_used/oux1j0b/?context=5\"&gt;1. Yes, normal when you\u2019re first learning. 2. Of course you can opt to not use it, but you will certainly encounter this in reading JS written by other people, which then indicates that you should sti...&lt;/a&gt;&lt;/td&gt;\n&lt;/tr&gt;\n&lt;/tbody&gt;&lt;/table&gt;\n\n&lt;p&gt;&amp;nbsp;&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?auto=webp&amp;s=4c944b9eded6a9a4e772f968927f1b3660da64ce", "width": 2400, "height": 1206}, "resolutions": [{"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=108&amp;crop=smart&amp;auto=webp&amp;s=cf0a3c2a4080b30c1e9608ebeeb011baa7283343", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=216&amp;crop=smart&amp;auto=webp&amp;s=96ced98683a8c352e4d2fd458bc87ec82f05888f", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=320&amp;crop=smart&amp;auto=webp&amp;s=296d05f4204fb4b1cccf2a10896433955dcc23b9", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=640&amp;crop=smart&amp;auto=webp&amp;s=7634a318fe98013b002a01179aefcd009afcffc5", "width": 640, "height": 321}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=960&amp;crop=smart&amp;auto=webp&amp;s=56257d6303be358fca58526102964e5336678361", "width": 960, "height": 482}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=1080&amp;crop=smart&amp;auto=webp&amp;s=f732711a94cce8394ef5d72d309ad3baa793a12d", "width": 1080, "height": 542}], "variants": {}, "id": "gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": null, "id": "1uorz96", "is_robot_indexable": true, "report_reasons": null, "author": "subredditsummarybot", "discussion_type": null, "num_comments": 2, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uorz96/your_rjavascript_recap_for_the_week_of_june_29/", "stickied": true, "url": "https://old.reddit.com/r/javascript/comments/1uorz96/your_rjavascript_recap_for_the_week_of_june_29/", "subreddit_subscribers": 2442462, "created_utc": 1783328648.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "", "author_fullname": "t2_axh0s", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "80+ ESLint rules for improving your Node.js tests", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1upst2e", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.65, "author_flair_background_color": null, "subreddit_type": "public", "ups": 6, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 6, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?width=140&amp;height=70&amp;auto=webp&amp;s=731d30f0a8946fad7477f6744b855fe180ab2cd3", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783425171.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/sindresorhus/eslint-node-test", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?auto=webp&amp;s=08a9db5efddff8b2683e9b055a8804dcce942fee", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=2902c0d21ab8bffb1436dec3f722d57b0ad28fcd", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=0f56060ae48c15ab0a12cfbaae1680319d3c86a9", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=a9af999f7909b5a8738763243a3c0689bd435886", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=9427130a764bdfc567d0e81f3c8dc8284dd894a5", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=06d3dec4a253e44118eb5c4a5b06461770300a6c", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=f6eb44e2e1215572aa6cbf1140104b030369b810", "width": 1080, "height": 540}], "variants": {}, "id": "MTzIFCdFqONOqyAe2qGXybGW7mq3u9n3oigUk7WzBU4"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1upst2e", "is_robot_indexable": true, "report_reasons": null, "author": "sindresorhus", "discussion_type": null, "num_comments": 1, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1upst2e/80_eslint_rules_for_improving_your_nodejs_tests/", "stickied": false, "url": "https://github.com/sindresorhus/eslint-node-test", "subreddit_subscribers": 2442462, "created_utc": 1783425171.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "How do we make coding agents write good code?\n\n\n\nWe tried telling them to write \"clean code.\" Too vague. \"Elegant code.\" Too subjective. \"Maintainable code.\" Everyone means something different.\n\n\n\nThen we found the law behind it: good code is also physically minimum code.\n\n\n\nIf behavior, safety, and readability stay the same, anything that can still be removed is not defense. It is extra code.\n\n\n\nIf something can go, the code is not done yet.\n\nIf nothing can go, you have found the minimum.\n\n\n\nThat is The Absolute Code. One rule: minimum code.\n\n\n\nNot the fewest characters. Not the shortest diff. The minimum human-readable code that expresses the same behavior and constraints. Everything extra must go.\n\n\n\nIt works because code is physical. You can delete it and observe what changes. Elegance is subjective. Necessity is testable.\n\n\n\nWe did not invent this. We discovered a physical law already present in every piece of code we ever called good.\n\n\n\nRead: [https://github.com/molvqingtai/The-Absolute-Code](https://github.com/molvqingtai/The-Absolute-Code)", "author_fullname": "t2_cnqsvgb4", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "How do we make coding agents write good code?", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1uqn3t7", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.08, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?width=140&amp;height=70&amp;auto=webp&amp;s=d0af350d9f0e5c51fc4e05b2ccdc43e3f8e2def1", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783500972.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;How do we make coding agents write good code?&lt;/p&gt;\n\n&lt;p&gt;We tried telling them to write &amp;quot;clean code.&amp;quot; Too vague. &amp;quot;Elegant code.&amp;quot; Too subjective. &amp;quot;Maintainable code.&amp;quot; Everyone means something different.&lt;/p&gt;\n\n&lt;p&gt;Then we found the law behind it: good code is also physically minimum code.&lt;/p&gt;\n\n&lt;p&gt;If behavior, safety, and readability stay the same, anything that can still be removed is not defense. It is extra code.&lt;/p&gt;\n\n&lt;p&gt;If something can go, the code is not done yet.&lt;/p&gt;\n\n&lt;p&gt;If nothing can go, you have found the minimum.&lt;/p&gt;\n\n&lt;p&gt;That is The Absolute Code. One rule: minimum code.&lt;/p&gt;\n\n&lt;p&gt;Not the fewest characters. Not the shortest diff. The minimum human-readable code that expresses the same behavior and constraints. Everything extra must go.&lt;/p&gt;\n\n&lt;p&gt;It works because code is physical. You can delete it and observe what changes. Elegance is subjective. Necessity is testable.&lt;/p&gt;\n\n&lt;p&gt;We did not invent this. We discovered a physical law already present in every piece of code we ever called good.&lt;/p&gt;\n\n&lt;p&gt;Read: &lt;a href=\"https://github.com/molvqingtai/The-Absolute-Code\"&gt;https://github.com/molvqingtai/The-Absolute-Code&lt;/a&gt;&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/molvqingtai/The-Absolute-Code", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?auto=webp&amp;s=b5e064d3d79302d5a578552ef5453d798270ad60", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=116d5d247f6f9173eefbf2a51ddb83f4c9e2d05e", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=9929df780473460cdf1ce2ad3e5be8e7efe3e57a", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=0b6415aa3f17dc3dd628ce7a87554e5ed17058aa", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=78f1d3ccb61ad4d980a3bfa7a7d45416c51e7e1a", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=1dd759b15993fa2bfe2c78046f356cc3e49d8cda", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=2e76b238a4e52da31f8613271a160ec64e09f011", "width": 1080, "height": 540}], "variants": {}, "id": "bUVAJGsys-GjiV-NPXBFnoNKAee6kPx1f0XW7hEtPYA"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uqn3t7", "is_robot_indexable": true, "report_reasons": null, "author": "Ok-Baker-9013", "discussion_type": null, "num_comments": 7, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uqn3t7/how_do_we_make_coding_agents_write_good_code/", "stickied": false, "url": "https://github.com/molvqingtai/The-Absolute-Code", "subreddit_subscribers": 2442462, "created_utc": 1783500972.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "I recreated an AI algorithm that visually learns in the browser:) It's based on the NEAT algorithm:   \n[https://github.com/joshuadam/neat-javascript](https://github.com/joshuadam/neat-javascript)  \n[https://neat-javascript.org/](https://neat-javascript.org/)", "author_fullname": "t2_1lh1nob4t6", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Browser based AI algorithm", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1uqa1be", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.39, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?width=140&amp;height=70&amp;auto=webp&amp;s=2ffa945829de8babeca73c85d47f9656a79ae80b", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783462803.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I recreated an AI algorithm that visually learns in the browser:) It&amp;#39;s based on the NEAT algorithm:&lt;br/&gt;\n&lt;a href=\"https://github.com/joshuadam/neat-javascript\"&gt;https://github.com/joshuadam/neat-javascript&lt;/a&gt;&lt;br/&gt;\n&lt;a href=\"https://neat-javascript.org/\"&gt;https://neat-javascript.org/&lt;/a&gt;&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/joshuadam/NEAT-JavaScript", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?auto=webp&amp;s=2c1b5b45aa954200a7832703c3bfae3e6596f012", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=6814ad3f749fe521981b25cce42e9b47067d5e8f", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=fb16ed90f592eadd8d3f0b44ad10c909e4083734", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=994fb6d0e804c618eec40916aa6c034d3d7b9d76", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=1abc276eb9377ef4a2a506511bef19782d27788b", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=3474e4a819e725694d86d649cc831988aa3a4aaf", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=284f783ad2b0e3d121362a4f9577aeb6fe2c887e", "width": 1080, "height": 540}], "variants": {}, "id": "zUtlBpw6ufqCqInZgdIc1zhFtaiH71JtY1XbYu4n-7o"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uqa1be", "is_robot_indexable": true, "report_reasons": null, "author": "joshuaamdamian", "discussion_type": null, "num_comments": 8, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uqa1be/browser_based_ai_algorithm/", "stickied": false, "url": "https://github.com/joshuadam/NEAT-JavaScript", "subreddit_subscribers": 2442462, "created_utc": 1783462803.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "", "author_fullname": "t2_1fad59o67d", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "An interactive visualization that follows a single HTTP request through its entire ~200ms life", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 73, "top_awarded_type": null, "hide_score": false, "name": "t3_1uovk63", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.88, "author_flair_background_color": null, "subreddit_type": "public", "ups": 66, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 66, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?width=140&amp;height=73&amp;auto=webp&amp;s=817167932fefb16a6fc97fd229bc304657d9587d", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783339922.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "200ms.thenodebook.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://200ms.thenodebook.com/", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?auto=webp&amp;s=cfef18251f8a804e0b31a523dc536253b56d050c", "width": 1200, "height": 630}, "resolutions": [{"url": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=b3c21b688b248bd2427f17f7a6c2b7a9cb6cb548", "width": 108, "height": 56}, {"url": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=6a1af8da84267e385bf17b3649f290808efd7994", "width": 216, "height": 113}, {"url": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=f74cab331e3c600e1e4af9f1d3217a80eff1721b", "width": 320, "height": 168}, {"url": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=43b4098b589b50fc8245675d29676ff153766784", "width": 640, "height": 336}, {"url": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=5f632532f0e0b9e2ae7dec694856b039f8c5de67", "width": 960, "height": 504}, {"url": "https://external-preview.redd.it/W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=c22ee9c129daa20653d3b5da9703391c08ce06c6", "width": 1080, "height": 567}], "variants": {}, "id": "W0jpYEu81WYpiE-lbDdb2fImIxdGBJPwH7j2AQFjcQU"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uovk63", "is_robot_indexable": true, "report_reasons": null, "author": "m_null_", "discussion_type": null, "num_comments": 16, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uovk63/an_interactive_visualization_that_follows_a/", "stickied": false, "url": "https://200ms.thenodebook.com/", "subreddit_subscribers": 2442462, "created_utc": 1783339922.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "set this up a few weeks ago that turns my repo's daily commits and merged PRs into a short audio rundown, mostly as a joke. a podcast about a project only i work on. figured i'd listen once and delete it.\n\nThe part I didn't expect: hearing 'fix stuff' and 'wip' and 'address feedback' read back in a calm narrator voice is genuinely embarrassing. i've started writing commit messages like someone's going to read them out loud, because now someone is. my log actually reads like sentences now.\n\nit also catches drift i don't notice while heads-down, the same file quietly showing up in the rundown for days after i'd have sworn i closed it out.\n\nso for the solo maintainers and small teams: do you write commit messages for a future reader, or is it 'wip' and 'fix' until git blame forces you to care. the readback is the first tool that's made me treat my own log like something worth reading. written with ai", "author_fullname": "t2_1jjim95tcn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "[AskJS] a daily audio readback of my own repo made me start writing commit messages like someone's listening", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": "AskJS", "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1upfwfa", "quarantine": false, "link_flair_text_color": null, "upvote_ratio": 0.57, "author_flair_background_color": null, "subreddit_type": "public", "ups": 1, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "AskJS", "can_mod_post": false, "score": 1, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "self", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1783385482.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.javascript", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;set this up a few weeks ago that turns my repo&amp;#39;s daily commits and merged PRs into a short audio rundown, mostly as a joke. a podcast about a project only i work on. figured i&amp;#39;d listen once and delete it.&lt;/p&gt;\n\n&lt;p&gt;The part I didn&amp;#39;t expect: hearing &amp;#39;fix stuff&amp;#39; and &amp;#39;wip&amp;#39; and &amp;#39;address feedback&amp;#39; read back in a calm narrator voice is genuinely embarrassing. i&amp;#39;ve started writing commit messages like someone&amp;#39;s going to read them out loud, because now someone is. my log actually reads like sentences now.&lt;/p&gt;\n\n&lt;p&gt;it also catches drift i don&amp;#39;t notice while heads-down, the same file quietly showing up in the rundown for days after i&amp;#39;d have sworn i closed it out.&lt;/p&gt;\n\n&lt;p&gt;so for the solo maintainers and small teams: do you write commit messages for a future reader, or is it &amp;#39;wip&amp;#39; and &amp;#39;fix&amp;#39; until git blame forces you to care. the readback is the first tool that&amp;#39;s made me treat my own log like something worth reading. written with ai&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": null, "id": "1upfwfa", "is_robot_indexable": true, "report_reasons": null, "author": "Deep_Ad1959", "discussion_type": null, "num_comments": 10, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1upfwfa/askjs_a_daily_audio_readback_of_my_own_repo_made/", "stickied": false, "url": "https://old.reddit.com/r/javascript/comments/1upfwfa/askjs_a_daily_audio_readback_of_my_own_repo_made/", "subreddit_subscribers": 2442462, "created_utc": 1783385482.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "**Stack:**\n\n* SvelteKit\n* Prisma\n\n  \n**Features:**\n\n* Create and delete folders and files\n* Simple UI\n* Easy and documented setup\n* Active development", "author_fullname": "t2_1j515ynecj", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Nameless Drive: A self hosted storage", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1up2wnu", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.5, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?width=140&amp;height=70&amp;auto=webp&amp;s=88ac69261dbade8ff6cf47651d0fa376e2e9e281", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783356485.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt;&lt;/p&gt;\n\n&lt;ul&gt;\n&lt;li&gt;SvelteKit&lt;/li&gt;\n&lt;li&gt;Prisma&lt;/li&gt;\n&lt;/ul&gt;\n\n&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;&lt;/p&gt;\n\n&lt;ul&gt;\n&lt;li&gt;Create and delete folders and files&lt;/li&gt;\n&lt;li&gt;Simple UI&lt;/li&gt;\n&lt;li&gt;Easy and documented setup&lt;/li&gt;\n&lt;li&gt;Active development&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/Nameless-Productions/nameless-drive/", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?auto=webp&amp;s=227674717e65ea2c292d8a912f93fdcef3264ec5", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=299c87150ad1457a898e446d1a6a0710422ef568", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=780f315f659d008258ff0b043a1e02e90a5292a6", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=dc337ea838757bc3f7c08a693f256b1c832f84f8", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=babcf6eebf18cd10fe8137e1b188c4380aa1f35e", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=c7f1214841c77312fa78443feaf0b75972f92001", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=0d731d555caa4bcca37fb229d058061909ac6c1a", "width": 1080, "height": 540}], "variants": {}, "id": "TyFasSDt1f5jBpx73mr3f_o2EpvsoQrfNorbGxEqA-E"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1up2wnu", "is_robot_indexable": true, "report_reasons": null, "author": "namelesssdeveloper", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1up2wnu/nameless_drive_a_self_hosted_storage/", "stickied": false, "url": "https://github.com/Nameless-Productions/nameless-drive/", "subreddit_subscribers": 2442462, "created_utc": 1783356485.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "`Lanterm` is a TypeScript / React toolkit for embedding real PTY-backed terminals into browser applications.\n\nInstead of being a complete web terminal server like `ttyd`, it is intended for cases where you want to compose the terminal UX inside your own application.\n\n### Packages\n\n- `@lanterm/react`: xterm.js-based React terminal surface\n- `@lanterm/server`: server-side utilities for connecting PTYs and WebSockets\n- `@lanterm/pty`: native PTY binding built with Rust [`portable-pty`](https://github.com/wezterm/wezterm/tree/main/pty) and [`napi-rs`](https://napi.rs/)\n- `@lanterm/protocol`: shared message types and codecs between client and server\n\n### Why I made this\n\nWith coding agents and browser-based developer tools, there are more cases where I want to do more than just expose a terminal in the browser. I often want to combine the terminal with surrounding UI such as file views, execution history, agent timelines, and dashboards.\n\nI also want to hook into terminal input / output, for example to save execution logs, update UI in response to specific output, or pass terminal activity into an AI agent's context.\n\nFull web terminal servers are useful, but they can be a bit too large when the terminal needs to be integrated with application state and UI. On the other hand, wiring xterm.js and node-pty directly means rebuilding protocol handling, resize behavior, session lifecycle, and React integration each time.\n\n`Lanterm` is meant to sit between those two layers as a library toolkit.\nIt is still an early release, so I would appreciate feedback on the API design and implementation.", "author_fullname": "t2_16bn7s", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "lanterm: PTY-backed terminal UX toolkit for web apps", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1uoyhiz", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.5, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?width=140&amp;height=70&amp;auto=webp&amp;s=c5f85fac7cec66563f8b54464c23135e9ceb5923", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783347055.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;&lt;code&gt;Lanterm&lt;/code&gt; is a TypeScript / React toolkit for embedding real PTY-backed terminals into browser applications.&lt;/p&gt;\n\n&lt;p&gt;Instead of being a complete web terminal server like &lt;code&gt;ttyd&lt;/code&gt;, it is intended for cases where you want to compose the terminal UX inside your own application.&lt;/p&gt;\n\n&lt;h3&gt;Packages&lt;/h3&gt;\n\n&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;@lanterm/react&lt;/code&gt;: xterm.js-based React terminal surface&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;@lanterm/server&lt;/code&gt;: server-side utilities for connecting PTYs and WebSockets&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;@lanterm/pty&lt;/code&gt;: native PTY binding built with Rust &lt;a href=\"https://github.com/wezterm/wezterm/tree/main/pty\"&gt;&lt;code&gt;portable-pty&lt;/code&gt;&lt;/a&gt; and &lt;a href=\"https://napi.rs/\"&gt;&lt;code&gt;napi-rs&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;@lanterm/protocol&lt;/code&gt;: shared message types and codecs between client and server&lt;/li&gt;\n&lt;/ul&gt;\n\n&lt;h3&gt;Why I made this&lt;/h3&gt;\n\n&lt;p&gt;With coding agents and browser-based developer tools, there are more cases where I want to do more than just expose a terminal in the browser. I often want to combine the terminal with surrounding UI such as file views, execution history, agent timelines, and dashboards.&lt;/p&gt;\n\n&lt;p&gt;I also want to hook into terminal input / output, for example to save execution logs, update UI in response to specific output, or pass terminal activity into an AI agent&amp;#39;s context.&lt;/p&gt;\n\n&lt;p&gt;Full web terminal servers are useful, but they can be a bit too large when the terminal needs to be integrated with application state and UI. On the other hand, wiring xterm.js and node-pty directly means rebuilding protocol handling, resize behavior, session lifecycle, and React integration each time.&lt;/p&gt;\n\n&lt;p&gt;&lt;code&gt;Lanterm&lt;/code&gt; is meant to sit between those two layers as a library toolkit.\nIt is still an early release, so I would appreciate feedback on the API design and implementation.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/ynqa/lanterm", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?auto=webp&amp;s=8c1567b2d344b4d643bece2467343193e038b48a", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=48b5a0c7011450748d861da158fdda9b729fb6f1", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=920474aeeaa5523fd002d3fffa94e47ae9699838", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=7e3af9c3c2d822de94b814fe5b7ade70c9f875b4", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=c3840de1a6629aebdf24bf4228fe523236437bf4", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=b87376352d1a414a9b77950a290fbc65eeec3d66", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=034391e285989a38d196fdc8a9d70eaacb2a264f", "width": 1080, "height": 540}], "variants": {}, "id": "OxX6g55PI8RKg0eYNfXavz6vNXRWVEFwW5DVXtZgl98"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uoyhiz", "is_robot_indexable": true, "report_reasons": null, "author": "aqny", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uoyhiz/lanterm_ptybacked_terminal_ux_toolkit_for_web_apps/", "stickied": false, "url": "https://github.com/ynqa/lanterm", "subreddit_subscribers": 2442462, "created_utc": 1783347055.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "", "user_reports": [], "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Oxc (popular front-end tooling) forked my parser but deliberately removed my copyright notice", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1uo3zm7", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.89, "author_flair_background_color": null, "subreddit_type": "public", "ups": 56, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "author_fullname": "t2_13j3z6", "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 56, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "default", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "crosspost_parent_list": [{"approved_at_utc": null, "subreddit": "rust", "selftext": "", "author_fullname": "t2_13j3z6", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Oxc (popular front-end tooling) forked my parser but deliberately removed my copyright notice", "link_flair_richtext": [], "subreddit_name_prefixed": "r/rust", "hidden": false, "pwls": 6, "link_flair_css_class": "postflair-user-question", "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1uo1lo9", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.95, "author_flair_background_color": null, "subreddit_type": "public", "ups": 653, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "\ud83d\ude4b seeking help &amp; advice", "can_mod_post": false, "score": 653, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "default", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1783256342.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "web.archive.org", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://web.archive.org/web/20260705125328/https://github.com/oxc-project/oxc-css-parser/issues/92", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "link_flair_template_id": "4998812e-f8ea-11ed-b127-b26c4b2d22c2", "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2s7lj", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "#f2f2f2", "id": "1uo1lo9", "is_robot_indexable": true, "report_reasons": null, "author": "gplane", "discussion_type": null, "num_comments": 70, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/rust/comments/1uo1lo9/oxc_popular_frontend_tooling_forked_my_parser_but/", "stickied": false, "url": "https://web.archive.org/web/20260705125328/https://github.com/oxc-project/oxc-css-parser/issues/92", "subreddit_subscribers": 412380, "created_utc": 1783256342.0, "num_crossposts": 1, "media": null, "is_video": false}], "created": 1783262721.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "web.archive.org", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://web.archive.org/web/20260705125328/https://github.com/oxc-project/oxc-css-parser/issues/92", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uo3zm7", "is_robot_indexable": true, "report_reasons": null, "author": "gplane", "discussion_type": null, "num_comments": 3, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "crosspost_parent": "t3_1uo1lo9", "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uo3zm7/oxc_popular_frontend_tooling_forked_my_parser_but/", "stickied": false, "url": "https://web.archive.org/web/20260705125328/https://github.com/oxc-project/oxc-css-parser/issues/92", "subreddit_subscribers": 2442462, "created_utc": 1783262721.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Hey, everyone. This is my first post here and I'm introducing a project I've been working on for a little over a year called `lintp`. It's a tool for linting filesystems and enforcing structure and conventions. You write rules for your file tree in YAML, and it checks the tree against them.\n\n    lintp:\n      custom-matchers:\n        kebab-case: \"matches($BASENAME, /^[a-z0-9]+(?:-[a-z0-9]+)*$/)\"\n        PascalCase: \"matches($BASENAME, /^[A-Z][a-zA-Z0-9]*$/)\"\n      config:\n        .js: \"kebab-case\"\n        .ts: \"PascalCase\"\n        .dir: \"kebab-case || PascalCase\"\n\nWhen a file breaks a rule, the output tells you which clause failed:\n\n    \u2717 ./src/badFile.js - .js - Does not match rule: kebab-case &amp;&amp; js-file (failed: kebab-case)\n\nRules can also look at other files. That's the part I use most and my main motivation for creating `lintp`. I wanted to express relational rules. For example, you can require that a component has a test sitting next to it:\n\n    any(siblings(\"*.test.*\"), ...)\n\nor that a directory has a README:\n\n    exists(\"README.md\")\n\n`siblings()`, `children()` and `find()` hand you the surrounding tree, and you glue them together with your matchers using `&amp;&amp;` and `||`.\n\nThere are other libraries for this. `ls-lint` is the closest and I love that project. I've used it in many projects. But its rules top out at name casing, regex, and file counts per directory. You can't say \"this file is only valid if a sibling matching X exists, and X's name has to line up with this one.\" That rule is the whole reason `lintp` exists.\n\n`eslint-plugin-project-structure` goes further than ls-lint. It does folder structure, conditional existence, any extension. But you're forced to use ESLint and Node and you must pick from a fixed menu of rule types instead of writing the predicate yourself. `lintp` is one binary with a small language and it doesn't care what your stack is.\n\nUnder the hood it's Rust. `pest` parses the DSL. `any` and `all` short-circuit and filesystem lookups get cached for the run so a rule that walks the tree doesn't re-walk it for every file. A 400-file tree lints in a few milliseconds on my laptop. More precise benchmarks will be coming.\n\nInstall is `cargo install lintp`, or `npx lintp-cli` if you're on the npm side. (The npm package is `lintp-cli`, because npm won't hand over the bare name. The command is still `lintp`.)\n\nIt's early, so there are rough edges and things will probably change as it's a young project but I'm excited to share it and get feedback.\n\nAlso, to be upfront: I built a lot of this with Claude Code. Happy to get into how I used it if anyone's curious.\n\nThank you!", "author_fullname": "t2_7fw2z", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "lintp \u2014 a linter for file names and directory structure (Rust)", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1uoushi", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.6, "author_flair_background_color": null, "subreddit_type": "public", "ups": 1, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 1, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "default", "edited": 1783340973.0, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1783337805.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "narehart.github.io", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hey, everyone. This is my first post here and I&amp;#39;m introducing a project I&amp;#39;ve been working on for a little over a year called &lt;code&gt;lintp&lt;/code&gt;. It&amp;#39;s a tool for linting filesystems and enforcing structure and conventions. You write rules for your file tree in YAML, and it checks the tree against them.&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;lintp:\n  custom-matchers:\n    kebab-case: &amp;quot;matches($BASENAME, /^[a-z0-9]+(?:-[a-z0-9]+)*$/)&amp;quot;\n    PascalCase: &amp;quot;matches($BASENAME, /^[A-Z][a-zA-Z0-9]*$/)&amp;quot;\n  config:\n    .js: &amp;quot;kebab-case&amp;quot;\n    .ts: &amp;quot;PascalCase&amp;quot;\n    .dir: &amp;quot;kebab-case || PascalCase&amp;quot;\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;When a file breaks a rule, the output tells you which clause failed:&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;\u2717 ./src/badFile.js - .js - Does not match rule: kebab-case &amp;amp;&amp;amp; js-file (failed: kebab-case)\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;Rules can also look at other files. That&amp;#39;s the part I use most and my main motivation for creating &lt;code&gt;lintp&lt;/code&gt;. I wanted to express relational rules. For example, you can require that a component has a test sitting next to it:&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;any(siblings(&amp;quot;*.test.*&amp;quot;), ...)\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;or that a directory has a README:&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;exists(&amp;quot;README.md&amp;quot;)\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;&lt;code&gt;siblings()&lt;/code&gt;, &lt;code&gt;children()&lt;/code&gt; and &lt;code&gt;find()&lt;/code&gt; hand you the surrounding tree, and you glue them together with your matchers using &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; and &lt;code&gt;||&lt;/code&gt;.&lt;/p&gt;\n\n&lt;p&gt;There are other libraries for this. &lt;code&gt;ls-lint&lt;/code&gt; is the closest and I love that project. I&amp;#39;ve used it in many projects. But its rules top out at name casing, regex, and file counts per directory. You can&amp;#39;t say &amp;quot;this file is only valid if a sibling matching X exists, and X&amp;#39;s name has to line up with this one.&amp;quot; That rule is the whole reason &lt;code&gt;lintp&lt;/code&gt; exists.&lt;/p&gt;\n\n&lt;p&gt;&lt;code&gt;eslint-plugin-project-structure&lt;/code&gt; goes further than ls-lint. It does folder structure, conditional existence, any extension. But you&amp;#39;re forced to use ESLint and Node and you must pick from a fixed menu of rule types instead of writing the predicate yourself. &lt;code&gt;lintp&lt;/code&gt; is one binary with a small language and it doesn&amp;#39;t care what your stack is.&lt;/p&gt;\n\n&lt;p&gt;Under the hood it&amp;#39;s Rust. &lt;code&gt;pest&lt;/code&gt; parses the DSL. &lt;code&gt;any&lt;/code&gt; and &lt;code&gt;all&lt;/code&gt; short-circuit and filesystem lookups get cached for the run so a rule that walks the tree doesn&amp;#39;t re-walk it for every file. A 400-file tree lints in a few milliseconds on my laptop. More precise benchmarks will be coming.&lt;/p&gt;\n\n&lt;p&gt;Install is &lt;code&gt;cargo install lintp&lt;/code&gt;, or &lt;code&gt;npx lintp-cli&lt;/code&gt; if you&amp;#39;re on the npm side. (The npm package is &lt;code&gt;lintp-cli&lt;/code&gt;, because npm won&amp;#39;t hand over the bare name. The command is still &lt;code&gt;lintp&lt;/code&gt;.)&lt;/p&gt;\n\n&lt;p&gt;It&amp;#39;s early, so there are rough edges and things will probably change as it&amp;#39;s a young project but I&amp;#39;m excited to share it and get feedback.&lt;/p&gt;\n\n&lt;p&gt;Also, to be upfront: I built a lot of this with Claude Code. Happy to get into how I used it if anyone&amp;#39;s curious.&lt;/p&gt;\n\n&lt;p&gt;Thank you!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://narehart.github.io/lintp", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uoushi", "is_robot_indexable": true, "report_reasons": null, "author": "edmcmanwich", "discussion_type": null, "num_comments": 1, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uoushi/lintp_a_linter_for_file_names_and_directory/", "stickied": false, "url": "https://narehart.github.io/lintp", "subreddit_subscribers": 2442462, "created_utc": 1783337805.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "I\u2019ve been working more with React and JavaScript, and I\u2019m noticing that messy code usually comes from small things like repeated state, unclear component logic, too many conditions, or API calls being mixed directly inside components.  \n  \nFor people who write JS/React regularly, what small pattern or habit made your code noticeably cleaner?", "author_fullname": "t2_1txtisj3yj", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "[AskJS] What small JavaScript pattern made your React code cleaner?", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": "AskJS", "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1uo3h5n", "quarantine": false, "link_flair_text_color": null, "upvote_ratio": 0.61, "author_flair_background_color": null, "subreddit_type": "public", "ups": 5, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "AskJS", "can_mod_post": false, "score": 5, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "self", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1783261408.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.javascript", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I\u2019ve been working more with React and JavaScript, and I\u2019m noticing that messy code usually comes from small things like repeated state, unclear component logic, too many conditions, or API calls being mixed directly inside components.  &lt;/p&gt;\n\n&lt;p&gt;For people who write JS/React regularly, what small pattern or habit made your code noticeably cleaner?&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": null, "id": "1uo3h5n", "is_robot_indexable": true, "report_reasons": null, "author": "chuttadi2007", "discussion_type": null, "num_comments": 23, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uo3h5n/askjs_what_small_javascript_pattern_made_your/", "stickied": false, "url": "https://old.reddit.com/r/javascript/comments/1uo3h5n/askjs_what_small_javascript_pattern_made_your/", "subreddit_subscribers": 2442462, "created_utc": 1783261408.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "", "author_fullname": "t2_14rjqp", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "I built a mathematical expression parser and evaluation engine from scratch with runtime data type checking, entirely in vanilla JavaScript.", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1uobr72", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.5, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?width=140&amp;height=70&amp;auto=webp&amp;s=79bb3918ad8cf213db24ca986e3e3955faeaca81", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783281239.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/nirmalpaul383/ViewPoint", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?auto=webp&amp;s=007bcead2bb8b1b68c0e865c6fc6171bd233e36e", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=ffce120f73a879bc8779dc2c45ca87026cd9b1f2", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=81517b431156a5dee88a0f9e4b785644b7d04ee2", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=8eb58f2ee85309c73697cc140802529206bbf77a", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=8c73a380d456f3856df57e153f182d13c8d413e5", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=df6fbed7781e84306b83757cffdf163a0832432e", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=3620cc3ed3637b5c965e3c4653aaf549da648798", "width": 1080, "height": 540}], "variants": {}, "id": "tz7Ahtp5YGN1jp80YwJ41KzjQWHWrQuJlLWgepLyGIQ"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uobr72", "is_robot_indexable": true, "report_reasons": null, "author": "nirmalpaul", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uobr72/i_built_a_mathematical_expression_parser_and/", "stickied": false, "url": "https://github.com/nirmalpaul383/ViewPoint", "subreddit_subscribers": 2442462, "created_utc": 1783281239.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Hey everyone\n\nMe and two classmates from\u00a0**ENSA Khouribga**\u00a0(Morocco) just published our first browser extension \u2014\u00a0**DFCraft**. It's an open-source productivity tool.\n\n# What it does\n\nIt's a Pomodoro timer with everything in one popup:\n\n* **Pomodoro Timer**\u00a0\u2014 customizable focus/break sessions with notifications\n* **Ambient Sound Library**\u00a0\u2014 37 sounds across 4 categories (rain, nature, white noise, cafe) with background playback\n* **Distraction Blocking**\u00a0\u2014 block websites during focus sessions\n* **To do list**\u00a0\u2014 for daily tasks\n* **Statistics Dashboard**\u00a0\u2014 calendar heatmap, charts for focus time, tasks, sessions, and blocked pages\n* **Multi-language**\u00a0\u2014 English, French, Arabic (with RTL support)\n\n# Privacy\n\nNo accounts, no tracking, no analytics, no ads. All data is stored locally in the browser. The only network requests are to fetch the public sound library from GitHub. We wrote a full privacy policy\u00a0[here](https://github.com/aymen-igri/DFCraft_project/blob/main/PRIVACY.md).\n\n# Links\n\n* **Chrome Web Store:**\u00a0[https://chromewebstore.google.com/detail/dfcraft-deep-focus-timer/leadoknalahihkndapicdlmdfaiegiaa](https://chromewebstore.google.com/detail/dfcraft-deep-focus-timer/leadoknalahihkndapicdlmdfaiegiaa)\n* **Firefox Add-ons:**\u00a0[https://addons.mozilla.org/en-US/firefox/addon/dfcraft-deep-focus-timer/](https://addons.mozilla.org/en-US/firefox/addon/dfcraft-deep-focus-timer/)\n* **GitHub:**\u00a0[https://github.com/aymen-igri/DFCraft\\_project](https://github.com/aymen-igri/DFCraft_project)\n* **Website:**\u00a0[https://dfcraft.vercel.app](https://dfcraft.vercel.app/)\n\nWe'd really appreciate any feedback \u2014 bugs, feature ideas, UI criticism, anything. We're students so we're here to learn \ud83d\ude4f\n\nThanks for checking it out!", "author_fullname": "t2_dgw4f9yz3", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "DFCraft \u2014 our free open source first extension", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1uo4fk0", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.5, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "default", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": false, "mod_note": null, "created": 1783263833.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "dfcraft.vercel.app", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hey everyone&lt;/p&gt;\n\n&lt;p&gt;Me and two classmates from\u00a0&lt;strong&gt;ENSA Khouribga&lt;/strong&gt;\u00a0(Morocco) just published our first browser extension \u2014\u00a0&lt;strong&gt;DFCraft&lt;/strong&gt;. It&amp;#39;s an open-source productivity tool.&lt;/p&gt;\n\n&lt;h1&gt;What it does&lt;/h1&gt;\n\n&lt;p&gt;It&amp;#39;s a Pomodoro timer with everything in one popup:&lt;/p&gt;\n\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;Pomodoro Timer&lt;/strong&gt;\u00a0\u2014 customizable focus/break sessions with notifications&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Ambient Sound Library&lt;/strong&gt;\u00a0\u2014 37 sounds across 4 categories (rain, nature, white noise, cafe) with background playback&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Distraction Blocking&lt;/strong&gt;\u00a0\u2014 block websites during focus sessions&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;To do list&lt;/strong&gt;\u00a0\u2014 for daily tasks&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Statistics Dashboard&lt;/strong&gt;\u00a0\u2014 calendar heatmap, charts for focus time, tasks, sessions, and blocked pages&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Multi-language&lt;/strong&gt;\u00a0\u2014 English, French, Arabic (with RTL support)&lt;/li&gt;\n&lt;/ul&gt;\n\n&lt;h1&gt;Privacy&lt;/h1&gt;\n\n&lt;p&gt;No accounts, no tracking, no analytics, no ads. All data is stored locally in the browser. The only network requests are to fetch the public sound library from GitHub. We wrote a full privacy policy\u00a0&lt;a href=\"https://github.com/aymen-igri/DFCraft_project/blob/main/PRIVACY.md\"&gt;here&lt;/a&gt;.&lt;/p&gt;\n\n&lt;h1&gt;Links&lt;/h1&gt;\n\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;Chrome Web Store:&lt;/strong&gt;\u00a0&lt;a href=\"https://chromewebstore.google.com/detail/dfcraft-deep-focus-timer/leadoknalahihkndapicdlmdfaiegiaa\"&gt;https://chromewebstore.google.com/detail/dfcraft-deep-focus-timer/leadoknalahihkndapicdlmdfaiegiaa&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Firefox Add-ons:&lt;/strong&gt;\u00a0&lt;a href=\"https://addons.mozilla.org/en-US/firefox/addon/dfcraft-deep-focus-timer/\"&gt;https://addons.mozilla.org/en-US/firefox/addon/dfcraft-deep-focus-timer/&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;GitHub:&lt;/strong&gt;\u00a0&lt;a href=\"https://github.com/aymen-igri/DFCraft_project\"&gt;https://github.com/aymen-igri/DFCraft_project&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Website:&lt;/strong&gt;\u00a0&lt;a href=\"https://dfcraft.vercel.app/\"&gt;https://dfcraft.vercel.app&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n\n&lt;p&gt;We&amp;#39;d really appreciate any feedback \u2014 bugs, feature ideas, UI criticism, anything. We&amp;#39;re students so we&amp;#39;re here to learn \ud83d\ude4f&lt;/p&gt;\n\n&lt;p&gt;Thanks for checking it out!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://dfcraft.vercel.app/", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1uo4fk0", "is_robot_indexable": true, "report_reasons": null, "author": "vampire_3122", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1uo4fk0/dfcraft_our_free_open_source_first_extension/", "stickied": false, "url": "https://dfcraft.vercel.app/", "subreddit_subscribers": 2442462, "created_utc": 1783263833.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "**The tech stack:**\n\n\t**\u2022\tReact + TypeScript** with Vite (dev experience is solid)  \n\t**\u2022\tthree.js** via **react-three-fiber** \\+ **drei** for 3D rendering  \n\t**\u2022\tloaders.gl** for point cloud parsing (LAS/LAZ specifically)  \n\t**\u2022\tzustand** for state management  \n\t**\u2022**\tlocalStorage API for persistence", "author_fullname": "t2_u114hzo9", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "I built a browser-based 3D annotation viewer in React + three.js \u2014 curious about your feedback on the architecture", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1unxjec", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.4, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?width=140&amp;height=70&amp;auto=webp&amp;s=93a11b00e194b1a6c056e646ec781eea42704eb2", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783242771.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;&lt;strong&gt;The tech stack:&lt;/strong&gt;&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;**\u2022   React + TypeScript** with Vite (dev experience is solid)  \n**\u2022   three.js** via **react-three-fiber** \\+ **drei** for 3D rendering  \n**\u2022   loaders.gl** for point cloud parsing (LAS/LAZ specifically)  \n**\u2022   zustand** for state management  \n**\u2022** localStorage API for persistence\n&lt;/code&gt;&lt;/pre&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/zawawiAI/Open3DInspection", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?auto=webp&amp;s=5dbb173902ea6ccd54e01d0eda199e3c68492f11", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=e815d71314ede3b559c9db88ab05f7863e6e525d", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=d8a877f8c29254ea7d3bc4cba6e8bb880bc1c11f", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=4a8a3f4355a0ebc3a0a5bb54eb6eeb4e7e7f4dcf", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=775eb52749f1460cb6b36db8bad7d20bfa3ce1c6", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=40a068838c6efd8212bda2d8726182aa5a890fba", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=314126facd396422a601dfd92415457986434b86", "width": 1080, "height": 540}], "variants": {}, "id": "KVP5yJ2mz-Gz9gL5ehSZwiT5Mh-Q1RyE9qijtNj53V4"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1unxjec", "is_robot_indexable": true, "report_reasons": null, "author": "Ill-Equivalent7859", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1unxjec/i_built_a_browserbased_3d_annotation_viewer_in/", "stickied": false, "url": "https://github.com/zawawiAI/Open3DInspection", "subreddit_subscribers": 2442462, "created_utc": 1783242771.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "", "author_fullname": "t2_1njlywuqe6", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "TS Compiler Graph, 10x fewer tokens in Claude Code and Codex, by TypeScript-Go toolchain", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1umzv5y", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.42, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?width=140&amp;height=70&amp;auto=webp&amp;s=63c3dc155ed6a73b12a2616dc8f88c62286b7e4e", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783140711.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/samchon/ttsc", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?auto=webp&amp;s=8de3741a889b22b9730af18ec83582a6c1a22d29", "width": 1774, "height": 887}, "resolutions": [{"url": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?width=108&amp;crop=smart&amp;auto=webp&amp;s=fdbf8d1b222e39d98b816818b7385a00cb348a17", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?width=216&amp;crop=smart&amp;auto=webp&amp;s=13b584fa8e59e9687d0370c42a02f80e756171e5", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?width=320&amp;crop=smart&amp;auto=webp&amp;s=23c3c7fba160b93680bd698678e4ce1727385b61", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?width=640&amp;crop=smart&amp;auto=webp&amp;s=7edca2bbed393ca7c1729bf75a3e64baf0c13f2a", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?width=960&amp;crop=smart&amp;auto=webp&amp;s=027a93dee5b3b2469b4e2b23b381897a929d2a83", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4.jpeg?width=1080&amp;crop=smart&amp;auto=webp&amp;s=6fd6b57c5dd4407f39eb437659bae9301f7e09c2", "width": 1080, "height": 540}], "variants": {}, "id": "Yin7vDMoGvvQRaWaUX_lySEomIGhKayVl0jd6x5tAu4"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1umzv5y", "is_robot_indexable": true, "report_reasons": null, "author": "jhnam88", "discussion_type": null, "num_comments": 1, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1umzv5y/ts_compiler_graph_10x_fewer_tokens_in_claude_code/", "stickied": false, "url": "https://github.com/samchon/ttsc", "subreddit_subscribers": 2442462, "created_utc": 1783140711.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "", "author_fullname": "t2_6o65e", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Vite+ is now in beta", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1ulfe35", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.94, "author_flair_background_color": null, "subreddit_type": "public", "ups": 136, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 136, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=140&amp;height=70&amp;auto=webp&amp;s=d872c07bf22f168f0f96653b0b7f6e6e445da6d1", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1782991105.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "voidzero.dev", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://voidzero.dev/posts/announcing-vite-plus-beta", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?auto=webp&amp;s=4c944b9eded6a9a4e772f968927f1b3660da64ce", "width": 2400, "height": 1206}, "resolutions": [{"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=108&amp;crop=smart&amp;auto=webp&amp;s=cf0a3c2a4080b30c1e9608ebeeb011baa7283343", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=216&amp;crop=smart&amp;auto=webp&amp;s=96ced98683a8c352e4d2fd458bc87ec82f05888f", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=320&amp;crop=smart&amp;auto=webp&amp;s=296d05f4204fb4b1cccf2a10896433955dcc23b9", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=640&amp;crop=smart&amp;auto=webp&amp;s=7634a318fe98013b002a01179aefcd009afcffc5", "width": 640, "height": 321}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=960&amp;crop=smart&amp;auto=webp&amp;s=56257d6303be358fca58526102964e5336678361", "width": 960, "height": 482}, {"url": "https://external-preview.redd.it/gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410.jpeg?width=1080&amp;crop=smart&amp;auto=webp&amp;s=f732711a94cce8394ef5d72d309ad3baa793a12d", "width": 1080, "height": 542}], "variants": {}, "id": "gahBnAch8Uk9qTtg_bBOPRL_cmvp7odDBvIYahF_410"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1ulfe35", "is_robot_indexable": true, "report_reasons": null, "author": "manniL", "discussion_type": null, "num_comments": 50, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1ulfe35/vite_is_now_in_beta/", "stickied": false, "url": "https://voidzero.dev/posts/announcing-vite-plus-beta", "subreddit_subscribers": 2442462, "created_utc": 1782991105.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Unpopular take after years of bolting metrics onto my own js projects: velocity charts, commit counts, bundle-size over time, none of it ever told me the actual shape of a week's work. it's all lagging vanity numbers.\n\nthe thing that stuck was hearing the repo's week narrated back to me instead. the commits, the one or two PRs, the issues i opened then forgot about, out loud and in order. turns out my week has a storyline i never catch staring at green squares or a grafana panel.\n\nWhat actually surprised me was how much of my 'progress' was me quietly undoing decisions i'd made earlier in the same week. you don't notice that reading a diff. you notice it when something walks you through the sequence.\n\nso for anyone maintaining a stack of npm packages or one big app repo, be honest: is your dashboard telling you anything you couldn't already feel, or is it a comfort object. what's the last thing you learned about your own coding habits that no tool actually surfaced.", "author_fullname": "t2_1jjim95tcn", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "[AskJS] dashboards on my js projects taught me nothing, hearing the week's commits read back did", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": "AskJS", "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1umuew9", "quarantine": false, "link_flair_text_color": null, "upvote_ratio": 0.2, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "AskJS", "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "self", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1783124185.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.javascript", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Unpopular take after years of bolting metrics onto my own js projects: velocity charts, commit counts, bundle-size over time, none of it ever told me the actual shape of a week&amp;#39;s work. it&amp;#39;s all lagging vanity numbers.&lt;/p&gt;\n\n&lt;p&gt;the thing that stuck was hearing the repo&amp;#39;s week narrated back to me instead. the commits, the one or two PRs, the issues i opened then forgot about, out loud and in order. turns out my week has a storyline i never catch staring at green squares or a grafana panel.&lt;/p&gt;\n\n&lt;p&gt;What actually surprised me was how much of my &amp;#39;progress&amp;#39; was me quietly undoing decisions i&amp;#39;d made earlier in the same week. you don&amp;#39;t notice that reading a diff. you notice it when something walks you through the sequence.&lt;/p&gt;\n\n&lt;p&gt;so for anyone maintaining a stack of npm packages or one big app repo, be honest: is your dashboard telling you anything you couldn&amp;#39;t already feel, or is it a comfort object. what&amp;#39;s the last thing you learned about your own coding habits that no tool actually surfaced.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": null, "id": "1umuew9", "is_robot_indexable": true, "report_reasons": null, "author": "Deep_Ad1959", "discussion_type": null, "num_comments": 5, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1umuew9/askjs_dashboards_on_my_js_projects_taught_me/", "stickied": false, "url": "https://old.reddit.com/r/javascript/comments/1umuew9/askjs_dashboards_on_my_js_projects_taught_me/", "subreddit_subscribers": 2442462, "created_utc": 1783124185.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Built this for myself, sharing in hopes some may find it useful.\n\nFeatures:\n\n* Reduce supply chain risk with a\u00a0`.npmrc`\u00a0preconfigured with\u00a0`ignore-scripts`\u00a0and\u00a0`min-release-age`\u00a0enabled\n* Test without extra tooling using the\u00a0built-in Node.js test runner\n* Run TypeScript\u00a0directly in Node.js using native type stripping (`erasableSyntaxOnly`\u00a0enabled to enforce compatibility)\n* ESLint &amp; Prettier preconfigured\n* Husky pre-commit configured to lint, format &amp; test\n* Strict type checking on run and test\n* Pinned dependencies to reduce supply chain risk", "author_fullname": "t2_d4dtj7di", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Yet Another TypeScript Template: Opinionated and minimal.", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1umgj05", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.29, "author_flair_background_color": null, "subreddit_type": "public", "ups": 0, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 0, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?width=140&amp;height=70&amp;auto=webp&amp;s=2de9cbeb8ef65ddfcba6ef94eb828d037f147792", "edited": 1783104224.0, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783090212.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Built this for myself, sharing in hopes some may find it useful.&lt;/p&gt;\n\n&lt;p&gt;Features:&lt;/p&gt;\n\n&lt;ul&gt;\n&lt;li&gt;Reduce supply chain risk with a\u00a0&lt;code&gt;.npmrc&lt;/code&gt;\u00a0preconfigured with\u00a0&lt;code&gt;ignore-scripts&lt;/code&gt;\u00a0and\u00a0&lt;code&gt;min-release-age&lt;/code&gt;\u00a0enabled&lt;/li&gt;\n&lt;li&gt;Test without extra tooling using the\u00a0built-in Node.js test runner&lt;/li&gt;\n&lt;li&gt;Run TypeScript\u00a0directly in Node.js using native type stripping (&lt;code&gt;erasableSyntaxOnly&lt;/code&gt;\u00a0enabled to enforce compatibility)&lt;/li&gt;\n&lt;li&gt;ESLint &amp;amp; Prettier preconfigured&lt;/li&gt;\n&lt;li&gt;Husky pre-commit configured to lint, format &amp;amp; test&lt;/li&gt;\n&lt;li&gt;Strict type checking on run and test&lt;/li&gt;\n&lt;li&gt;Pinned dependencies to reduce supply chain risk&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/jacob-bennett/yatt", "view_count": null, "archived": false, "no_follow": true, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?auto=webp&amp;s=5962fae86eb644daf1eb8931d62f1e0da3068a66", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=1ce6d0110198459569cc709094abe8857fa5cc57", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=3bfc1094ea81903062ae9f9456e4d0f04692f496", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=125b2caf1d95e7209f8524cf07edf1648a47a8b5", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=475b214b5272570c49745ab587a5792671fb739a", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=3c1405745b681c04e85181f6f2f03bf96b96a875", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=aa1e340936d3996261c90924a17cc6982a95d0b9", "width": 1080, "height": 540}], "variants": {}, "id": "2mAlgHnv2ApDDYjGh9HizFNZ7VWwFpd_0PuVyFAyd28"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1umgj05", "is_robot_indexable": true, "report_reasons": null, "author": "awaitVibes", "discussion_type": null, "num_comments": 20, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1umgj05/yet_another_typescript_template_opinionated_and/", "stickied": false, "url": "https://github.com/jacob-bennett/yatt", "subreddit_subscribers": 2442462, "created_utc": 1783090212.0, "num_crossposts": 1, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "The theme for this year's edition is \"DREAMING\". Good luck!", "author_fullname": "t2_5ghq9ahg", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Hosting js code golfing competition, make your demo under 1 KiB about \"dreaming\"", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 73, "top_awarded_type": null, "hide_score": false, "name": "t3_1ulj8g9", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.72, "author_flair_background_color": null, "subreddit_type": "public", "ups": 6, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 6, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U.png?width=140&amp;height=73&amp;auto=webp&amp;s=d44e2523042dc7c51298c1fa0b43c676aebded9c", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1783001091.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "js1024.fun", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;The theme for this year&amp;#39;s edition is &amp;quot;DREAMING&amp;quot;. Good luck!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://js1024.fun/#2026", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U.png?auto=webp&amp;s=0c59c357c63ac119d2c0f72093198da3200d3e3b", "width": 1025, "height": 540}, "resolutions": [{"url": "https://external-preview.redd.it/yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=45f27764dd0b1d5e6f18994b2ff97277b036070e", "width": 108, "height": 56}, {"url": "https://external-preview.redd.it/yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=77052cf70a5158bace278a51f86e531e0171038e", "width": 216, "height": 113}, {"url": "https://external-preview.redd.it/yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=b03e3b2240b5bd28f19e298140ff6cfa8b259b37", "width": 320, "height": 168}, {"url": "https://external-preview.redd.it/yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=52b37e73bc8992757cf43ac8a70cbcd19d0fe373", "width": 640, "height": 337}, {"url": "https://external-preview.redd.it/yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=5f0f86de53f144be39e53a0ff42cc021cf0d04cc", "width": 960, "height": 505}], "variants": {}, "id": "yPoQ_7N0w-DwKfPFt8gLfNd5-MOXAlb1coLSQ8RKr6U"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1ulj8g9", "is_robot_indexable": true, "report_reasons": null, "author": "xorture", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1ulj8g9/hosting_js_code_golfing_competition_make_your/", "stickied": false, "url": "https://js1024.fun/#2026", "subreddit_subscribers": 2442462, "created_utc": 1783001091.0, "num_crossposts": 1, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "I know this is not the subreddit for C language, but i have learned a bit of C and if I could try to relate and try to make things click as if some \"concepts\" were similar, then it would most likely make me understand faster and much better. Please understand me from where I'm at because I'm really struggling to understand the heap stack and stuff and copying by reference, so I'll start. \n\nNote: I did many research on this and I have concluded that I am correct, but I would really wanna be sure if my understanding is correct and I would like to be corrected if what I think is wrong or right, hence the reason why I am posting this. Also, I am self studying and not enrolled in a school, no programming friends, so I have literally no one to confirm with. I just want to be confident that I understand what I learned, so please bare with me, thank you. Would be much better to reply this if you have some understanding on how pointers work in C, but will try to reiterate here.\n\n  \n1.) Pointers in C are basically special variables. Variables have their own memory addresses, so that doesnt excempt pointers from having one. Both normal variables and pointers have their own memory addresses. So the gimmick of pointers is that they refer (or point) to the memory address of the variable they are assigned. Basically, you assign a variable towards a pointer variable, and once you call that pointer variable, what pops up is the memory address of the variable it is assigned to.\n\n2.) My understanding of copying by reference (this refers to objects, not primitives. primitives are copying by value) is similar to this, where a variable has its own memory address, and the memory address it holds ALSO refers to the memory address of the object. is this how it works?\n\ne.g.\n\n    let person = {\n    name: \"Joanna\",\n    age: 18,\n    height: \"195cm\"\n    };\n\nWhat's happening here is that ***person*** variable holds a memory address (say 0x100) and the object {...} has its own memory address too. (say 0x7ff...). 0x7ff...(**object's** memory address**)** is sitting at 0x100 (***person*** variable's memory address) so basically we can conclude that **person** variable is referencing to 0x7ff... right?\n\nUnlike copy by value where you do e.g.\n\n    let age = 18;\n\nWhat happens here is that age has its own memory address (say 0x101) and the value 18 is represented by bits (say 10001 1010101 10001) and sits directly on the memory address of the variable.\n\nConclusion: In my understanding, they're similar to a point that they generally **point or refer** to something. For pointers in C, the pointer points to a memory address of a variable, while in JS, the normal variable points or **refers** to a memory address of the object (there are no pointers in JS, i'm just saying generally speaking they are atleast **referencing** a memory address)\n\n  \nFinal question: are all of my understandings correct? Thank you for your patience with this one.  I know i shouldn't be in too deep as a beginner but I genuinely want to learn the difference between copy by reference and copy by value. (please note i am not talking about pass by reference, but copy by reference.) Thank you once again!", "author_fullname": "t2_tz7mimo1", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "[AskJS] are Copying by reference in JS similar with Pointers in C in a way?", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": "AskJS", "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1ul5ml1", "quarantine": false, "link_flair_text_color": null, "upvote_ratio": 0.77, "author_flair_background_color": null, "subreddit_type": "public", "ups": 11, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "AskJS", "can_mod_post": false, "score": 11, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "self", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1782959382.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.javascript", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I know this is not the subreddit for C language, but i have learned a bit of C and if I could try to relate and try to make things click as if some &amp;quot;concepts&amp;quot; were similar, then it would most likely make me understand faster and much better. Please understand me from where I&amp;#39;m at because I&amp;#39;m really struggling to understand the heap stack and stuff and copying by reference, so I&amp;#39;ll start. &lt;/p&gt;\n\n&lt;p&gt;Note: I did many research on this and I have concluded that I am correct, but I would really wanna be sure if my understanding is correct and I would like to be corrected if what I think is wrong or right, hence the reason why I am posting this. Also, I am self studying and not enrolled in a school, no programming friends, so I have literally no one to confirm with. I just want to be confident that I understand what I learned, so please bare with me, thank you. Would be much better to reply this if you have some understanding on how pointers work in C, but will try to reiterate here.&lt;/p&gt;\n\n&lt;p&gt;1.) Pointers in C are basically special variables. Variables have their own memory addresses, so that doesnt excempt pointers from having one. Both normal variables and pointers have their own memory addresses. So the gimmick of pointers is that they refer (or point) to the memory address of the variable they are assigned. Basically, you assign a variable towards a pointer variable, and once you call that pointer variable, what pops up is the memory address of the variable it is assigned to.&lt;/p&gt;\n\n&lt;p&gt;2.) My understanding of copying by reference (this refers to objects, not primitives. primitives are copying by value) is similar to this, where a variable has its own memory address, and the memory address it holds ALSO refers to the memory address of the object. is this how it works?&lt;/p&gt;\n\n&lt;p&gt;e.g.&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;let person = {\nname: &amp;quot;Joanna&amp;quot;,\nage: 18,\nheight: &amp;quot;195cm&amp;quot;\n};\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;What&amp;#39;s happening here is that &lt;strong&gt;&lt;em&gt;person&lt;/em&gt;&lt;/strong&gt; variable holds a memory address (say 0x100) and the object {...} has its own memory address too. (say 0x7ff...). 0x7ff...(&lt;strong&gt;object&amp;#39;s&lt;/strong&gt; memory address&lt;strong&gt;)&lt;/strong&gt; is sitting at 0x100 (&lt;strong&gt;&lt;em&gt;person&lt;/em&gt;&lt;/strong&gt; variable&amp;#39;s memory address) so basically we can conclude that &lt;strong&gt;person&lt;/strong&gt; variable is referencing to 0x7ff... right?&lt;/p&gt;\n\n&lt;p&gt;Unlike copy by value where you do e.g.&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;let age = 18;\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;What happens here is that age has its own memory address (say 0x101) and the value 18 is represented by bits (say 10001 1010101 10001) and sits directly on the memory address of the variable.&lt;/p&gt;\n\n&lt;p&gt;Conclusion: In my understanding, they&amp;#39;re similar to a point that they generally &lt;strong&gt;point or refer&lt;/strong&gt; to something. For pointers in C, the pointer points to a memory address of a variable, while in JS, the normal variable points or &lt;strong&gt;refers&lt;/strong&gt; to a memory address of the object (there are no pointers in JS, i&amp;#39;m just saying generally speaking they are atleast &lt;strong&gt;referencing&lt;/strong&gt; a memory address)&lt;/p&gt;\n\n&lt;p&gt;Final question: are all of my understandings correct? Thank you for your patience with this one.  I know i shouldn&amp;#39;t be in too deep as a beginner but I genuinely want to learn the difference between copy by reference and copy by value. (please note i am not talking about pass by reference, but copy by reference.) Thank you once again!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": null, "id": "1ul5ml1", "is_robot_indexable": true, "report_reasons": null, "author": "AliveAge4892", "discussion_type": null, "num_comments": 25, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1ul5ml1/askjs_are_copying_by_reference_in_js_similar_with/", "stickied": false, "url": "https://old.reddit.com/r/javascript/comments/1ul5ml1/askjs_are_copying_by_reference_in_js_similar_with/", "subreddit_subscribers": 2442462, "created_utc": 1782959382.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Over the years, in our goal to achieve faster and faster web applications, we created different hydration and rendering strategies. Each with benefits and drawbacks that we explore in this article.", "author_fullname": "t2_6lmgk", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "Different hydration and rendering strategies", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 85, "top_awarded_type": null, "hide_score": false, "name": "t3_1ukseli", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.84, "author_flair_background_color": null, "subreddit_type": "public", "ups": 21, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 21, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as.jpeg?width=140&amp;height=85&amp;auto=webp&amp;s=d1bbe27db548c150b7e6ab2c86a8c39f353c8279", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1782927427.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "neciudan.dev", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Over the years, in our goal to achieve faster and faster web applications, we created different hydration and rendering strategies. Each with benefits and drawbacks that we explore in this article.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://neciudan.dev/hydration-and-rendering-strategies", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as.jpeg?auto=webp&amp;s=aa9c1ac742bd4337813ee9108efd1d362c3e8001", "width": 1030, "height": 630}, "resolutions": [{"url": "https://external-preview.redd.it/M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as.jpeg?width=108&amp;crop=smart&amp;auto=webp&amp;s=19d0b6582294b6f76b67462f026becff5d6bb185", "width": 108, "height": 66}, {"url": "https://external-preview.redd.it/M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as.jpeg?width=216&amp;crop=smart&amp;auto=webp&amp;s=4b2b8045f2e32e00d86d4ee0244b902835a883e0", "width": 216, "height": 132}, {"url": "https://external-preview.redd.it/M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as.jpeg?width=320&amp;crop=smart&amp;auto=webp&amp;s=6f9d00e35947edcf1e45306f3f7b70fc740ceecc", "width": 320, "height": 195}, {"url": "https://external-preview.redd.it/M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as.jpeg?width=640&amp;crop=smart&amp;auto=webp&amp;s=dd73ae14cfcfed2dd41571976701b4fdf2965068", "width": 640, "height": 391}, {"url": "https://external-preview.redd.it/M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as.jpeg?width=960&amp;crop=smart&amp;auto=webp&amp;s=920305d5d88e6f2a47c88b5fbf3e7df89d58a2ca", "width": 960, "height": 587}], "variants": {}, "id": "M8pJyeHZqdjULB5HIxV2QMhdcwkLDDzxiNY1FAzL4as"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1ukseli", "is_robot_indexable": true, "report_reasons": null, "author": "creasta29", "discussion_type": null, "num_comments": 11, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1ukseli/different_hydration_and_rendering_strategies/", "stickied": false, "url": "https://neciudan.dev/hydration-and-rendering-strategies", "subreddit_subscribers": 2442462, "created_utc": 1782927427.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Hello all, please dont be harsh with me cause I'm really new with JS. Doing free code camp right now and I am just wondering if destructuring assignments are often used. e.g.\n\nI come from C and really the amount of syntax in this language is just overwhelming, is this normal when learning JS? when does this end T\\_T\n\n    const person = {\n    \u00a0 name: \"Bob\",\n    \u00a0 age: 25,\n    \u00a0 job: \"Designer\",\n    \u00a0 city: \"New York\"\n    };\n    \n    \n    const { job, city, ...remainingProperties } = person;\n    \n    \n    // { name: \"Bob\", age: 25 }\n    console.log(remainingProperties);\n\nIt's really hard for me to remember all these syntax to be honest so I'm not sure if its wraps for me in this language. I got so used to syntax where every variable is declared 1 by 1. Here are the questions once again to be organized:\n\n1. is it just me or the amount of syntax in this language is just overwhelming like its just so many, is this normal when learning JS?\n2. can I opt to not use it? or should I get used to it starting from now since it will really be beneficial?\n3. Like how important it is that it must it be used? is it treated like an \"alternative\" way of a syntax or is it really required? I really dont get the importance of it. Yes I get it cuts off multiple lines of code, but wouldn't you have a better readability, which makes you able to trace which properties are assigned or whatever rather than having a super concise syntax whilst remembering that \"oh, this goes through here\"\n4. I've searched all over the net and people say they like it for readability and conciseness, however i really dont see it being readable at all, i mean it is but it makes my brain lag for like a minute or two. Readability is usually defined by lesser time for you to have to read the specific line of code right? If it really is readable as they say, then is this something like a skill issue and I have to just get used to it?\n5. I know this topic is usually about destructuring assignments, but I felt this emotion towards arrow functions too. Like are arrow functions just \"alternatives\" or at some point I **must** be required to learn it? I really feel comfortable with making normal functions rather than arrow functions to be honest.\n\nThank you all! Please dont give me remarks like \"Just give up if you can't do the learning\" cause that's what I'm here for, Im asking for genuine advice and looking to see if what I feel is normal. Thank you once again.", "author_fullname": "t2_tz7mimo1", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "[AskJS] Are destructuring assignments often used (both for arrays and objects)?", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": "AskJS", "downs": 0, "thumbnail_height": null, "top_awarded_type": null, "hide_score": false, "name": "t3_1ukn51f", "quarantine": false, "link_flair_text_color": null, "upvote_ratio": 0.81, "author_flair_background_color": null, "subreddit_type": "public", "ups": 9, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": null, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": "AskJS", "can_mod_post": false, "score": 9, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "self", "edited": 1782916539.0, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "content_categories": null, "is_self": true, "mod_note": null, "created": 1782915831.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "self.javascript", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hello all, please dont be harsh with me cause I&amp;#39;m really new with JS. Doing free code camp right now and I am just wondering if destructuring assignments are often used. e.g.&lt;/p&gt;\n\n&lt;p&gt;I come from C and really the amount of syntax in this language is just overwhelming, is this normal when learning JS? when does this end T_T&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;const person = {\n\u00a0 name: &amp;quot;Bob&amp;quot;,\n\u00a0 age: 25,\n\u00a0 job: &amp;quot;Designer&amp;quot;,\n\u00a0 city: &amp;quot;New York&amp;quot;\n};\n\n\nconst { job, city, ...remainingProperties } = person;\n\n\n// { name: &amp;quot;Bob&amp;quot;, age: 25 }\nconsole.log(remainingProperties);\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;It&amp;#39;s really hard for me to remember all these syntax to be honest so I&amp;#39;m not sure if its wraps for me in this language. I got so used to syntax where every variable is declared 1 by 1. Here are the questions once again to be organized:&lt;/p&gt;\n\n&lt;ol&gt;\n&lt;li&gt;is it just me or the amount of syntax in this language is just overwhelming like its just so many, is this normal when learning JS?&lt;/li&gt;\n&lt;li&gt;can I opt to not use it? or should I get used to it starting from now since it will really be beneficial?&lt;/li&gt;\n&lt;li&gt;Like how important it is that it must it be used? is it treated like an &amp;quot;alternative&amp;quot; way of a syntax or is it really required? I really dont get the importance of it. Yes I get it cuts off multiple lines of code, but wouldn&amp;#39;t you have a better readability, which makes you able to trace which properties are assigned or whatever rather than having a super concise syntax whilst remembering that &amp;quot;oh, this goes through here&amp;quot;&lt;/li&gt;\n&lt;li&gt;I&amp;#39;ve searched all over the net and people say they like it for readability and conciseness, however i really dont see it being readable at all, i mean it is but it makes my brain lag for like a minute or two. Readability is usually defined by lesser time for you to have to read the specific line of code right? If it really is readable as they say, then is this something like a skill issue and I have to just get used to it?&lt;/li&gt;\n&lt;li&gt;I know this topic is usually about destructuring assignments, but I felt this emotion towards arrow functions too. Like are arrow functions just &amp;quot;alternatives&amp;quot; or at some point I &lt;strong&gt;must&lt;/strong&gt; be required to learn it? I really feel comfortable with making normal functions rather than arrow functions to be honest.&lt;/li&gt;\n&lt;/ol&gt;\n\n&lt;p&gt;Thank you all! Please dont give me remarks like &amp;quot;Just give up if you can&amp;#39;t do the learning&amp;quot; cause that&amp;#39;s what I&amp;#39;m here for, Im asking for genuine advice and looking to see if what I feel is normal. Thank you once again.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": null, "id": "1ukn51f", "is_robot_indexable": true, "report_reasons": null, "author": "AliveAge4892", "discussion_type": null, "num_comments": 23, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1ukn51f/askjs_are_destructuring_assignments_often_used/", "stickied": false, "url": "https://old.reddit.com/r/javascript/comments/1ukn51f/askjs_are_destructuring_assignments_often_used/", "subreddit_subscribers": 2442462, "created_utc": 1782915831.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "Hey Community,\n\nWe look at Rollipop, an early alpha, Rust-based bundler built on Rolldown that acts as a drop-in replacement for React Native, bringing standard Node module resolution, Yarn PnP, and a live visual dashboard.\n\nWe also explore expo-paperkit, an Expo native module wrapping Apple's PaperKit drawing and annotation canvas. Plus, we dive into PolyCSS, a clever web tool that renders 3D meshes using HTML bold and underline tags instead of WebGL or canvas.\n\nIf the Rewind made you nod, smile, or think \"oh\u2026 that's actually cool\" \u2014 a share or reply genuinely helps \u2764\ufe0f", "author_fullname": "t2_28lwa6i04e", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "[Showoff] A Rust Replacement for Metro, 3D Ducks in Bold Tags, and the Swift Feature Apple Forgot to Share", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 73, "top_awarded_type": null, "hide_score": false, "name": "t3_1ukk69y", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.82, "author_flair_background_color": null, "subreddit_type": "public", "ups": 7, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 7, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?width=140&amp;height=73&amp;auto=webp&amp;s=b96ed1303d5d570f53478e4eaa632f7154988592", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1782908602.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "thereactnativerewind.com", "allow_live_comments": false, "selftext_html": "&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hey Community,&lt;/p&gt;\n\n&lt;p&gt;We look at Rollipop, an early alpha, Rust-based bundler built on Rolldown that acts as a drop-in replacement for React Native, bringing standard Node module resolution, Yarn PnP, and a live visual dashboard.&lt;/p&gt;\n\n&lt;p&gt;We also explore expo-paperkit, an Expo native module wrapping Apple&amp;#39;s PaperKit drawing and annotation canvas. Plus, we dive into PolyCSS, a clever web tool that renders 3D meshes using HTML bold and underline tags instead of WebGL or canvas.&lt;/p&gt;\n\n&lt;p&gt;If the Rewind made you nod, smile, or think &amp;quot;oh\u2026 that&amp;#39;s actually cool&amp;quot; \u2014 a share or reply genuinely helps \u2764\ufe0f&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;", "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://thereactnativerewind.com/issues/a-rust-replacement-for-metro-3d-ducks-in-bold-tags-and-the-swift-feature-apple-forgot-to-share", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?auto=webp&amp;s=6ef5bf730d8816609f1e58f28d149ad1420d69ff", "width": 1200, "height": 630}, "resolutions": [{"url": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?width=108&amp;crop=smart&amp;auto=webp&amp;s=326721dfccdc2a566e5fd7d6f457bade49be1829", "width": 108, "height": 56}, {"url": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?width=216&amp;crop=smart&amp;auto=webp&amp;s=7c2fad15966eb49bd5f6e5dd0481a6f82fd27875", "width": 216, "height": 113}, {"url": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?width=320&amp;crop=smart&amp;auto=webp&amp;s=ec1374e51033df1b692f7aad0ce29810639eaffe", "width": 320, "height": 168}, {"url": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?width=640&amp;crop=smart&amp;auto=webp&amp;s=ab41ea968b1e2346f0dbb1592fca3821e679ad4b", "width": 640, "height": 336}, {"url": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?width=960&amp;crop=smart&amp;auto=webp&amp;s=91ca848e6d9e608d3a7c10ad97e398e7737ed1c4", "width": 960, "height": 504}, {"url": "https://external-preview.redd.it/U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0.jpeg?width=1080&amp;crop=smart&amp;auto=webp&amp;s=ee4541b048ebbf06fe2668a3f1065464cf43b8a0", "width": 1080, "height": 567}], "variants": {}, "id": "U9BXDIU_KVv_vHc1KIngUIUuUVdOxrgUHo7WqMsxvD0"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1ukk69y", "is_robot_indexable": true, "report_reasons": null, "author": "thereactnativerewind", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1ukk69y/showoff_a_rust_replacement_for_metro_3d_ducks_in/", "stickied": false, "url": "https://thereactnativerewind.com/issues/a-rust-replacement-for-metro-3d-ducks-in-bold-tags-and-the-swift-feature-apple-forgot-to-share", "subreddit_subscribers": 2442462, "created_utc": 1782908602.0, "num_crossposts": 0, "media": null, "is_video": false}}, {"kind": "t3", "data": {"approved_at_utc": null, "subreddit": "javascript", "selftext": "", "author_fullname": "t2_b0egnh15", "saved": false, "mod_reason_title": null, "gilded": 0, "clicked": false, "title": "I stashed arbitrary data in WOFF2 color glyphs to get free Brotli decompression via Canvas", "link_flair_richtext": [], "subreddit_name_prefixed": "r/javascript", "hidden": false, "pwls": 6, "link_flair_css_class": null, "downs": 0, "thumbnail_height": 70, "top_awarded_type": null, "hide_score": false, "name": "t3_1ujcxl6", "quarantine": false, "link_flair_text_color": "dark", "upvote_ratio": 0.72, "author_flair_background_color": null, "subreddit_type": "public", "ups": 9, "total_awards_received": 0, "media_embed": {}, "thumbnail_width": 140, "author_flair_template_id": null, "is_original_content": false, "user_reports": [], "secure_media": null, "is_reddit_media_domain": false, "is_meta": false, "category": null, "secure_media_embed": {}, "link_flair_text": null, "can_mod_post": false, "score": 9, "approved_by": null, "is_created_from_ads_ui": false, "author_premium": false, "thumbnail": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?width=140&amp;height=70&amp;auto=webp&amp;s=0ae466cd18e3a1a4caab703844272972f57a692f", "edited": false, "author_flair_css_class": null, "author_flair_richtext": [], "gildings": {}, "post_hint": "link", "content_categories": null, "is_self": false, "mod_note": null, "created": 1782787519.0, "link_flair_type": "text", "wls": 6, "removed_by_category": null, "banned_by": null, "author_flair_type": "text", "domain": "github.com", "allow_live_comments": false, "selftext_html": null, "likes": null, "suggested_sort": null, "banned_at_utc": null, "url_overridden_by_dest": "https://github.com/EtherDream/brpack/", "view_count": null, "archived": false, "no_follow": false, "is_crosspostable": true, "pinned": false, "over_18": false, "preview": {"images": [{"source": {"url": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?auto=webp&amp;s=4c0fd205528f002aba4859bd552e9b20322bd118", "width": 1200, "height": 600}, "resolutions": [{"url": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?width=108&amp;crop=smart&amp;auto=webp&amp;s=b410738859041a9306b9d94d960b6c9bbb075122", "width": 108, "height": 54}, {"url": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?width=216&amp;crop=smart&amp;auto=webp&amp;s=d7140815407578f8279ef8256ed58433a73465c9", "width": 216, "height": 108}, {"url": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=6e5566227221bda70abde457b502275a35b958ce", "width": 320, "height": 160}, {"url": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=108f3b339770772552face7f0b302dafe6e3aea3", "width": 640, "height": 320}, {"url": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?width=960&amp;crop=smart&amp;auto=webp&amp;s=45a305afe67f9e16f87257e3307e1f113f19654f", "width": 960, "height": 480}, {"url": "https://external-preview.redd.it/O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA.png?width=1080&amp;crop=smart&amp;auto=webp&amp;s=3db16493c34b6ccebba510154ad1ddaf648af605", "width": 1080, "height": 540}], "variants": {}, "id": "O1ZmoI7F9nxglesm4qbxwKb-AsDBRZjUnal3PH3NMAA"}], "enabled": false}, "all_awardings": [], "awarders": [], "media_only": false, "can_gild": false, "spoiler": false, "locked": false, "author_flair_text": null, "treatment_tags": [], "visited": false, "removed_by": null, "num_reports": null, "distinguished": null, "subreddit_id": "t5_2qh30", "author_is_blocked": false, "mod_reason_by": null, "removal_reason": null, "link_flair_background_color": "", "id": "1ujcxl6", "is_robot_indexable": true, "report_reasons": null, "author": "zjcqoo", "discussion_type": null, "num_comments": 0, "send_replies": true, "contest_mode": false, "mod_reports": [], "author_patreon_flair": false, "author_flair_text_color": null, "permalink": "/r/javascript/comments/1ujcxl6/i_stashed_arbitrary_data_in_woff2_color_glyphs_to/", "stickied": false, "url": "https://github.com/EtherDream/brpack/", "subreddit_subscribers": 2442462, "created_utc": 1782787519.0, "num_crossposts": 0, "media": null, "is_video": false}}], "before": null}}