[{"type_of":"article","id":3516155,"title":"Congrats to the Notion MCP Challenge Winners!","description":"The results are in!  We're thrilled to announce our winners for the Notion MCP Challenge! From...","readable_publish_date":"Apr 17","slug":"congrats-to-the-notion-mcp-challenge-winners-28ab","path":"/devteam/congrats-to-the-notion-mcp-challenge-winners-28ab","url":"https://dev.to/devteam/congrats-to-the-notion-mcp-challenge-winners-28ab","comments_count":16,"public_reactions_count":77,"collection_id":null,"published_timestamp":"2026-04-17T16:30:22Z","language":"en","subforem_id":1,"positive_reactions_count":77,"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.amazonaws.com%2Fuploads%2Farticles%2Fzkp58f1xk079a1tmmtu8.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.amazonaws.com%2Fuploads%2Farticles%2Fzkp58f1xk079a1tmmtu8.png","canonical_url":"https://dev.to/devteam/congrats-to-the-notion-mcp-challenge-winners-28ab","created_at":"2026-04-17T14:57:39Z","edited_at":"2026-04-17T16:49:02Z","crossposted_at":null,"published_at":"2026-04-17T16:30:22Z","last_comment_at":"2026-04-19T03:17:07Z","reading_time_minutes":3,"tag_list":["devchallenge","notionchallenge","mcp","ai"],"tags":"devchallenge, notionchallenge, mcp, ai","user":{"name":"Jess Lee","username":"jess","twitter_username":"jessleenyc","github_username":"jessleenyc","user_id":264,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2Fb75f6edf-df7b-406e-a56b-43facafb352c.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2Fb75f6edf-df7b-406e-a56b-43facafb352c.jpg"},"organization":{"name":"The DEV Team","username":"devteam","slug":"devteam","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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg"}},{"type_of":"article","id":3442047,"title":"What was your win this week?!","description":"👋👋👋👋  Looking back on your week -- what was something you're proud of?  All wins count -- big or...","readable_publish_date":"Apr 17","slug":"what-was-your-win-this-week-28fb","path":"/devteam/what-was-your-win-this-week-28fb","url":"https://dev.to/devteam/what-was-your-win-this-week-28fb","comments_count":29,"public_reactions_count":58,"collection_id":null,"published_timestamp":"2026-04-17T13:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":58,"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.amazonaws.com%2Fuploads%2Farticles%2F9g0ggokz5bnmths1ktot.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.amazonaws.com%2Fuploads%2Farticles%2F9g0ggokz5bnmths1ktot.jpg","canonical_url":"https://dev.to/devteam/what-was-your-win-this-week-28fb","created_at":"2026-04-01T19:25:08Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-17T13:00:00Z","last_comment_at":"2026-04-19T08:33:09Z","reading_time_minutes":1,"tag_list":["discuss","weeklyretro"],"tags":"discuss, weeklyretro","user":{"name":"Jess Lee","username":"jess","twitter_username":"jessleenyc","github_username":"jessleenyc","user_id":264,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2Fb75f6edf-df7b-406e-a56b-43facafb352c.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2Fb75f6edf-df7b-406e-a56b-43facafb352c.jpg"},"organization":{"name":"The DEV Team","username":"devteam","slug":"devteam","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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":3516083,"title":"100 Daily Challenges to Learn Web3 and Solana","description":"Learn Web3 by building with Solana. A 100-day challenge for developers covering transactions, accounts, programs, and real applications.","readable_publish_date":"Apr 17","slug":"100-daily-challenges-to-learn-web3-and-solana-3g2i","path":"/100daysofsolana/100-daily-challenges-to-learn-web3-and-solana-3g2i","url":"https://dev.to/100daysofsolana/100-daily-challenges-to-learn-web3-and-solana-3g2i","comments_count":3,"public_reactions_count":76,"collection_id":null,"published_timestamp":"2026-04-17T15:14:12Z","language":"en","subforem_id":1,"positive_reactions_count":76,"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.amazonaws.com%2Fuploads%2Farticles%2F6sjxm2ypw5k6i49c4id4.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.amazonaws.com%2Fuploads%2Farticles%2F6sjxm2ypw5k6i49c4id4.png","canonical_url":"https://dev.to/100daysofsolana/100-daily-challenges-to-learn-web3-and-solana-3g2i","created_at":"2026-04-17T14:29:26Z","edited_at":"2026-04-17T15:25:28Z","crossposted_at":null,"published_at":"2026-04-17T15:14:12Z","last_comment_at":"2026-04-19T07:06:25Z","reading_time_minutes":2,"tag_list":["web3","solana","programming","blockchain"],"tags":"web3, solana, programming, blockchain","user":{"name":"Matthew Revell","username":"matthewrevell","twitter_username":"matthewrevell","github_username":null,"user_id":157525,"website_url":"https://matthewrevell.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F157525%2Fb47266bf-dccb-4566-b01e-733c103702d5.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F157525%2Fb47266bf-dccb-4566-b01e-733c103702d5.jpg"},"organization":{"name":"100 Days of Solana","username":"100daysofsolana","slug":"100daysofsolana","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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12963%2F62b6ce6d-db04-444b-88d1-4bea32484faa.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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12963%2F62b6ce6d-db04-444b-88d1-4bea32484faa.png"}},{"type_of":"article","id":3520811,"title":"Defluffer - reduce token usage 📉 by 45% using this one simple trick! [Earthday challenge]","description":"This is a submission for Weekend Challenge: Earth Day Edition  Fluffer: someone who helps people \"get...","readable_publish_date":"Apr 18","slug":"defluffer-reduce-token-usage-by-45-26jj","path":"/grahamthedev/defluffer-reduce-token-usage-by-45-26jj","url":"https://dev.to/grahamthedev/defluffer-reduce-token-usage-by-45-26jj","comments_count":7,"public_reactions_count":26,"collection_id":12286,"published_timestamp":"2026-04-18T22:29:42Z","language":"en","subforem_id":1,"positive_reactions_count":26,"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.amazonaws.com%2Fuploads%2Farticles%2Fiekbgepcutl4jse0sfs0.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.amazonaws.com%2Fuploads%2Farticles%2Fiekbgepcutl4jse0sfs0.png","canonical_url":"https://dev.to/grahamthedev/defluffer-reduce-token-usage-by-45-26jj","created_at":"2026-04-18T22:23:19Z","edited_at":"2026-04-18T22:43:33Z","crossposted_at":null,"published_at":"2026-04-18T22:29:42Z","last_comment_at":"2026-04-19T09:55:33Z","reading_time_minutes":5,"tag_list":["devchallenge","weekendchallenge","javascript","ai"],"tags":"devchallenge, weekendchallenge, javascript, ai","user":{"name":"GrahamTheDev","username":"grahamthedev","twitter_username":"GrahamTheDev","github_username":null,"user_id":551686,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F551686%2Ff0514090-260b-4a34-89b0-a2b6e922d5ec.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F551686%2Ff0514090-260b-4a34-89b0-a2b6e922d5ec.jpg"}},{"type_of":"article","id":3512805,"title":"EasyPollVote [Dev Log #2]","description":"Welcome to the Second DEV LOG!   Welcome to the second Dev Log of my full stack application...","readable_publish_date":"Apr 17","slug":"easypollvote-dev-log-2-4g80","path":"/francistrdev/easypollvote-dev-log-2-4g80","url":"https://dev.to/francistrdev/easypollvote-dev-log-2-4g80","comments_count":7,"public_reactions_count":37,"collection_id":38450,"published_timestamp":"2026-04-17T19:19:32Z","language":"en","subforem_id":1,"positive_reactions_count":37,"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.amazonaws.com%2Fuploads%2Farticles%2Fo8l8ulgpe5wqxnyq6pjz.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.amazonaws.com%2Fuploads%2Farticles%2Fo8l8ulgpe5wqxnyq6pjz.png","canonical_url":"https://dev.to/francistrdev/easypollvote-dev-log-2-4g80","created_at":"2026-04-16T23:49:46Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-17T19:19:32Z","last_comment_at":"2026-04-19T06:35:08Z","reading_time_minutes":4,"tag_list":["discuss","easypvdevlog","nextjs","typescript"],"tags":"discuss, easypvdevlog, nextjs, typescript","user":{"name":"FrancisTRᴅᴇᴠ (っ◔◡◔)っ","username":"francistrdev","twitter_username":null,"github_username":null,"user_id":3711376,"website_url":"https://francistr.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3711376%2F746cce1f-2c09-40fc-9742-387af1855b6d.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3711376%2F746cce1f-2c09-40fc-9742-387af1855b6d.gif"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":3517007,"title":"How We Built Our Own DNS Server","description":"We wrote a production DNS server in ~1000 lines of Go, migrated thousands of records off Hetzner DNS,...","readable_publish_date":"Apr 17","slug":"how-we-built-our-own-dns-server-4d3k","path":"/code42cate/how-we-built-our-own-dns-server-4d3k","url":"https://dev.to/code42cate/how-we-built-our-own-dns-server-4d3k","comments_count":11,"public_reactions_count":34,"collection_id":null,"published_timestamp":"2026-04-17T20:30:49Z","language":"en","subforem_id":1,"positive_reactions_count":34,"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.amazonaws.com%2Fuploads%2Farticles%2Fw4vv2pbbqdp0z2cztcly.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.amazonaws.com%2Fuploads%2Farticles%2Fw4vv2pbbqdp0z2cztcly.png","canonical_url":"https://sliplane.io/blog/how-we-built-our-own-dns-server","created_at":"2026-04-17T20:30:49Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-17T20:30:49Z","last_comment_at":"2026-04-19T07:04:33Z","reading_time_minutes":6,"tag_list":["cloud","devops","docker","webdev"],"tags":"cloud, devops, docker, webdev","user":{"name":"Jonas Scholz","username":"code42cate","twitter_username":null,"github_username":"Code42Cate","user_id":461127,"website_url":"https://sliplane.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F461127%2F034233c4-ba6e-473c-8a8d-783831764a10.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F461127%2F034233c4-ba6e-473c-8a8d-783831764a10.jpeg"}},{"type_of":"article","id":2869003,"title":"learn these 12 git commands and forget","description":"🌱 Introduction   Most devs think they can vibe code with a few Git commands. They run git...","readable_publish_date":"Apr 17","slug":"mastering-git-github-12-most-useful-git-commands-3l70","path":"/codewithshahan/mastering-git-github-12-most-useful-git-commands-3l70","url":"https://dev.to/codewithshahan/mastering-git-github-12-most-useful-git-commands-3l70","comments_count":2,"public_reactions_count":17,"collection_id":null,"published_timestamp":"2026-04-17T22:31:10Z","language":"en","subforem_id":1,"positive_reactions_count":17,"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.amazonaws.com%2Fuploads%2Farticles%2Fxf50la4e4l1rzpbynuim.gif","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.amazonaws.com%2Fuploads%2Farticles%2Fxf50la4e4l1rzpbynuim.gif","canonical_url":"https://dev.to/codewithshahan/mastering-git-github-12-most-useful-git-commands-3l70","created_at":"2025-09-26T01:16:58Z","edited_at":"2026-04-19T08:37:07Z","crossposted_at":null,"published_at":"2026-04-17T22:31:10Z","last_comment_at":"2026-04-18T13:36:14Z","reading_time_minutes":15,"tag_list":["webdev","beginners","git","programming"],"tags":"webdev, beginners, git, programming","user":{"name":"Programming with Shahan","username":"codewithshahan","twitter_username":null,"github_username":"codewithshahan","user_id":643041,"website_url":"https://codewithshahan.gumroad.com/l/cleancode-zero-to-one","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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F643041%2F02e24193-1a9c-4dc0-ad2b-ca64cf0b9b1e.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F643041%2F02e24193-1a9c-4dc0-ad2b-ca64cf0b9b1e.PNG"}},{"type_of":"article","id":3513034,"title":"Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud","description":"This is the first part of a multipart series introducing _tc Cloud Functors_","readable_publish_date":"Apr 17","slug":"intro-to-tc-cloud-functors-a-graph-first-mental-model-for-the-modern-cloud-3o17","path":"/functors/intro-to-tc-cloud-functors-a-graph-first-mental-model-for-the-modern-cloud-3o17","url":"https://dev.to/functors/intro-to-tc-cloud-functors-a-graph-first-mental-model-for-the-modern-cloud-3o17","comments_count":1,"public_reactions_count":6,"collection_id":38719,"published_timestamp":"2026-04-17T18:39:06Z","language":"en","subforem_id":1,"positive_reactions_count":6,"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.amazonaws.com%2Fuploads%2Farticles%2F98ecdssbss16lzbrrncd.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.amazonaws.com%2Fuploads%2Farticles%2F98ecdssbss16lzbrrncd.png","canonical_url":"https://dev.to/functors/intro-to-tc-cloud-functors-a-graph-first-mental-model-for-the-modern-cloud-3o17","created_at":"2026-04-17T01:16:13Z","edited_at":"2026-04-17T22:16:37Z","crossposted_at":null,"published_at":"2026-04-17T18:39:06Z","last_comment_at":"2026-04-18T12:29:10Z","reading_time_minutes":8,"tag_list":["aws","serverless","devops","sre"],"tags":"aws, serverless, devops, sre","user":{"name":"Robert J. Berger","username":"rberger","twitter_username":"rberger","github_username":"rberger","user_id":22361,"website_url":"https://hachyderm.io/@rberger","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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F22361%2Fa66f645d-e925-427d-96a2-7d535cc82241.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F22361%2Fa66f645d-e925-427d-96a2-7d535cc82241.jpeg"},"organization":{"name":"functors","username":"functors","slug":"functors","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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F13056%2F9a32e36a-b65f-4641-8941-837d948bb4c6.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.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F13056%2F9a32e36a-b65f-4641-8941-837d948bb4c6.png"}},{"type_of":"article","id":3516502,"title":"🌍 Deep-Time Mirror: An AI Lens into Our Ecological Soul For Earth Day Edition.","description":"This is a submission for Weekend Challenge: Earth Day Edition (April 22)           What I Built   I...","readable_publish_date":"Apr 17","slug":"deep-time-mirror-an-ai-lens-into-our-ecological-soul-for-earth-day-edition-1846","path":"/sushan_shetty_5ebec41a67d/deep-time-mirror-an-ai-lens-into-our-ecological-soul-for-earth-day-edition-1846","url":"https://dev.to/sushan_shetty_5ebec41a67d/deep-time-mirror-an-ai-lens-into-our-ecological-soul-for-earth-day-edition-1846","comments_count":2,"public_reactions_count":16,"collection_id":null,"published_timestamp":"2026-04-17T16:59:49Z","language":"en","subforem_id":1,"positive_reactions_count":16,"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.amazonaws.com%2Fuploads%2Farticles%2Fmveb9aqpwr34gl4xelxy.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.amazonaws.com%2Fuploads%2Farticles%2Fmveb9aqpwr34gl4xelxy.jpg","canonical_url":"https://dev.to/sushan_shetty_5ebec41a67d/deep-time-mirror-an-ai-lens-into-our-ecological-soul-for-earth-day-edition-1846","created_at":"2026-04-17T16:59:49Z","edited_at":"2026-04-17T18:06:50Z","crossposted_at":null,"published_at":"2026-04-17T16:59:49Z","last_comment_at":"2026-04-19T09:34:06Z","reading_time_minutes":2,"tag_list":["devchallenge","weekendchallenge","earthday","gemini"],"tags":"devchallenge, weekendchallenge, earthday, gemini","user":{"name":"Sushan Shetty","username":"sushan_shetty_5ebec41a67d","twitter_username":null,"github_username":null,"user_id":3786845,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3786845%2F4cd6f902-c830-40f3-8281-0c4f48198264.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3786845%2F4cd6f902-c830-40f3-8281-0c4f48198264.png"}},{"type_of":"article","id":3516665,"title":"GheiaGrid: Reimagining Decentralized Urban Farming \u0026 Carbon Mining","description":"This is a submission for Weekend Challenge: Earth Day Edition           What I Built   GheiaGrid is a...","readable_publish_date":"Apr 17","slug":"gheiagrid-reimagining-decentralized-urban-farming-carbon-mining-934","path":"/kheai/gheiagrid-reimagining-decentralized-urban-farming-carbon-mining-934","url":"https://dev.to/kheai/gheiagrid-reimagining-decentralized-urban-farming-carbon-mining-934","comments_count":4,"public_reactions_count":12,"collection_id":null,"published_timestamp":"2026-04-17T18:03:04Z","language":"en","subforem_id":1,"positive_reactions_count":12,"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.amazonaws.com%2Fuploads%2Farticles%2F4y1jjinfh62eh1ckxdaf.png","canonical_url":"https://dev.to/kheai/gheiagrid-reimagining-decentralized-urban-farming-carbon-mining-934","created_at":"2026-04-17T18:03:04Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-17T18:03:04Z","last_comment_at":"2026-04-19T06:37:31Z","reading_time_minutes":5,"tag_list":["devchallenge","weekendchallenge","agriculture","ai"],"tags":"devchallenge, weekendchallenge, agriculture, ai","user":{"name":"Khe Ai","username":"kheai","twitter_username":null,"github_username":"kafechew","user_id":789591,"website_url":"https://www.linkedin.com/in/kheai/","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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F789591%2F20f5f929-80e6-456f-b891-efb5be57c07a.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F789591%2F20f5f929-80e6-456f-b891-efb5be57c07a.jpeg"}},{"type_of":"article","id":3520220,"title":"The Zero-Impact Build: Why Writing Less Code is the Best Earth Day Project","description":"A submission for Weekend Challenge: Earth Day Edition      Let me be perfectly clear right up front:...","readable_publish_date":"Apr 18","slug":"the-zero-impact-build-why-writing-less-code-is-the-best-earth-day-project-2o5f","path":"/syedahmershah/the-zero-impact-build-why-writing-less-code-is-the-best-earth-day-project-2o5f","url":"https://dev.to/syedahmershah/the-zero-impact-build-why-writing-less-code-is-the-best-earth-day-project-2o5f","comments_count":2,"public_reactions_count":58,"collection_id":37962,"published_timestamp":"2026-04-18T17:21:30Z","language":"en","subforem_id":1,"positive_reactions_count":58,"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.amazonaws.com%2Fuploads%2Farticles%2F78hpeywrcigo7bwxddnk.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.amazonaws.com%2Fuploads%2Farticles%2F78hpeywrcigo7bwxddnk.png","canonical_url":"https://dev.to/syedahmershah/the-zero-impact-build-why-writing-less-code-is-the-best-earth-day-project-2o5f","created_at":"2026-04-18T17:21:30Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T17:21:30Z","last_comment_at":"2026-04-19T10:01:12Z","reading_time_minutes":3,"tag_list":["devchallenge","weekendchallenge","coding","ai"],"tags":"devchallenge, weekendchallenge, coding, ai","user":{"name":"Syed Ahmer Shah","username":"syedahmershah","twitter_username":"ahmershah29","github_username":"ahmershahdev","user_id":3021645,"website_url":"https://ahmershah.dev/","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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3021645%2F3ab5e0fa-fe6f-40b4-bb8b-50802beb354d.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3021645%2F3ab5e0fa-fe6f-40b4-bb8b-50802beb354d.jpg"}},{"type_of":"article","id":3520095,"title":"I got tired of wiring the same caching stack every project, so I built LayerCache","description":"Every Node.js service I've worked on hits the same caching wall. It always starts the same way.  You...","readable_publish_date":"Apr 18","slug":"i-got-tired-of-wiring-the-same-caching-stack-every-project-so-i-built-layercache-52e2","path":"/flyingsquirrel0419/i-got-tired-of-wiring-the-same-caching-stack-every-project-so-i-built-layercache-52e2","url":"https://dev.to/flyingsquirrel0419/i-got-tired-of-wiring-the-same-caching-stack-every-project-so-i-built-layercache-52e2","comments_count":0,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-18T16:40:12Z","language":"en","subforem_id":1,"positive_reactions_count":5,"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.amazonaws.com%2Fuploads%2Farticles%2Fducn1x9o75g1kjab8wmy.png","canonical_url":"https://dev.to/flyingsquirrel0419/i-got-tired-of-wiring-the-same-caching-stack-every-project-so-i-built-layercache-52e2","created_at":"2026-04-18T16:40:12Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T16:40:12Z","last_comment_at":"2026-04-18T16:40:12Z","reading_time_minutes":5,"tag_list":["node","typescript","redis","opensource"],"tags":"node, typescript, redis, opensource","user":{"name":"날다람쥐","username":"flyingsquirrel0419","twitter_username":null,"github_username":"flyingsquirrel0419","user_id":3864074,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864074%2F66d516bd-8d6e-4ccb-bf9b-388546f0a65a.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864074%2F66d516bd-8d6e-4ccb-bf9b-388546f0a65a.jpeg"}},{"type_of":"article","id":3520200,"title":"I Asked AI to Show Me My Life in 2050 — It Was Terrifying","description":"This is a submission for Weekend Challenge: Earth Day Edition     I asked AI to show me my life in...","readable_publish_date":"Apr 19","slug":"i-asked-ai-to-show-me-my-life-in-2050-it-was-terrifying-418o","path":"/smkulkarni/i-asked-ai-to-show-me-my-life-in-2050-it-was-terrifying-418o","url":"https://dev.to/smkulkarni/i-asked-ai-to-show-me-my-life-in-2050-it-was-terrifying-418o","comments_count":3,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-19T02:47:48Z","language":"en","subforem_id":1,"positive_reactions_count":5,"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.amazonaws.com%2Fuploads%2Farticles%2Fndtc3bzs365l2jk1by3a.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.amazonaws.com%2Fuploads%2Farticles%2Fndtc3bzs365l2jk1by3a.png","canonical_url":"https://dev.to/smkulkarni/i-asked-ai-to-show-me-my-life-in-2050-it-was-terrifying-418o","created_at":"2026-04-18T17:14:55Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-19T02:47:48Z","last_comment_at":"2026-04-19T05:38:07Z","reading_time_minutes":3,"tag_list":["devchallenge","weekendchallenge","gemini","auth0challenge"],"tags":"devchallenge, weekendchallenge, gemini, auth0challenge","user":{"name":"Sushil Kulkarni","username":"smkulkarni","twitter_username":null,"github_username":null,"user_id":3836755,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3836755%2F1879e540-8298-4dec-80d9-75f5cd8fcdb0.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3836755%2F1879e540-8298-4dec-80d9-75f5cd8fcdb0.jpg"}},{"type_of":"article","id":3519912,"title":"PlanetLedger — Turning Spending Into Environmental Awareness","description":"This is a submission for Weekend Challenge: Earth Day Edition           What I Built   PlanetLedger —...","readable_publish_date":"Apr 18","slug":"planetledger-turning-spending-into-environmental-awareness-4b8f","path":"/ujja/planetledger-turning-spending-into-environmental-awareness-4b8f","url":"https://dev.to/ujja/planetledger-turning-spending-into-environmental-awareness-4b8f","comments_count":0,"public_reactions_count":12,"collection_id":null,"published_timestamp":"2026-04-18T16:44:53Z","language":"en","subforem_id":1,"positive_reactions_count":12,"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.amazonaws.com%2Fuploads%2Farticles%2Fqw0gp186m4vk43zlpp7t.png","canonical_url":"https://dev.to/ujja/planetledger-turning-spending-into-environmental-awareness-4b8f","created_at":"2026-04-18T15:43:00Z","edited_at":"2026-04-19T04:51:38Z","crossposted_at":null,"published_at":"2026-04-18T16:44:53Z","last_comment_at":"2026-04-18T16:44:53Z","reading_time_minutes":8,"tag_list":["devchallenge","weekendchallenge","auth0challenge","githubcopilot"],"tags":"devchallenge, weekendchallenge, auth0challenge, githubcopilot","user":{"name":"ujja","username":"ujja","twitter_username":null,"github_username":"ujjavala","user_id":439943,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F439943%2F774d42c6-75e1-4247-8688-30020ce8f40a.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F439943%2F774d42c6-75e1-4247-8688-30020ce8f40a.png"}},{"type_of":"article","id":3517505,"title":"Why I built a lossless alternative to AI memory summarization","description":"Why I built a lossless alternative to AI memory summarization  Every AI memory tool I tried...","readable_publish_date":"Apr 18","slug":"why-i-built-a-lossless-alternative-to-ai-memory-summarization-40cl","path":"/wynelson94/why-i-built-a-lossless-alternative-to-ai-memory-summarization-40cl","url":"https://dev.to/wynelson94/why-i-built-a-lossless-alternative-to-ai-memory-summarization-40cl","comments_count":2,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2026-04-18T00:10:40Z","language":"en","subforem_id":1,"positive_reactions_count":4,"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.amazonaws.com%2Fuploads%2Farticles%2F731oxetpku7t9qcf88lp.png","canonical_url":"https://dev.to/wynelson94/why-i-built-a-lossless-alternative-to-ai-memory-summarization-40cl","created_at":"2026-04-18T00:10:40Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T00:10:40Z","last_comment_at":"2026-04-18T12:25:30Z","reading_time_minutes":4,"tag_list":["claudecode","ai","python","opensource"],"tags":"claudecode, ai, python, opensource","user":{"name":"Nate Nelson","username":"wynelson94","twitter_username":null,"github_username":"Wynelson94","user_id":3885307,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3885307%2F98c70f86-1589-4c2f-ad13-3b3898dab65c.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3885307%2F98c70f86-1589-4c2f-ad13-3b3898dab65c.png"}},{"type_of":"article","id":3520138,"title":"AI Agents Generate Code That Passes Your Tests. That Is the Problem.","description":"AI coding agents excel at writing code that satisfies your test suite and at writing tests that game coverage metrics. Here is why your coverage numbers are probably lying to you, and the pre-commit check that catches it.","readable_publish_date":"Apr 18","slug":"ai-agents-generate-code-that-passes-your-tests-that-is-the-problem-56jb","path":"/toniantunovic/ai-agents-generate-code-that-passes-your-tests-that-is-the-problem-56jb","url":"https://dev.to/toniantunovic/ai-agents-generate-code-that-passes-your-tests-that-is-the-problem-56jb","comments_count":3,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2026-04-18T17:03:02Z","language":"en","subforem_id":1,"positive_reactions_count":4,"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.amazonaws.com%2Fuploads%2Farticles%2Fuqrppsr4yz2xz4kkrf2x.png","canonical_url":"https://lucidshark.com/blog/ai-agent-test-coverage-illusion-2026","created_at":"2026-04-18T17:03:02Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T17:03:02Z","last_comment_at":"2026-04-19T06:43:14Z","reading_time_minutes":6,"tag_list":["testing","ai","codequality","devops"],"tags":"testing, ai, codequality, devops","user":{"name":"Toni Antunovic","username":"toniantunovic","twitter_username":null,"github_username":"toniantunovi","user_id":3821075,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3821075%2F3c54d596-46ae-4910-a2ed-042aa3c86933.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3821075%2F3c54d596-46ae-4910-a2ed-042aa3c86933.png"}},{"type_of":"article","id":3520951,"title":"I thought I had a bug","description":"The AI I've been building was showing action buttons with labels like \"Fight Goatman\" attached to an...","readable_publish_date":"Apr 18","slug":"i-thought-i-had-a-bug-2kmc","path":"/michael_trifonov_0cb74f99/i-thought-i-had-a-bug-2kmc","url":"https://dev.to/michael_trifonov_0cb74f99/i-thought-i-had-a-bug-2kmc","comments_count":1,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2026-04-18T23:49:11Z","language":"en","subforem_id":1,"positive_reactions_count":3,"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.amazonaws.com%2Fuploads%2Farticles%2Fm5jptz4rtw9p175igj6j.png","canonical_url":"https://ratnotes.substack.com/p/i-thought-i-had-a-bug","created_at":"2026-04-18T23:49:11Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T23:49:11Z","last_comment_at":"2026-04-19T05:02:03Z","reading_time_minutes":9,"tag_list":["ai","llm","agents","discuss"],"tags":"ai, llm, agents, discuss","user":{"name":"Michael Trifonov","username":"michael_trifonov_0cb74f99","twitter_username":null,"github_username":null,"user_id":3871089,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3871089%2F2b218903-7c7e-4a63-ae57-057764862092.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3871089%2F2b218903-7c7e-4a63-ae57-057764862092.png"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":3519789,"title":"Shipping Global Keyboard Shortcuts on macOS Sandbox: The Part Apple Doesn't Document","description":"TL;DR   I shipped a macOS menu bar app (QUICOPY) to the Mac App Store. Its core feature is...","readable_publish_date":"Apr 18","slug":"shipping-global-keyboard-shortcuts-on-macos-sandbox-the-part-apple-doesnt-document-57no","path":"/quicopy/shipping-global-keyboard-shortcuts-on-macos-sandbox-the-part-apple-doesnt-document-57no","url":"https://dev.to/quicopy/shipping-global-keyboard-shortcuts-on-macos-sandbox-the-part-apple-doesnt-document-57no","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-18T14:49:56Z","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.amazonaws.com%2Fuploads%2Farticles%2Fa8lcarogq4kbr004avsf.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.amazonaws.com%2Fuploads%2Farticles%2Fa8lcarogq4kbr004avsf.png","canonical_url":"https://www.quicopy.com/blog/macos-sandbox-keyboard-shortcuts","created_at":"2026-04-18T14:49:56Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T14:49:56Z","last_comment_at":"2026-04-18T14:49:56Z","reading_time_minutes":6,"tag_list":["swift","appstore","sandbox","ai"],"tags":"swift, appstore, sandbox, ai","user":{"name":"QUICOPY","username":"quicopy","twitter_username":null,"github_username":null,"user_id":3886173,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3886173%2Fcecd83d7-aff8-4844-9e98-68ea115f1a29.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3886173%2Fcecd83d7-aff8-4844-9e98-68ea115f1a29.png"}},{"type_of":"article","id":3519362,"title":"I built a terminal screensaver in Go — constellations, rain, braille waves, and full shell integration","description":"Every OS has a screensaver. The terminal had nothing.  So I built drift — a terminal screensaver...","readable_publish_date":"Apr 18","slug":"i-built-a-terminal-screensaver-in-go-constellations-rain-braille-waves-and-full-shell-2olg","path":"/phlx0/i-built-a-terminal-screensaver-in-go-constellations-rain-braille-waves-and-full-shell-2olg","url":"https://dev.to/phlx0/i-built-a-terminal-screensaver-in-go-constellations-rain-braille-waves-and-full-shell-2olg","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-18T12:10:49Z","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.amazonaws.com%2Fuploads%2Farticles%2Fsur2v6s2icn6lf2blebl.gif","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.amazonaws.com%2Fuploads%2Farticles%2Fsur2v6s2icn6lf2blebl.gif","canonical_url":"https://dev.to/phlx0/i-built-a-terminal-screensaver-in-go-constellations-rain-braille-waves-and-full-shell-2olg","created_at":"2026-04-18T12:10:49Z","edited_at":"2026-04-18T12:14:19Z","crossposted_at":null,"published_at":"2026-04-18T12:10:49Z","last_comment_at":"2026-04-18T12:10:49Z","reading_time_minutes":2,"tag_list":["go","terminal","opensource","animation"],"tags":"go, terminal, opensource, animation","user":{"name":"phlx0","username":"phlx0","twitter_username":null,"github_username":null,"user_id":3885962,"website_url":"https://github.com/phlx0","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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3885962%2Ffe0a79fc-5b97-4698-82ae-f01e2d586827.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3885962%2Ffe0a79fc-5b97-4698-82ae-f01e2d586827.jpeg"}},{"type_of":"article","id":3519068,"title":"ServiceKit V2 — The Async Service Locator for Unity","description":"I just shipped V2 of ServiceKit, my lightweight dependency management package for Unity. Before I get...","readable_publish_date":"Apr 18","slug":"servicekit-v2-the-async-service-locator-for-unity-4840","path":"/paulnonatomic/servicekit-v2-the-async-service-locator-for-unity-4840","url":"https://dev.to/paulnonatomic/servicekit-v2-the-async-service-locator-for-unity-4840","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-18T10:21:06Z","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.amazonaws.com%2Fuploads%2Farticles%2Fe5lxy9pym2k4qjbgg87w.png","canonical_url":"https://dev.to/paulnonatomic/servicekit-v2-the-async-service-locator-for-unity-4840","created_at":"2026-04-18T10:21:06Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T10:21:06Z","last_comment_at":"2026-04-18T12:46:12Z","reading_time_minutes":3,"tag_list":["architecture","gamedev","opensource","showdev"],"tags":"architecture, gamedev, opensource, showdev","user":{"name":"Paul Stamp","username":"paulnonatomic","twitter_username":null,"github_username":"PaulNonatomic","user_id":1042404,"website_url":"https://paulstamp.dev","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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1042404%2Fecfbcd46-99c3-4b2a-b5f5-f43f8ccf2520.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1042404%2Fecfbcd46-99c3-4b2a-b5f5-f43f8ccf2520.jpg"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3519942,"title":"Introducing @accesslint/jest: progressive accessibility testing for Jest","description":"This post is for the team rolling out accessibility testing: developer tooling, CI platform, design...","readable_publish_date":"Apr 18","slug":"introducing-accesslintjest-progressive-accessibility-testing-for-jest-3i7j","path":"/cameron-accesslint/introducing-accesslintjest-progressive-accessibility-testing-for-jest-3i7j","url":"https://dev.to/cameron-accesslint/introducing-accesslintjest-progressive-accessibility-testing-for-jest-3i7j","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-18T18:18:18Z","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.amazonaws.com%2Fuploads%2Farticles%2Fxvb3w5bzmqyuct0o7lrx.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.amazonaws.com%2Fuploads%2Farticles%2Fxvb3w5bzmqyuct0o7lrx.png","canonical_url":"https://dev.to/cameron-accesslint/introducing-accesslintjest-progressive-accessibility-testing-for-jest-3i7j","created_at":"2026-04-18T15:53:34Z","edited_at":"2026-04-18T19:53:58Z","crossposted_at":null,"published_at":"2026-04-18T18:18:18Z","last_comment_at":"2026-04-18T18:18:18Z","reading_time_minutes":8,"tag_list":["a11y","testing","javascript","cicd"],"tags":"a11y, testing, javascript, cicd","user":{"name":"Cameron Cundiff","username":"cameron-accesslint","twitter_username":"ckundo","github_username":null,"user_id":3785515,"website_url":"https://www.accesslint.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3785515%2F40bf0dd0-1ae1-465f-b595-ef3f73fdb47d.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3785515%2F40bf0dd0-1ae1-465f-b595-ef3f73fdb47d.jpg"}},{"type_of":"article","id":3516859,"title":"Why I Built an AI-Powered Test Data Generator (and When You Shouldn't Use AI for Fixtures)","description":"Every test suite has the same dirty secret: name=\"Test User\", email=\"test@test.com\", bio=\"Lorem...","readable_publish_date":"Apr 17","slug":"why-i-built-an-ai-powered-test-data-generator-and-when-you-shouldnt-use-ai-for-fixtures-3e4a","path":"/yaniv2809/why-i-built-an-ai-powered-test-data-generator-and-when-you-shouldnt-use-ai-for-fixtures-3e4a","url":"https://dev.to/yaniv2809/why-i-built-an-ai-powered-test-data-generator-and-when-you-shouldnt-use-ai-for-fixtures-3e4a","comments_count":1,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-17T19:11:03Z","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.amazonaws.com%2Fuploads%2Farticles%2F8u77yrf939u51moyy4ek.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.amazonaws.com%2Fuploads%2Farticles%2F8u77yrf939u51moyy4ek.png","canonical_url":"https://dev.to/yaniv2809/why-i-built-an-ai-powered-test-data-generator-and-when-you-shouldnt-use-ai-for-fixtures-3e4a","created_at":"2026-04-17T19:11:03Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-17T19:11:03Z","last_comment_at":"2026-04-18T12:29:54Z","reading_time_minutes":3,"tag_list":["testing","python","ai","opensource"],"tags":"testing, python, ai, opensource","user":{"name":"Yaniv ","username":"yaniv2809","twitter_username":null,"github_username":"Yaniv2809","user_id":3872105,"website_url":"https://yaniv-metuku-website-2809.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3872105%2F08b03eee-3e37-4859-bab2-f155bcea6a16.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3872105%2F08b03eee-3e37-4859-bab2-f155bcea6a16.png"}},{"type_of":"article","id":3520622,"title":"How to Create a Sparkly-Spoiler Effect like the one in Threads Mobile App","description":"If you use Meta’s Threads app on a mobile device, you may have noticed an interesting effect: the...","readable_publish_date":"Apr 18","slug":"how-to-create-a-sparkly-spoiler-effect-like-the-one-in-threads-mobile-app-19nk","path":"/erikwhiting88/how-to-create-a-sparkly-spoiler-effect-like-the-one-in-threads-mobile-app-19nk","url":"https://dev.to/erikwhiting88/how-to-create-a-sparkly-spoiler-effect-like-the-one-in-threads-mobile-app-19nk","comments_count":0,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2026-04-18T20:29:11Z","language":"en","subforem_id":1,"positive_reactions_count":4,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fi0.wp.com%2Ferikscode.space%2Fwp-content%2Fuploads%2F2026%2F04%2Fpexels-zba-banner-2156097684-34036475-scaled.jpg%3Ffit%3D2560%252C1697%26ssl%3D1","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fi0.wp.com%2Ferikscode.space%2Fwp-content%2Fuploads%2F2026%2F04%2Fpexels-zba-banner-2156097684-34036475-scaled.jpg%3Ffit%3D2560%252C1697%26ssl%3D1","canonical_url":"https://erikscode.space/index.php/2026/04/18/how-to-create-a-sparkly-spoiler-effect-like-the-one-in-threads-mobile-app/","created_at":"2026-04-18T20:28:06Z","edited_at":"2026-04-18T20:32:33Z","crossposted_at":null,"published_at":"2026-04-18T20:29:11Z","last_comment_at":"2026-04-18T20:29:11Z","reading_time_minutes":17,"tag_list":["webdev","css","javascript","tutorial"],"tags":"webdev, css, javascript, tutorial","user":{"name":"Erik","username":"erikwhiting88","twitter_username":null,"github_username":"erik-whiting","user_id":204634,"website_url":"https://erikscode.space","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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F204634%2Fe0f8a6f2-5fa9-4a3e-bea4-266f276a64a7.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F204634%2Fe0f8a6f2-5fa9-4a3e-bea4-266f276a64a7.jpg"}},{"type_of":"article","id":3520640,"title":"Why random.randint(300, 850) is a bad fake credit score","description":"I searched GitHub for Python test files that reference credit_score. Across about 100 repos, every...","readable_publish_date":"Apr 18","slug":"why-randomrandint300-850-is-a-bad-fake-credit-score-53jk","path":"/crd/why-randomrandint300-850-is-a-bad-fake-credit-score-53jk","url":"https://dev.to/crd/why-randomrandint300-850-is-a-bad-fake-credit-score-53jk","comments_count":2,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-18T20:46: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.amazonaws.com%2Fuploads%2Farticles%2Fduozo6iz4udy3osnkxxg.png","canonical_url":"https://dev.to/crd/why-randomrandint300-850-is-a-bad-fake-credit-score-53jk","created_at":"2026-04-18T20:40:13Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T20:46:57Z","last_comment_at":"2026-04-19T00:09:44Z","reading_time_minutes":2,"tag_list":["python","testing","fintech","faker"],"tags":"python, testing, fintech, faker","user":{"name":"Cory","username":"crd","twitter_username":null,"github_username":"crd","user_id":507093,"website_url":"https://www.corydonnelly.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F507093%2Fd38599df-652f-4b23-891c-c1a60d0c9c59.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F507093%2Fd38599df-652f-4b23-891c-c1a60d0c9c59.jpeg"}},{"type_of":"article","id":3516267,"title":"context.txt — llms.txt tells AI where to look, this tells it what it's looking at","description":"You have probably heard of llms.txt. A growing number of sites — Anthropic, Stripe, Cloudflare,...","readable_publish_date":"Apr 17","slug":"contexttxt-llmstxt-tells-ai-where-to-look-this-tells-it-what-its-looking-at-2g0","path":"/andreas_eckhoff_7592e9859/contexttxt-llmstxt-tells-ai-where-to-look-this-tells-it-what-its-looking-at-2g0","url":"https://dev.to/andreas_eckhoff_7592e9859/contexttxt-llmstxt-tells-ai-where-to-look-this-tells-it-what-its-looking-at-2g0","comments_count":1,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-04-17T15:31:08Z","language":"en","subforem_id":1,"positive_reactions_count":2,"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.amazonaws.com%2Fuploads%2Farticles%2Fnpdhoazm0bp0qpw0jbiq.png","canonical_url":"https://dev.to/andreas_eckhoff_7592e9859/contexttxt-llmstxt-tells-ai-where-to-look-this-tells-it-what-its-looking-at-2g0","created_at":"2026-04-17T15:31:08Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-17T15:31:08Z","last_comment_at":"2026-04-18T06:21:17Z","reading_time_minutes":4,"tag_list":["ai","webdev","opensource","discuss"],"tags":"ai, webdev, opensource, discuss","user":{"name":"Andreas Eckhoff","username":"andreas_eckhoff_7592e9859","twitter_username":null,"github_username":null,"user_id":3884771,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3884771%2F555b04be-18ba-4d3b-a3d4-ea8fd4d3a2cf.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3884771%2F555b04be-18ba-4d3b-a3d4-ea8fd4d3a2cf.jpg"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":3519293,"title":"Earth’s Breath: An Interactive Journey from Seed to Restoration","description":"This is a submission for Weekend Challenge: Earth Day Edition           What I Built   I built...","readable_publish_date":"Apr 18","slug":"earths-breath-an-interactive-journey-from-seed-to-restoration-1ebi","path":"/usman_awan/earths-breath-an-interactive-journey-from-seed-to-restoration-1ebi","url":"https://dev.to/usman_awan/earths-breath-an-interactive-journey-from-seed-to-restoration-1ebi","comments_count":2,"public_reactions_count":18,"collection_id":null,"published_timestamp":"2026-04-18T11:43:26Z","language":"en","subforem_id":1,"positive_reactions_count":18,"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.amazonaws.com%2Fuploads%2Farticles%2Foa8layag7ejhhbe5ucpp.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.amazonaws.com%2Fuploads%2Farticles%2Foa8layag7ejhhbe5ucpp.png","canonical_url":"https://dev.to/usman_awan/earths-breath-an-interactive-journey-from-seed-to-restoration-1ebi","created_at":"2026-04-18T11:43:26Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T11:43:26Z","last_comment_at":"2026-04-19T02:24:10Z","reading_time_minutes":2,"tag_list":["devchallenge","weekendchallenge","frontend","css"],"tags":"devchallenge, weekendchallenge, frontend, css","user":{"name":"Muhammad Usman Awan","username":"usman_awan","twitter_username":null,"github_username":"UsmanDevCraft","user_id":2113728,"website_url":"https://portfolio-dev-usman-awan.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2113728%2F5023cec6-3138-4ba9-831a-4a97d7542633.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2113728%2F5023cec6-3138-4ba9-831a-4a97d7542633.jpg"}},{"type_of":"article","id":3516129,"title":"Inline context without losing the paragraph you were reading","description":"Reading a long-form piece about monetary policy, hit the phrase \"Triffin dilemma,\" and knew I had two...","readable_publish_date":"Apr 17","slug":"inline-context-without-losing-the-paragraph-you-were-reading-3fh","path":"/palo_alto_ai/inline-context-without-losing-the-paragraph-you-were-reading-3fh","url":"https://dev.to/palo_alto_ai/inline-context-without-losing-the-paragraph-you-were-reading-3fh","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-17T14:49:37Z","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.amazonaws.com%2Fuploads%2Farticles%2Fn8j4uzcjt7pr5x8h24f8.png","canonical_url":"https://dev.to/palo_alto_ai/inline-context-without-losing-the-paragraph-you-were-reading-3fh","created_at":"2026-04-17T14:49:37Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-17T14:49:37Z","last_comment_at":"2026-04-17T14:49:37Z","reading_time_minutes":2,"tag_list":["ai","productivity","showdev","sideprojects"],"tags":"ai, productivity, showdev, sideprojects","user":{"name":"J Now","username":"palo_alto_ai","twitter_username":null,"github_username":null,"user_id":3875408,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3875408%2F4401de35-525d-496b-b2fb-347e8052bfa1.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3875408%2F4401de35-525d-496b-b2fb-347e8052bfa1.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3518562,"title":"Building a 4-Tier AI Cost Auto-Router with Deno Edge Functions","description":"Building a 4-Tier AI Cost Auto-Router with Deno Edge Functions   When your app supports 33...","readable_publish_date":"Apr 18","slug":"building-a-4-tier-ai-cost-auto-router-with-deno-edge-functions-2584","path":"/kanta13jp1/building-a-4-tier-ai-cost-auto-router-with-deno-edge-functions-2584","url":"https://dev.to/kanta13jp1/building-a-4-tier-ai-cost-auto-router-with-deno-edge-functions-2584","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-18T08:17:38Z","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.amazonaws.com%2Fuploads%2Farticles%2Fe0kpra2ezi2nn63eocud.png","canonical_url":"https://dev.to/kanta13jp1/building-a-4-tier-ai-cost-auto-router-with-deno-edge-functions-2584","created_at":"2026-04-18T08:17:38Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-18T08:17:38Z","last_comment_at":"2026-04-18T16:34:39Z","reading_time_minutes":2,"tag_list":["flutter","supabase","buildinpublic","webdev"],"tags":"flutter, supabase, buildinpublic, webdev","user":{"name":"kanta13jp1","username":"kanta13jp1","twitter_username":"kanta13jp1","github_username":null,"user_id":801579,"website_url":"https://my-web-app-b67f4.web.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F801579%2F93001d32-b560-4f80-9b6e-732e7ee424d2.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F801579%2F93001d32-b560-4f80-9b6e-732e7ee424d2.jpg"}},{"type_of":"article","id":3520787,"title":"Una vez más una persona crea un sistema operativo sola.","description":"Hola Soy Samuel Leonardo Páez Garzón y ustedes se preguntarán quién es esta persona y que Sistema...","readable_publish_date":"Apr 18","slug":"una-vez-mas-una-persona-crea-un-sistema-operativo-sola-1m9o","path":"/samuel_leonardo_37aff38b4/una-vez-mas-una-persona-crea-un-sistema-operativo-sola-1m9o","url":"https://dev.to/samuel_leonardo_37aff38b4/una-vez-mas-una-persona-crea-un-sistema-operativo-sola-1m9o","comments_count":3,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2026-04-18T22:10:15Z","language":"es","subforem_id":1,"positive_reactions_count":7,"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.amazonaws.com%2Fuploads%2Farticles%2Fhwcu2qg2nsom2nvn2ic3.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.amazonaws.com%2Fuploads%2Farticles%2Fhwcu2qg2nsom2nvn2ic3.png","canonical_url":"https://dev.to/samuel_leonardo_37aff38b4/una-vez-mas-una-persona-crea-un-sistema-operativo-sola-1m9o","created_at":"2026-04-18T22:03:23Z","edited_at":"2026-04-18T23:56:58Z","crossposted_at":null,"published_at":"2026-04-18T22:10:15Z","last_comment_at":"2026-04-18T23:44:17Z","reading_time_minutes":4,"tag_list":["c","assembly","programming","discuss"],"tags":"c, assembly, programming, discuss","user":{"name":"Samuel Leonardo","username":"samuel_leonardo_37aff38b4","twitter_username":null,"github_username":"Samuel-Leonardo-Paez-Garzon","user_id":3574368,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3574368%2F389ae3cc-e50e-470c-9cfc-9943507cbbb1.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3574368%2F389ae3cc-e50e-470c-9cfc-9943507cbbb1.PNG"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":3517871,"title":"Building Rutiq: Orchestrating the Last Mile with FastAPI, Supabase, Telegram, and Applied AI","description":"Last-mile logistics is often a silent chaos. If you look closely at the operations of many retail or...","readable_publish_date":"Apr 18","slug":"building-rutiq-orchestrating-the-last-mile-with-fastapi-supabase-telegram-and-applied-ai-4ahm","path":"/jorgevazt/building-rutiq-orchestrating-the-last-mile-with-fastapi-supabase-telegram-and-applied-ai-4ahm","url":"https://dev.to/jorgevazt/building-rutiq-orchestrating-the-last-mile-with-fastapi-supabase-telegram-and-applied-ai-4ahm","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-18T03:49: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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg9mo0hugqsn9gzh5jqy.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.amazonaws.com%2Fuploads%2Farticles%2Fqg9mo0hugqsn9gzh5jqy.png","canonical_url":"https://dev.to/jorgevazt/building-rutiq-orchestrating-the-last-mile-with-fastapi-supabase-telegram-and-applied-ai-4ahm","created_at":"2026-04-18T03:49:36Z","edited_at":"2026-04-18T15:49:24Z","crossposted_at":null,"published_at":"2026-04-18T03:49:36Z","last_comment_at":"2026-04-18T12:36:02Z","reading_time_minutes":4,"tag_list":["ai","programming","python","learning"],"tags":"ai, programming, python, learning","user":{"name":"Jorge Eduardo Vazquez Trujillo","username":"jorgevazt","twitter_username":null,"github_username":null,"user_id":3840598,"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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3840598%2Fd9f022ad-80fd-47e3-916e-1a1ddfef686c.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3840598%2Fd9f022ad-80fd-47e3-916e-1a1ddfef686c.png"}}]