[{"type_of":"article","id":4337919,"title":"Dead-pixel test sites are just colored divs — the actual engineering problem is the Fullscreen API, not the colors","description":"I bought a used monitor a while back and did what everyone tells you to do first: pull up an online...","readable_publish_date":"Aug 7","slug":"dead-pixel-test-sites-are-just-colored-divs-the-actual-engineering-problem-is-the-fullscreen-api-2a22","path":"/begoodtool/dead-pixel-test-sites-are-just-colored-divs-the-actual-engineering-problem-is-the-fullscreen-api-2a22","url":"https://dev.to/begoodtool/dead-pixel-test-sites-are-just-colored-divs-the-actual-engineering-problem-is-the-fullscreen-api-2a22","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-08-07T07:00:03Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgfvyalziqci96d6rsltr.png","canonical_url":"https://dev.to/begoodtool/dead-pixel-test-sites-are-just-colored-divs-the-actual-engineering-problem-is-the-fullscreen-api-2a22","created_at":"2026-08-07T07:00:03Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T07:00:03Z","last_comment_at":"2026-08-07T07:00:03Z","reading_time_minutes":6,"tag_list":["javascript","vue","css"],"tags":"javascript, vue, css","user":{"name":"Vera Yang","username":"vera_yang_tw","twitter_username":null,"github_username":"YunTaoLin","user_id":4050846,"website_url":"https://begoodtool.com/home/en","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4050846%2Fc00ec23d-dfa1-4afd-8328-7d212480df15.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4050846%2Fc00ec23d-dfa1-4afd-8328-7d212480df15.png"},"organization":{"name":"BeGoodTool.com","username":"begoodtool","slug":"begoodtool","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14295%2Fd519278f-433a-4dab-9489-447ef51fc6d4.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14295%2Fd519278f-433a-4dab-9489-447ef51fc6d4.jpg"}},{"type_of":"article","id":4345219,"title":"Converting SVG strokes to fills in the browser: the geometry problem nobody warns you about","description":"A while back I was building an icon font with IcoMoon. I dragged in my SVGs, hit generate, and about...","readable_publish_date":"Aug 8","slug":"converting-svg-strokes-to-fills-in-the-browser-the-geometry-problem-nobody-warns-you-about-9ko","path":"/svg_garagemade/converting-svg-strokes-to-fills-in-the-browser-the-geometry-problem-nobody-warns-you-about-9ko","url":"https://dev.to/svg_garagemade/converting-svg-strokes-to-fills-in-the-browser-the-geometry-problem-nobody-warns-you-about-9ko","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-08T01:50:16Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F99y84zfojeyygili9rvb.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F99y84zfojeyygili9rvb.png","canonical_url":"https://dev.to/svg_garagemade/converting-svg-strokes-to-fills-in-the-browser-the-geometry-problem-nobody-warns-you-about-9ko","created_at":"2026-08-08T01:50:16Z","edited_at":"2026-08-08T01:53:14Z","crossposted_at":null,"published_at":"2026-08-08T01:50:16Z","last_comment_at":"2026-08-08T01:50:16Z","reading_time_minutes":6,"tag_list":["webdev","svg","graphics","javascript"],"tags":"webdev, svg, graphics, javascript","user":{"name":"Oleksii","username":"svg_garagemade","twitter_username":null,"github_username":null,"user_id":4068207,"website_url":"https://svg.garagemade.app/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068207%2F4fb09d7b-fb1e-42b0-b69c-822d981aa95d.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068207%2F4fb09d7b-fb1e-42b0-b69c-822d981aa95d.png"}},{"type_of":"article","id":4344667,"title":"No build step, no bundler: 11 things that broke shipping Three.js into an iframe","description":"The constraint I gave myself was stupid and I would do it again. Two 3D games, real ones with physics...","readable_publish_date":"Aug 8","slug":"no-build-step-no-bundler-11-things-that-broke-shipping-threejs-into-an-iframe-2292","path":"/kentog751/no-build-step-no-bundler-11-things-that-broke-shipping-threejs-into-an-iframe-2292","url":"https://dev.to/kentog751/no-build-step-no-bundler-11-things-that-broke-shipping-threejs-into-an-iframe-2292","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-08T00:33:15Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr8e6xnb3kv666x7nctgv.png","canonical_url":"https://dev.to/kentog751/no-build-step-no-bundler-11-things-that-broke-shipping-threejs-into-an-iframe-2292","created_at":"2026-08-08T00:33:15Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-08T00:33:15Z","last_comment_at":"2026-08-08T00:33:15Z","reading_time_minutes":10,"tag_list":["threejs","javascript","webgl","gamedev"],"tags":"threejs, javascript, webgl, gamedev","user":{"name":"kentog751","username":"kentog751","twitter_username":null,"github_username":"kentog751","user_id":4068181,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068181%2F4bcea506-9dee-4bd4-bef5-ce1927d95d54.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068181%2F4bcea506-9dee-4bd4-bef5-ce1927d95d54.png"}},{"type_of":"article","id":4343422,"title":"Auth for an AI Feature: Who Pays for This Call?","description":"Resolving every request to a payer before the model sees it, and holding the money before spending it so concurrency cannot overdraw an account.","readable_publish_date":"Aug 7","slug":"auth-for-an-ai-feature-who-pays-for-this-call-4jm5","path":"/multigrid/auth-for-an-ai-feature-who-pays-for-this-call-4jm5","url":"https://dev.to/multigrid/auth-for-an-ai-feature-who-pays-for-this-call-4jm5","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T21:39:00Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1zt7oriwxj9irh1v1d9i.png","canonical_url":"https://multigrid.ai/learn/ai-feature-auth","created_at":"2026-08-07T21:39:00Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T21:39:00Z","last_comment_at":"2026-08-07T21:39:00Z","reading_time_minutes":8,"tag_list":["ai","javascript","tutorial","llm"],"tags":"ai, javascript, tutorial, llm","user":{"name":"Multigrid","username":"multigrid","twitter_username":null,"github_username":null,"user_id":4035895,"website_url":"https://multigrid.ai","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4035895%2F376e2fa1-ea84-490e-a044-401a5dbeea9b.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4035895%2F376e2fa1-ea84-490e-a044-401a5dbeea9b.png"}},{"type_of":"article","id":4342794,"title":"Zero bytes of geometry: a metal lattice sphere-traced in a 14.9 KB page","description":"There is no model file on this page. No mesh, no texture, no .glb, no HDR environment map. The object...","readable_publish_date":"Aug 7","slug":"zero-bytes-of-geometry-a-metal-lattice-sphere-traced-in-a-149-kb-page-kib","path":"/smirnovartur/zero-bytes-of-geometry-a-metal-lattice-sphere-traced-in-a-149-kb-page-kib","url":"https://dev.to/smirnovartur/zero-bytes-of-geometry-a-metal-lattice-sphere-traced-in-a-149-kb-page-kib","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T21:04:59Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fis3rrj9vaq9cy7yim3v4.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fis3rrj9vaq9cy7yim3v4.jpg","canonical_url":"https://dev.to/smirnovartur/zero-bytes-of-geometry-a-metal-lattice-sphere-traced-in-a-149-kb-page-kib","created_at":"2026-08-07T19:53:16Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T21:04:59Z","last_comment_at":"2026-08-07T21:04:59Z","reading_time_minutes":5,"tag_list":["graphics","javascript","showdev","webgl"],"tags":"graphics, javascript, showdev, webgl","user":{"name":"Artur Smirnov","username":"smirnovartur","twitter_username":null,"github_username":null,"user_id":4068031,"website_url":"https://smirnov-artur.github.io/webgl","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068031%2F9065477c-579d-45f4-9d86-d75f58a50e8f.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068031%2F9065477c-579d-45f4-9d86-d75f58a50e8f.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4343905,"title":"Stop Using Props + Watchers Just to Trigger Actions in Child Components (Vue 3.5 useTemplateRef + defineExpose)","description":"Replace the messy props and watchers anti-pattern in Vue 3 with direct child method execution using defineExpose and Vue 3.5's useTemplateRef.","readable_publish_date":"Aug 7","slug":"stop-using-props-watchers-just-to-trigger-actions-in-child-components-vue-35-usetemplateref--5gdk","path":"/kickbuttowski80/stop-using-props-watchers-just-to-trigger-actions-in-child-components-vue-35-usetemplateref--5gdk","url":"https://dev.to/kickbuttowski80/stop-using-props-watchers-just-to-trigger-actions-in-child-components-vue-35-usetemplateref--5gdk","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T22:41:36Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1629360021730-3d258452c425%3Fq%3D80%26w%3D1170%26auto%3Dformat%26fit%3Dcrop%26ixlib%3Drb-4.1.0%26ixid%3DM3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%253D%253D","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1629360021730-3d258452c425%3Fq%3D80%26w%3D1170%26auto%3Dformat%26fit%3Dcrop%26ixlib%3Drb-4.1.0%26ixid%3DM3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%253D%253D","canonical_url":"https://dev.to/kickbuttowski80/stop-using-props-watchers-just-to-trigger-actions-in-child-components-vue-35-usetemplateref--5gdk","created_at":"2026-08-07T22:41:36Z","edited_at":"2026-08-07T22:45:26Z","crossposted_at":null,"published_at":"2026-08-07T22:41:36Z","last_comment_at":"2026-08-07T22:41:36Z","reading_time_minutes":3,"tag_list":["vue","javascript","webdev","frontend"],"tags":"vue, javascript, webdev, frontend","user":{"name":"Izak T","username":"kickbuttowski80","twitter_username":null,"github_username":"KickButtowski80","user_id":98383,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F98383%2Ff6294d6b-373a-4e86-8694-ca306979a3eb.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F98383%2Ff6294d6b-373a-4e86-8694-ca306979a3eb.jpeg"}},{"type_of":"article","id":4343818,"title":"Sending an Image to a Model From the Browser","description":"Resizing in the browser before upload, a signed upload that does not proxy bytes through your server, and the tile arithmetic that caps the bill.","readable_publish_date":"Aug 7","slug":"sending-an-image-to-a-model-from-the-browser-8bd","path":"/multigrid/sending-an-image-to-a-model-from-the-browser-8bd","url":"https://dev.to/multigrid/sending-an-image-to-a-model-from-the-browser-8bd","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T22:31:57Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhqejek9b26ovy5eqwm6s.png","canonical_url":"https://multigrid.ai/learn/browser-image-upload-llm","created_at":"2026-08-07T22:31:57Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T22:31:57Z","last_comment_at":"2026-08-07T22:31:57Z","reading_time_minutes":7,"tag_list":["ai","javascript","tutorial","llm"],"tags":"ai, javascript, tutorial, llm","user":{"name":"Multigrid","username":"multigrid","twitter_username":null,"github_username":null,"user_id":4035895,"website_url":"https://multigrid.ai","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4035895%2F376e2fa1-ea84-490e-a044-401a5dbeea9b.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4035895%2F376e2fa1-ea84-490e-a044-401a5dbeea9b.png"}},{"type_of":"article","id":4343345,"title":"I built an OKLCH palette generator for pixel art and UI","description":"Hi! I built OKLCH Pixel Palette, a free and open-source browser tool for generating color palettes...","readable_publish_date":"Aug 7","slug":"i-built-an-oklch-palette-generator-for-pixel-art-and-ui-27id","path":"/ivan_kulkin_1522025957eee/i-built-an-oklch-palette-generator-for-pixel-art-and-ui-27id","url":"https://dev.to/ivan_kulkin_1522025957eee/i-built-an-oklch-palette-generator-for-pixel-art-and-ui-27id","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T21:25:47Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F99n8vqzuv0sabjh9ypkv.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F99n8vqzuv0sabjh9ypkv.png","canonical_url":"https://dev.to/ivan_kulkin_1522025957eee/i-built-an-oklch-palette-generator-for-pixel-art-and-ui-27id","created_at":"2026-08-07T21:25:47Z","edited_at":"2026-08-07T21:26:22Z","crossposted_at":null,"published_at":"2026-08-07T21:25:47Z","last_comment_at":"2026-08-07T21:25:47Z","reading_time_minutes":1,"tag_list":["showdev","webdev","css","javascript"],"tags":"showdev, webdev, css, javascript","user":{"name":"ivan kulkin","username":"ivan_kulkin_1522025957eee","twitter_username":null,"github_username":null,"user_id":4068094,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068094%2F2d1b3752-35a2-43b5-b932-d072f98dc8e7.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068094%2F2d1b3752-35a2-43b5-b932-d072f98dc8e7.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4343101,"title":"Fixing the Language That Forgot to Switch","description":"Devlog #7 — Fixing the Language That Forgot to Switch   Project: Moksha Version: v0.0.9...","readable_publish_date":"Aug 7","slug":"devlog-11-fixing-the-language-that-forgot-to-switch-5bh7","path":"/weirdcodesofficial/devlog-11-fixing-the-language-that-forgot-to-switch-5bh7","url":"https://dev.to/weirdcodesofficial/devlog-11-fixing-the-language-that-forgot-to-switch-5bh7","comments_count":0,"public_reactions_count":1,"collection_id":42618,"published_timestamp":"2026-08-07T20:57:00Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrhfb61bf525oj61mdbv.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrhfb61bf525oj61mdbv.png","canonical_url":"https://weirdcodes.itch.io/moksha/devlog/1620607/devlog-11-fixing-the-language-that-forgot-to-switch","created_at":"2026-08-07T20:56:11Z","edited_at":"2026-08-07T21:03:47Z","crossposted_at":null,"published_at":"2026-08-07T20:57:00Z","last_comment_at":"2026-08-07T20:57:00Z","reading_time_minutes":3,"tag_list":["html","javascript","gamedev","webdev"],"tags":"html, javascript, gamedev, webdev","user":{"name":"Weird Codes","username":"weirdcodesofficial","twitter_username":"weirdcodesx","github_username":"weirdcodesofficial","user_id":4042905,"website_url":"https://weirdcodes.itch.io/moksha","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4042905%2F2e1a1cad-299d-4f29-9935-8b5ffdd96b99.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4042905%2F2e1a1cad-299d-4f29-9935-8b5ffdd96b99.png"}},{"type_of":"article","id":4343845,"title":"Channeling My Inner Gandalf: Go Concurrency Patterns","description":"The Quest Begins (The \"Why\")   I still remember the first time I tried to make a Go program...","readable_publish_date":"Aug 7","slug":"channeling-my-inner-gandalf-go-concurrency-patterns-403c","path":"/timevolt/channeling-my-inner-gandalf-go-concurrency-patterns-403c","url":"https://dev.to/timevolt/channeling-my-inner-gandalf-go-concurrency-patterns-403c","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T22:35:02Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqmhsdcyvkgei0ln2skx4.png","canonical_url":"https://dev.to/timevolt/channeling-my-inner-gandalf-go-concurrency-patterns-403c","created_at":"2026-08-07T22:35:02Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T22:35:02Z","last_comment_at":"2026-08-07T22:35:02Z","reading_time_minutes":5,"tag_list":["programming","python","javascript","coding"],"tags":"programming, python, javascript, coding","user":{"name":"Timevolt","username":"timevolt","twitter_username":null,"github_username":"Timevolt01","user_id":1440418,"website_url":"https://www.jayantpotdar.in/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1440418%2F0ec1f073-2ff7-45d9-a14d-b02627125abc.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1440418%2F0ec1f073-2ff7-45d9-a14d-b02627125abc.jpeg"}},{"type_of":"article","id":4342876,"title":"Day 1: Variables, Data Types \u0026 Operators","description":"📦 What is a variable?  A labeled box that stores a value so you can use it later.  JavaScript gives...","readable_publish_date":"Aug 7","slug":"day-1-variables-data-types-operators-emo","path":"/briankipchirchir77/day-1-variables-data-types-operators-emo","url":"https://dev.to/briankipchirchir77/day-1-variables-data-types-operators-emo","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T20:11:50Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwt77eajg1jzlcs7mw0ps.png","canonical_url":"https://dev.to/briankipchirchir77/day-1-variables-data-types-operators-emo","created_at":"2026-08-07T20:11:50Z","edited_at":"2026-08-07T21:04:20Z","crossposted_at":null,"published_at":"2026-08-07T20:11:50Z","last_comment_at":"2026-08-07T20:11:50Z","reading_time_minutes":6,"tag_list":["beginners","javascript","programming","tutorial"],"tags":"beginners, javascript, programming, tutorial","user":{"name":"Brian Kipchirchir","username":"briankipchirchir77","twitter_username":null,"github_username":"Briankipchirchir77","user_id":4016306,"website_url":"https://briankipchirchir77.github.io/BRIANK-PORTFOLIO-WEBSITE/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4016306%2F07304ced-8b58-4a1e-b9b8-d708604e1118.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4016306%2F07304ced-8b58-4a1e-b9b8-d708604e1118.jpg"}},{"type_of":"article","id":4341414,"title":"Five ways to build a save panel, three of them correct","description":"Here is a save panel: a spinner, an error banner, a dirty marker, a confirm dialog, and a closed...","readable_publish_date":"Aug 7","slug":"five-ways-to-build-a-save-panel-three-of-them-correct-fla","path":"/svyatov/five-ways-to-build-a-save-panel-three-of-them-correct-fla","url":"https://dev.to/svyatov/five-ways-to-build-a-save-panel-three-of-them-correct-fla","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-08-07T14:16:46Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxob4ttbfzosnkgiegcxx.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxob4ttbfzosnkgiegcxx.png","canonical_url":"https://dev.to/svyatov/five-ways-to-build-a-save-panel-three-of-them-correct-fla","created_at":"2026-08-07T14:15:01Z","edited_at":"2026-08-07T14:17:32Z","crossposted_at":null,"published_at":"2026-08-07T14:16:46Z","last_comment_at":"2026-08-07T14:16:46Z","reading_time_minutes":25,"tag_list":["typescript","javascript","webdev","programming"],"tags":"typescript, javascript, webdev, programming","user":{"name":"Leonid Svyatov","username":"svyatov","twitter_username":null,"github_username":"svyatov","user_id":122709,"website_url":"https://www.svyatov.com","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F122709%2F4d89b6fb-d4ad-4af4-9c12-8cb53789179c.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F122709%2F4d89b6fb-d4ad-4af4-9c12-8cb53789179c.jpeg"}},{"type_of":"article","id":4341410,"title":"Google Trends 429s your first request. The fix is 106 bytes.","description":"If you have ever tried to pull data from Google Trends programmatically, you have met this:    HTTP...","readable_publish_date":"Aug 7","slug":"google-trends-429s-your-first-request-the-fix-is-106-bytes-2p40","path":"/vladimir_triphonov/google-trends-429s-your-first-request-the-fix-is-106-bytes-2p40","url":"https://dev.to/vladimir_triphonov/google-trends-429s-your-first-request-the-fix-is-106-bytes-2p40","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-08-07T14:15:08Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F81ctex388v891tvkyhcf.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F81ctex388v891tvkyhcf.png","canonical_url":"https://dev.to/vladimir_triphonov/google-trends-429s-your-first-request-the-fix-is-106-bytes-2p40","created_at":"2026-08-07T14:14:41Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T14:15:08Z","last_comment_at":"2026-08-07T14:15:08Z","reading_time_minutes":7,"tag_list":["webscraping","javascript","api","tutorial"],"tags":"webscraping, javascript, api, tutorial","user":{"name":"Vladimir Triphonov","username":"vladimir_triphonov","twitter_username":null,"github_username":null,"user_id":4067586,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067586%2F7be226b7-e47c-4ecb-8691-dcd08bba4a38.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067586%2F7be226b7-e47c-4ecb-8691-dcd08bba4a38.jpg"}},{"type_of":"article","id":4341592,"title":"I built a headless timeline/Gantt for React — would love some feedback","description":"I needed a scheduling view for a project of mine, wanted it to stay fast with a lot of items and to...","readable_publish_date":"Aug 7","slug":"i-built-a-headless-timelinegantt-for-react-would-love-some-feedback-11da","path":"/kriklivyy22/i-built-a-headless-timelinegantt-for-react-would-love-some-feedback-11da","url":"https://dev.to/kriklivyy22/i-built-a-headless-timelinegantt-for-react-would-love-some-feedback-11da","comments_count":3,"public_reactions_count":8,"collection_id":null,"published_timestamp":"2026-08-07T14:45:50Z","language":"en","subforem_id":1,"positive_reactions_count":8,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F91laaamxj800lrt3h5lb.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F91laaamxj800lrt3h5lb.png","canonical_url":"https://dev.to/kriklivyy22/i-built-a-headless-timelinegantt-for-react-would-love-some-feedback-11da","created_at":"2026-08-07T14:45:50Z","edited_at":"2026-08-07T14:53:54Z","crossposted_at":null,"published_at":"2026-08-07T14:45:50Z","last_comment_at":"2026-08-07T17:21:53Z","reading_time_minutes":2,"tag_list":["react","gantt","javascript","typescript"],"tags":"react, gantt, javascript, typescript","user":{"name":"Ruslan Kriklivyy","username":"kriklivyy22","twitter_username":"kriklivyy22","github_username":null,"user_id":1047223,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1047223%2Fe7fa445b-cefc-46da-8ae5-1da039785fee.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1047223%2Fe7fa445b-cefc-46da-8ae5-1da039785fee.jpg"}},{"type_of":"article","id":4342388,"title":"The SVG Path Data Format, Explained (M, L, C, Q, A, Z)","description":"What the d attribute actually contains, what each path command does, absolute vs relative coordinates, and why hand-editing path data breaks down at scale.","readable_publish_date":"Aug 7","slug":"the-svg-path-data-format-explained-m-l-c-q-a-z-52k1","path":"/usman_basheers/the-svg-path-data-format-explained-m-l-c-q-a-z-52k1","url":"https://dev.to/usman_basheers/the-svg-path-data-format-explained-m-l-c-q-a-z-52k1","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T17:53:56Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F792znssv7spk92eg4qvl.png","canonical_url":"https://svglab.app/blog/editing-svg-paths-in-the-browser","created_at":"2026-08-07T17:53:56Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T17:53:56Z","last_comment_at":"2026-08-07T17:53:56Z","reading_time_minutes":4,"tag_list":["svg","webdev","javascript","css"],"tags":"svg, webdev, javascript, css","user":{"name":"Usman Bashir","username":"usman_basheers","twitter_username":"usman_basheers","github_username":null,"user_id":4065175,"website_url":"https://svglab.app/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4065175%2F505f679e-e978-4c9a-9070-6a534301d15f.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4065175%2F505f679e-e978-4c9a-9070-6a534301d15f.png"}},{"type_of":"article","id":4342353,"title":"Construindo uma aplicação web completa com JavaScript vanilla + Firebase: o projeto Connecta","description":"👋 Olá! Sou Pedro Queiroz, dev web focado em JavaScript e Firebase. Este é meu primeiro post aqui e...","readable_publish_date":"Aug 7","slug":"construindo-uma-aplicacao-web-completa-com-javascript-vanilla-firebase-o-projeto-connecta-4k25","path":"/pedro_henriquepdrum_f624/construindo-uma-aplicacao-web-completa-com-javascript-vanilla-firebase-o-projeto-connecta-4k25","url":"https://dev.to/pedro_henriquepdrum_f624/construindo-uma-aplicacao-web-completa-com-javascript-vanilla-firebase-o-projeto-connecta-4k25","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T17:41:03Z","language":"pt","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb83cloednzittw4we9au.png","canonical_url":"https://dev.to/pedro_henriquepdrum_f624/construindo-uma-aplicacao-web-completa-com-javascript-vanilla-firebase-o-projeto-connecta-4k25","created_at":"2026-08-07T17:41:03Z","edited_at":"2026-08-07T17:43:03Z","crossposted_at":null,"published_at":"2026-08-07T17:41:03Z","last_comment_at":"2026-08-07T17:41:03Z","reading_time_minutes":2,"tag_list":["showdev","javascript","firebase","webdev"],"tags":"showdev, javascript, firebase, webdev","user":{"name":"Pedro Henrique ","username":"pedro_henriquepdrum_f624","twitter_username":null,"github_username":null,"user_id":4067900,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067900%2F3682c9e2-e39b-4e20-8d11-f188bc73d5b0.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067900%2F3682c9e2-e39b-4e20-8d11-f188bc73d5b0.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4342347,"title":"I Built \"AirDrop for Text\" with Node.js, Socket.IO and a QR Code — No Cloud, No Accounts","description":"I kept emailing myself code snippets and URLs just to move them from my phone to my PC. Cloud notes...","readable_publish_date":"Aug 7","slug":"i-built-airdrop-for-text-with-nodejs-socketio-and-a-qr-code-no-cloud-no-accounts-4oae","path":"/abtechguide/i-built-airdrop-for-text-with-nodejs-socketio-and-a-qr-code-no-cloud-no-accounts-4oae","url":"https://dev.to/abtechguide/i-built-airdrop-for-text-with-nodejs-socketio-and-a-qr-code-no-cloud-no-accounts-4oae","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-08-07T17:39:19Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7wpvu6spuhe6w6x0sjd7.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7wpvu6spuhe6w6x0sjd7.png","canonical_url":"https://dev.to/abtechguide/i-built-airdrop-for-text-with-nodejs-socketio-and-a-qr-code-no-cloud-no-accounts-4oae","created_at":"2026-08-07T17:39:19Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T17:39:19Z","last_comment_at":"2026-08-07T17:39:19Z","reading_time_minutes":2,"tag_list":["javascript","node","showdev","webdev"],"tags":"javascript, node, showdev, webdev","user":{"name":"Aashu Bhat","username":"abtechguide","twitter_username":null,"github_username":null,"user_id":4067908,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067908%2F0e865f68-7170-4b9d-8d58-983c9325ee85.gif","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067908%2F0e865f68-7170-4b9d-8d58-983c9325ee85.gif"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4341870,"title":"Glucose math looks trivial until you ship it: five rules from a production CGM app","description":"We build Sugar Sense, a CGM companion app that connects to FreeStyle Libre, Dexcom and Nightscout and...","readable_publish_date":"Aug 7","slug":"glucose-math-looks-trivial-until-you-ship-it-five-rules-from-a-production-cgm-app-2ia0","path":"/sugarsense/glucose-math-looks-trivial-until-you-ship-it-five-rules-from-a-production-cgm-app-2ia0","url":"https://dev.to/sugarsense/glucose-math-looks-trivial-until-you-ship-it-five-rules-from-a-production-cgm-app-2ia0","comments_count":1,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-08-07T15:47:08Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb37omq3idsuunldwdroh.png","canonical_url":"https://dev.to/sugarsense/glucose-math-looks-trivial-until-you-ship-it-five-rules-from-a-production-cgm-app-2ia0","created_at":"2026-08-07T15:47:08Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T15:47:08Z","last_comment_at":"2026-08-07T16:21:46Z","reading_time_minutes":3,"tag_list":["showdev","opensource","javascript","ruby"],"tags":"showdev, opensource, javascript, ruby","user":{"name":"Sugar Sense","username":"sugarsense","twitter_username":null,"github_username":"sugarsense","user_id":4067778,"website_url":"https://sugarsense.io","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067778%2F06bda92c-d1ab-443a-89c1-092727995b89.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067778%2F06bda92c-d1ab-443a-89c1-092727995b89.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4341516,"title":"I Built a Hashtag Safety Checker After Watching a Brand Accidentally Promote a Banned Tag to 50K Followers","description":"The Incident That Started Everything   A few years ago, I was doing some freelance social...","readable_publish_date":"Aug 7","slug":"i-built-a-hashtag-safety-checker-after-watching-a-brand-accidentally-promote-a-banned-tag-to-50k-46k2","path":"/getinfotoyou/i-built-a-hashtag-safety-checker-after-watching-a-brand-accidentally-promote-a-banned-tag-to-50k-46k2","url":"https://dev.to/getinfotoyou/i-built-a-hashtag-safety-checker-after-watching-a-brand-accidentally-promote-a-banned-tag-to-50k-46k2","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T14:31:07Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxeg1a61clde6uotw2vw7.png","canonical_url":"https://dev.to/getinfotoyou/i-built-a-hashtag-safety-checker-after-watching-a-brand-accidentally-promote-a-banned-tag-to-50k-46k2","created_at":"2026-08-07T14:31:07Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T14:31:07Z","last_comment_at":"2026-08-07T15:16:12Z","reading_time_minutes":3,"tag_list":["webdev","socialmedia","javascript","buildinpublic"],"tags":"webdev, socialmedia, javascript, buildinpublic","user":{"name":"Getinfo Toyou","username":"getinfotoyou","twitter_username":null,"github_username":null,"user_id":3794901,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3794901%2Fcdf356ed-ee53-474c-a1a2-73ee4d5bbeb5.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3794901%2Fcdf356ed-ee53-474c-a1a2-73ee4d5bbeb5.png"}},{"type_of":"article","id":4343846,"title":"🔥 How We Reached 100/100 Google Lighthouse Score on a Complex SaaS","description":"🔥 How We Reached 100/100 Google Lighthouse Score on a Complex SaaS   Have you ever wondered...","readable_publish_date":"Aug 7","slug":"how-we-reached-100100-google-lighthouse-score-on-a-complex-saas-3n29","path":"/chobh1024/how-we-reached-100100-google-lighthouse-score-on-a-complex-saas-3n29","url":"https://dev.to/chobh1024/how-we-reached-100100-google-lighthouse-score-on-a-complex-saas-3n29","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T22:35:05Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhatjrooxovxhig4kxdl1.png","canonical_url":"https://dev.to/chobh1024/how-we-reached-100100-google-lighthouse-score-on-a-complex-saas-3n29","created_at":"2026-08-07T22:35:05Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T22:35:05Z","last_comment_at":"2026-08-07T22:35:05Z","reading_time_minutes":1,"tag_list":["performance","webdev","seo","javascript"],"tags":"performance, webdev, seo, javascript","user":{"name":"CHOBH1024","username":"chobh1024","twitter_username":null,"github_username":"CHOBH1024","user_id":4050980,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4050980%2F6af7a96b-f569-447e-9f49-778a124f78a3.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4050980%2F6af7a96b-f569-447e-9f49-778a124f78a3.png"}},{"type_of":"article","id":4341231,"title":"I Built a Free GPS Altitude Finder — Here's What I Learned Shipping a PWA With No Backend","description":"The problem   I kept wanting to know my exact altitude while hiking. Every option I found...","readable_publish_date":"Aug 7","slug":"i-built-a-free-gps-altitude-finder-heres-what-i-learned-shipping-a-pwa-with-no-backend-40fa","path":"/imamovelay0hue/i-built-a-free-gps-altitude-finder-heres-what-i-learned-shipping-a-pwa-with-no-backend-40fa","url":"https://dev.to/imamovelay0hue/i-built-a-free-gps-altitude-finder-heres-what-i-learned-shipping-a-pwa-with-no-backend-40fa","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-08-07T13:48:03Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F380wvtbud2ekdlq6hjuy.png","canonical_url":"https://dev.to/imamovelay0hue/i-built-a-free-gps-altitude-finder-heres-what-i-learned-shipping-a-pwa-with-no-backend-40fa","created_at":"2026-08-07T13:41:17Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T13:48:03Z","last_comment_at":"2026-08-07T13:48:03Z","reading_time_minutes":2,"tag_list":["showdev","javascript","webdev","pwa"],"tags":"showdev, javascript, webdev, pwa","user":{"name":"imamovelay0-hue","username":"imamovelay0hue","twitter_username":null,"github_username":"imamovelay0-hue","user_id":4067602,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067602%2Fd27b308d-cfc1-41fe-841e-6765ad2d1f40.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067602%2Fd27b308d-cfc1-41fe-841e-6765ad2d1f40.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4342170,"title":"OCR and sign a PDF entirely in the browser — no upload, no server","description":"Most \"free online PDF\" tools quietly upload your document to a server. For a signed contract or a...","readable_publish_date":"Aug 7","slug":"ocr-and-sign-a-pdf-entirely-in-the-browser-no-upload-no-server-2pjl","path":"/lucian_lkb_1f009d/ocr-and-sign-a-pdf-entirely-in-the-browser-no-upload-no-server-2pjl","url":"https://dev.to/lucian_lkb_1f009d/ocr-and-sign-a-pdf-entirely-in-the-browser-no-upload-no-server-2pjl","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T16:55:18Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft1dfzxfj6i2yxn8z8mde.png","canonical_url":"https://lkforge.com/tools/pdf/ocr-pdf/","created_at":"2026-08-07T16:52:19Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T16:55:18Z","last_comment_at":"2026-08-07T16:55:18Z","reading_time_minutes":5,"tag_list":["javascript","webassembly","pdf","showdev"],"tags":"javascript, webassembly, pdf, showdev","user":{"name":"Lucian (LKB)","username":"lucian_lkb_1f009d","twitter_username":"LKForge","github_username":null,"user_id":4026097,"website_url":"https://lkforge.com","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4026097%2Feb9247a0-cd26-41b9-9613-ddcb120a9d66.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4026097%2Feb9247a0-cd26-41b9-9613-ddcb120a9d66.jpg"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4344187,"title":"🏃 The Ultimate Guide to Movement in Limn Engine","description":"🏃 The Ultimate Guide to Movement in Limn Engine   Everything You Need to Know About Moving...","readable_publish_date":"Aug 7","slug":"the-ultimate-guide-to-movement-in-limn-engine-hba","path":"/kehinde_owolabi_e2e54567a/the-ultimate-guide-to-movement-in-limn-engine-hba","url":"https://dev.to/kehinde_owolabi_e2e54567a/the-ultimate-guide-to-movement-in-limn-engine-hba","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T23:26:30Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkwh61x22z4y0h6088n5b.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkwh61x22z4y0h6088n5b.png","canonical_url":"https://dev.to/kehinde_owolabi_e2e54567a/the-ultimate-guide-to-movement-in-limn-engine-hba","created_at":"2026-08-07T23:26:30Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T23:26:30Z","last_comment_at":"2026-08-07T23:26:30Z","reading_time_minutes":11,"tag_list":["javascript","tutorial","beginners","discuss"],"tags":"javascript, tutorial, beginners, discuss","user":{"name":"Kehinde Owolabi","username":"kehinde_owolabi_e2e54567a","twitter_username":null,"github_username":"terracodes004","user_id":3480586,"website_url":"https://limn-engine-doc.vercel.app/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3480586%2F6714a0bc-49c6-40be-bf45-1be2cb3ba21a.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3480586%2F6714a0bc-49c6-40be-bf45-1be2cb3ba21a.jpg"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":4340760,"title":"Filtering, and Pagination in Next.js 15 The Pattern I Actually Use","description":"Every dashboard eventually needs the same three things. A search box, a few filters, and pagination...","readable_publish_date":"Aug 7","slug":"filtering-and-pagination-in-nextjs-15-the-pattern-i-actually-use-57jk","path":"/anas_sheikh_2/filtering-and-pagination-in-nextjs-15-the-pattern-i-actually-use-57jk","url":"https://dev.to/anas_sheikh_2/filtering-and-pagination-in-nextjs-15-the-pattern-i-actually-use-57jk","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T12:16:51Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkbxv52zasovttcr8cmkz.png","canonical_url":"https://dev.to/anas_sheikh_2/filtering-and-pagination-in-nextjs-15-the-pattern-i-actually-use-57jk","created_at":"2026-08-07T12:16:51Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T12:16:51Z","last_comment_at":"2026-08-07T12:16:51Z","reading_time_minutes":4,"tag_list":["nextjs","ai","javascript","api"],"tags":"nextjs, ai, javascript, api","user":{"name":"Anas Sheikh","username":"anas_sheikh_2","twitter_username":null,"github_username":null,"user_id":4023868,"website_url":"http://www.pixelanas.com/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4023868%2Fa72627f1-0556-4d31-aa00-0cc6ada7c4fb.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4023868%2Fa72627f1-0556-4d31-aa00-0cc6ada7c4fb.png"}},{"type_of":"article","id":4341887,"title":"PasteDB now has Version Control — Keep up to 10 versions of your pastes","description":"Version Control is now available in PasteDB 🚀   I've added a Version Control feature to...","readable_publish_date":"Aug 7","slug":"pastedb-now-has-version-control-keep-up-to-10-versions-of-your-pastes-25ii","path":"/aditya_sorathiya_069252f4/pastedb-now-has-version-control-keep-up-to-10-versions-of-your-pastes-25ii","url":"https://dev.to/aditya_sorathiya_069252f4/pastedb-now-has-version-control-keep-up-to-10-versions-of-your-pastes-25ii","comments_count":1,"public_reactions_count":10,"collection_id":null,"published_timestamp":"2026-08-07T15:52:19Z","language":"en","subforem_id":1,"positive_reactions_count":10,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F00e03tnvab2zkg0wjns2.png","canonical_url":"https://dev.to/aditya_sorathiya_069252f4/pastedb-now-has-version-control-keep-up-to-10-versions-of-your-pastes-25ii","created_at":"2026-08-07T15:52:20Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T15:52:19Z","last_comment_at":"2026-08-07T16:19:49Z","reading_time_minutes":1,"tag_list":["webdev","javascript","showdev","opensource"],"tags":"webdev, javascript, showdev, opensource","user":{"name":"Aditya Sorathiya","username":"aditya_sorathiya_069252f4","twitter_username":null,"github_username":null,"user_id":4023995,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4023995%2F485e9466-24ea-4f21-b88a-2a5fb850b430.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4023995%2F485e9466-24ea-4f21-b88a-2a5fb850b430.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":4340829,"title":"Rating Logic Puzzles by the Deductions They Require","description":"Most puzzle generators assign difficulty based on the number of starting clues or the time a...","readable_publish_date":"Aug 7","slug":"rating-logic-puzzles-by-the-deductions-they-require-22kk","path":"/solsticioapp/rating-logic-puzzles-by-the-deductions-they-require-22kk","url":"https://dev.to/solsticioapp/rating-logic-puzzles-by-the-deductions-they-require-22kk","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T12:26:46Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwzi43wjde02y1sbfygcy.png","canonical_url":"https://solsticio.app/blog/puzzle-difficulty-by-technique/","created_at":"2026-08-07T12:26:46Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T12:26:46Z","last_comment_at":"2026-08-07T12:26:46Z","reading_time_minutes":6,"tag_list":["algorithms","gamedev","javascript"],"tags":"algorithms, gamedev, javascript","user":{"name":"Solsticio","username":"solsticioapp","twitter_username":null,"github_username":null,"user_id":4065708,"website_url":"https://solsticio.app","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4065708%2F1d87251b-4eff-467f-b16d-5912f463e635.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4065708%2F1d87251b-4eff-467f-b16d-5912f463e635.png"}},{"type_of":"article","id":4344374,"title":"Level Up Your Python: The Matrix of Competitive Programming Tricks","description":"The Quest Begins (The \"Why\")   I still remember my first Codeforces round like it was...","readable_publish_date":"Aug 7","slug":"level-up-your-python-the-matrix-of-competitive-programming-tricks-48l6","path":"/timevolt/level-up-your-python-the-matrix-of-competitive-programming-tricks-48l6","url":"https://dev.to/timevolt/level-up-your-python-the-matrix-of-competitive-programming-tricks-48l6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-07T23:59:17Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3vn4pjd8mbsn76vzli6e.png","canonical_url":"https://dev.to/timevolt/level-up-your-python-the-matrix-of-competitive-programming-tricks-48l6","created_at":"2026-08-07T23:59:17Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T23:59:17Z","last_comment_at":"2026-08-07T23:59:17Z","reading_time_minutes":6,"tag_list":["programming","python","javascript","coding"],"tags":"programming, python, javascript, coding","user":{"name":"Timevolt","username":"timevolt","twitter_username":null,"github_username":"Timevolt01","user_id":1440418,"website_url":"https://www.jayantpotdar.in/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1440418%2F0ec1f073-2ff7-45d9-a14d-b02627125abc.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1440418%2F0ec1f073-2ff7-45d9-a14d-b02627125abc.jpeg"}},{"type_of":"article","id":4215769,"title":"Breaking the Sandbox: How to Securely Execute AI-Generated JavaScript Without Bringing Down Your Server","description":"Imagine letting an autonomous AI agent write its own code on the fly to solve a complex user prompt....","readable_publish_date":"Aug 7","slug":"breaking-the-sandbox-how-to-securely-execute-ai-generated-javascript-without-bringing-down-your-3ac9","path":"/programmingcentral/breaking-the-sandbox-how-to-securely-execute-ai-generated-javascript-without-bringing-down-your-3ac9","url":"https://dev.to/programmingcentral/breaking-the-sandbox-how-to-securely-execute-ai-generated-javascript-without-bringing-down-your-3ac9","comments_count":1,"public_reactions_count":0,"collection_id":42410,"published_timestamp":"2026-08-07T20:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsdt8xit89sajlmlhgjii.png","canonical_url":"https://dev.to/programmingcentral/breaking-the-sandbox-how-to-securely-execute-ai-generated-javascript-without-bringing-down-your-3ac9","created_at":"2026-07-23T13:56:53Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T20:00:00Z","last_comment_at":"2026-08-07T20:59:53Z","reading_time_minutes":9,"tag_list":["javascript","typescript","ai","mcp"],"tags":"javascript, typescript, ai, mcp","user":{"name":"Programming Central","username":"programmingcentral","twitter_username":"ProgrammingCCC","github_username":"edgarmilvus","user_id":3681483,"website_url":"https://programmingcentral.vercel.app","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3681483%2F4b902217-95ae-4f71-818a-d00cc58e51fd.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3681483%2F4b902217-95ae-4f71-818a-d00cc58e51fd.png"}},{"type_of":"article","id":4345053,"title":"A Next.js Route Handler That Calls a Model","description":"A streaming App Router route handler, the Edge and Node runtime trade-off stated precisely, and the buffering that silently kills streaming.","readable_publish_date":"Aug 8","slug":"a-nextjs-route-handler-that-calls-a-model-5fmf","path":"/multigrid/a-nextjs-route-handler-that-calls-a-model-5fmf","url":"https://dev.to/multigrid/a-nextjs-route-handler-that-calls-a-model-5fmf","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-08-08T01:21:57Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fer28s1xq8e5mohw4rzse.png","canonical_url":"https://multigrid.ai/learn/nextjs-llm-route","created_at":"2026-08-08T01:21:57Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-08T01:21:57Z","last_comment_at":"2026-08-08T01:21:57Z","reading_time_minutes":5,"tag_list":["ai","javascript","tutorial","llm"],"tags":"ai, javascript, tutorial, llm","user":{"name":"Multigrid","username":"multigrid","twitter_username":null,"github_username":null,"user_id":4035895,"website_url":"https://multigrid.ai","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4035895%2F376e2fa1-ea84-490e-a044-401a5dbeea9b.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4035895%2F376e2fa1-ea84-490e-a044-401a5dbeea9b.png"}},{"type_of":"article","id":4303517,"title":"« J'ai fini le tuto Node, et là je suis bloqué » — le mur dont personne ne parle","description":"Tu enchaînes les tutos mais dès que tu pars d'un dossier vide, tu bloques. Ce n'est pas un manque de connaissances. C'est un mur normal, et il a une sortie.","readable_publish_date":"Aug 7","slug":"-jai-fini-le-tuto-node-et-la-je-suis-bloque-le-mur-dont-personne-ne-parle-3go4","path":"/_notbu7ch/-jai-fini-le-tuto-node-et-la-je-suis-bloque-le-mur-dont-personne-ne-parle-3go4","url":"https://dev.to/_notbu7ch/-jai-fini-le-tuto-node-et-la-je-suis-bloque-le-mur-dont-personne-ne-parle-3go4","comments_count":0,"public_reactions_count":0,"collection_id":42152,"published_timestamp":"2026-08-07T06:20:00Z","language":"fr","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fisquj4iku8b7pcopif61.png","canonical_url":"https://dev.to/_notbu7ch/-jai-fini-le-tuto-node-et-la-je-suis-bloque-le-mur-dont-personne-ne-parle-3go4","created_at":"2026-08-03T14:12:48Z","edited_at":null,"crossposted_at":null,"published_at":"2026-08-07T06:20:00Z","last_comment_at":"2026-08-07T06:20:00Z","reading_time_minutes":5,"tag_list":["node","javascript","beginners","career"],"tags":"node, javascript, beginners, career","user":{"name":"Rodolphe D.","username":"_notbu7ch","twitter_username":"_notbu7ch","github_username":"bu7ch","user_id":19916,"website_url":"https://bu7ch.github.io/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F19916%2F0b1e95ee-c2d5-456f-90f4-ae362f330ab0.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F19916%2F0b1e95ee-c2d5-456f-90f4-ae362f330ab0.jpg"}}]