[{"type_of":"article","id":3491819,"title":"The Developer's Guide to Running LLMs Locally: Ollama, Gemma 4, and Why Your Side Projects Don't Need an API Key","description":"Every tutorial about building with LLMs starts the same way: \"First, get your OpenAI API key.\" But...","readable_publish_date":"Apr 12","slug":"the-developers-guide-to-running-llms-locally-ollama-gemma-4-and-why-your-side-projects-dont-54oe","path":"/kennedyraju55/the-developers-guide-to-running-llms-locally-ollama-gemma-4-and-why-your-side-projects-dont-54oe","url":"https://dev.to/kennedyraju55/the-developers-guide-to-running-llms-locally-ollama-gemma-4-and-why-your-side-projects-dont-54oe","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T23:09:13Z","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%2Fsbex51uiw4htokgdoemz.png","canonical_url":"https://dev.to/kennedyraju55/the-developers-guide-to-running-llms-locally-ollama-gemma-4-and-why-your-side-projects-dont-54oe","created_at":"2026-04-12T23:09:13Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T23:09:13Z","last_comment_at":"2026-04-13T04:55:01Z","reading_time_minutes":4,"tag_list":["ai","llm","sideprojects","tutorial"],"tags":"ai, llm, sideprojects, tutorial","user":{"name":"Nrk Raju Guthikonda","username":"kennedyraju55","twitter_username":null,"github_username":"kennedyraju55","user_id":3875587,"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%2F3875587%2F0e0fea57-3e20-4e0a-bf89-f91e1bb899e0.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%2F3875587%2F0e0fea57-3e20-4e0a-bf89-f91e1bb899e0.png"}},{"type_of":"article","id":3489593,"title":"Why 1100 / 1.1 = 999.9999… Is a Tax Calculator Bug, and Two Ways to Fix It","description":"Why 1100 / 1.1 = 999.9999… Is a Tax Calculator Bug, and Two Ways to Fix It    Japan has a...","readable_publish_date":"Apr 12","slug":"why-1100-11-9999999-is-a-tax-calculator-bug-and-two-ways-to-fix-it-3d38","path":"/sendotltd/why-1100-11-9999999-is-a-tax-calculator-bug-and-two-ways-to-fix-it-3d38","url":"https://dev.to/sendotltd/why-1100-11-9999999-is-a-tax-calculator-bug-and-two-ways-to-fix-it-3d38","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T07:49: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.amazonaws.com%2Fuploads%2Farticles%2F92cpmqrt1b5e6peh2zdb.png","canonical_url":"https://dev.to/sendotltd/why-1100-11-9999999-is-a-tax-calculator-bug-and-two-ways-to-fix-it-3d38","created_at":"2026-04-12T07:49:03Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T07:49:02Z","last_comment_at":"2026-04-12T10:16:16Z","reading_time_minutes":4,"tag_list":["javascript","webdev","math","tutorial"],"tags":"javascript, webdev, math, tutorial","user":{"name":"SEN LLC","username":"sendotltd","twitter_username":null,"github_username":null,"user_id":3871729,"website_url":"https://sen.ltd","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%2F3871729%2F54856949-f27c-4da1-a1c3-3db40b93c8d8.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%2F3871729%2F54856949-f27c-4da1-a1c3-3db40b93c8d8.png"}},{"type_of":"article","id":3491747,"title":"Building AI Workflows for DevOps Teams","description":"DevOps teams are some of the best candidates for multi-agent automation. The work is repetitive,...","readable_publish_date":"Apr 12","slug":"building-ai-workflows-for-devops-teams-51p2","path":"/swrly/building-ai-workflows-for-devops-teams-51p2","url":"https://dev.to/swrly/building-ai-workflows-for-devops-teams-51p2","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T22:07:56Z","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%2Fswrly.com%2Fblog%2Fblog-ai-devops.jpeg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fswrly.com%2Fblog%2Fblog-ai-devops.jpeg","canonical_url":"https://swrly.com/blog/ai-workflows-for-devops","created_at":"2026-04-12T22:07:56Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T22:07:56Z","last_comment_at":"2026-04-12T22:07:56Z","reading_time_minutes":7,"tag_list":["tutorial","devops","ai"],"tags":"tutorial, devops, ai","user":{"name":"Swrly","username":"swrly","twitter_username":null,"github_username":null,"user_id":3862452,"website_url":"https://swrly.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%2F3862452%2Fe6202e6b-2cf9-4a2e-8a40-f5aaba5aafb8.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%2F3862452%2Fe6202e6b-2cf9-4a2e-8a40-f5aaba5aafb8.png"}},{"type_of":"article","id":3491985,"title":"BFS Algorithm in Java Step by Step Tutorial with Examples","description":"Learn the Breadth-First Search algorithm in Java with a step-by-step tutorial and examples","readable_publish_date":"Apr 13","slug":"bfs-algorithm-in-java-step-by-step-tutorial-with-examples-6ld","path":"/rajesh1761/bfs-algorithm-in-java-step-by-step-tutorial-with-examples-6ld","url":"https://dev.to/rajesh1761/bfs-algorithm-in-java-step-by-step-tutorial-with-examples-6ld","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-13T00:49:31Z","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%2Fqen212ap9xjmioxqdvvw.png","canonical_url":"https://howtostartprogramming.in/bfs-algorithm-in-java-step-by-step-tutorial-with-examples/","created_at":"2026-04-13T00:49:31Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T00:49:31Z","last_comment_at":"2026-04-13T00:49:31Z","reading_time_minutes":2,"tag_list":["java","programming","tutorial"],"tags":"java, programming, tutorial","user":{"name":"Rajesh Mishra","username":"rajesh1761","twitter_username":"Rajesh_Mishra10","github_username":"Rajesh1761","user_id":386291,"website_url":"https://howtostartprogramming.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F386291%2F3a705353-b889-4de6-8aac-ee5b91fcf935.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%2F386291%2F3a705353-b889-4de6-8aac-ee5b91fcf935.png"}},{"type_of":"article","id":3491872,"title":"llm.txt: How to Make Your Wordpress Readable by AI Assistants","description":"You've heard of robots.txt. It tells search engines what to crawl.  Now there's llm.txt. It tells AI...","readable_publish_date":"Apr 12","slug":"llmtxt-how-to-make-your-wordpress-readable-by-ai-assistants-228j","path":"/antigymclub/llmtxt-how-to-make-your-wordpress-readable-by-ai-assistants-228j","url":"https://dev.to/antigymclub/llmtxt-how-to-make-your-wordpress-readable-by-ai-assistants-228j","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T23:37:17Z","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%2F8dfc1fertoi0o881nz4a.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%2F8dfc1fertoi0o881nz4a.png","canonical_url":"https://antigymclub.com/blog/llm-txt-standard-explained.html","created_at":"2026-04-12T23:37:17Z","edited_at":"2026-04-12T23:37:39Z","crossposted_at":null,"published_at":"2026-04-12T23:37:17Z","last_comment_at":"2026-04-13T00:15:34Z","reading_time_minutes":2,"tag_list":["wordpress","ai","webdev","tutorial"],"tags":"wordpress, ai, webdev, tutorial","user":{"name":"anti Gym Club","username":"antigymclub","twitter_username":null,"github_username":null,"user_id":3875616,"website_url":"https://antigymclub.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%2F3875616%2F78fc9ad6-c95a-4068-b6e0-c0d296576a7f.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%2F3875616%2F78fc9ad6-c95a-4068-b6e0-c0d296576a7f.png"}},{"type_of":"article","id":3492350,"title":"How I Built a Multi-Agent Code Review Pipeline","description":"A practical guide to wiring up AI agents that review PRs before your team does","readable_publish_date":"Apr 13","slug":"how-i-built-a-multi-agent-code-review-pipeline-47i","path":"/thegdsks/how-i-built-a-multi-agent-code-review-pipeline-47i","url":"https://dev.to/thegdsks/how-i-built-a-multi-agent-code-review-pipeline-47i","comments_count":0,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2026-04-13T04:03:50Z","language":"en","subforem_id":1,"positive_reactions_count":3,"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%2Fcc4oz8zpr8ck5qrh0m64.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%2Fcc4oz8zpr8ck5qrh0m64.png","canonical_url":"https://dev.to/thegdsks/how-i-built-a-multi-agent-code-review-pipeline-47i","created_at":"2026-04-13T04:03:38Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T04:03:50Z","last_comment_at":"2026-04-13T04:03:50Z","reading_time_minutes":5,"tag_list":["ai","github","tutorial","productivity"],"tags":"ai, github, tutorial, productivity","user":{"name":"GDS K S","username":"thegdsks","twitter_username":"thegdsks","github_username":"thegdsks","user_id":3592860,"website_url":"https://thegdsks.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%2F3592860%2F7dec468f-4f91-4b1d-9d24-99091e204707.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%2F3592860%2F7dec468f-4f91-4b1d-9d24-99091e204707.jpg"}},{"type_of":"article","id":3492077,"title":"React File Handling: Uploads, Drop Zones, and Object URLs","description":"React File Handling: Uploads, Drop Zones, and Object URLs   Every non-trivial app eventually...","readable_publish_date":"Apr 13","slug":"react-file-handling-uploads-drop-zones-and-object-urls-30p5","path":"/childrentime/react-file-handling-uploads-drop-zones-and-object-urls-30p5","url":"https://dev.to/childrentime/react-file-handling-uploads-drop-zones-and-object-urls-30p5","comments_count":0,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-13T01:53:48Z","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%2Fssz4fqt3t42hz9tg57r9.png","canonical_url":"https://dev.to/childrentime/react-file-handling-uploads-drop-zones-and-object-urls-30p5","created_at":"2026-04-13T01:52:35Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T01:53:48Z","last_comment_at":"2026-04-13T01:53:48Z","reading_time_minutes":9,"tag_list":["react","javascript","webdev","tutorial"],"tags":"react, javascript, webdev, tutorial","user":{"name":"reactuse.com","username":"childrentime","twitter_username":null,"github_username":"childrentime","user_id":1119566,"website_url":"https://www.reactuse.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%2F1119566%2F2b0c07f8-e03d-420f-8876-c660f7ce083c.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%2F1119566%2F2b0c07f8-e03d-420f-8876-c660f7ce083c.png"}},{"type_of":"article","id":3492066,"title":"How to Install Claude Code the Right Way in 2026","description":"I've installed Claude Code three different ways in the past month. Homebrew first, then npm, now the...","readable_publish_date":"Apr 13","slug":"how-to-install-claude-code-the-right-way-in-2026-52kb","path":"/vpetreski/how-to-install-claude-code-the-right-way-in-2026-52kb","url":"https://dev.to/vpetreski/how-to-install-claude-code-the-right-way-in-2026-52kb","comments_count":0,"public_reactions_count":0,"collection_id":38524,"published_timestamp":"2026-04-13T01:46:41Z","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%2Fn08tonmv090ir1ym3hr0.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%2Fn08tonmv090ir1ym3hr0.png","canonical_url":"https://vanja.io/install-claude-code/","created_at":"2026-04-13T01:46:41Z","edited_at":"2026-04-13T01:53:11Z","crossposted_at":null,"published_at":"2026-04-13T01:46:41Z","last_comment_at":"2026-04-13T01:46:41Z","reading_time_minutes":3,"tag_list":["claudecode","ai","tutorial","programming"],"tags":"claudecode, ai, tutorial, programming","user":{"name":"Vanja Petreski","username":"vpetreski","twitter_username":null,"github_username":"vpetreski","user_id":419006,"website_url":"https://vanja.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%2F419006%2F0dc8a054-7ddc-4e90-8525-fe1871d5e03c.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%2F419006%2F0dc8a054-7ddc-4e90-8525-fe1871d5e03c.jpeg"}},{"type_of":"article","id":3492516,"title":"Markdown Cheat Sheet: Complete Syntax Guide with Examples (2026)","description":"Markdown is everywhere — GitHub READMEs, documentation, blog posts, Discord, Reddit, Notion, and...","readable_publish_date":"Apr 13","slug":"markdown-cheat-sheet-complete-syntax-guide-with-examples-2026-50j1","path":"/progragon_technolabs/markdown-cheat-sheet-complete-syntax-guide-with-examples-2026-50j1","url":"https://dev.to/progragon_technolabs/markdown-cheat-sheet-complete-syntax-guide-with-examples-2026-50j1","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-13T04:56:09Z","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%2Fliaimo6e6aclbf0tx5tq.png","canonical_url":"https://stringtoolsapp.com/blog/markdown-cheat-sheet","created_at":"2026-04-13T04:56:09Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T04:56:09Z","last_comment_at":"2026-04-13T04:56:09Z","reading_time_minutes":3,"tag_list":["markdown","webdev","beginners","tutorial"],"tags":"markdown, webdev, beginners, tutorial","user":{"name":"Progragon Technolabs","username":"progragon_technolabs","twitter_username":null,"github_username":null,"user_id":3871077,"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%2F3871077%2F5c762d91-fb96-4a3e-ab3f-f71a2ae516bf.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%2F3871077%2F5c762d91-fb96-4a3e-ab3f-f71a2ae516bf.jpg"}},{"type_of":"article","id":3491363,"title":"Salesmotion's MCP Server Turns Your AI Assistant into a Live Pipeline Analyst","description":"Sales AI has had a credibility problem for a while now. The pitch always sounds the same: connect...","readable_publish_date":"Apr 12","slug":"salesmotions-mcp-server-turns-your-ai-assistant-into-a-live-pipeline-analyst-1f5h","path":"/om_shree_0709/salesmotions-mcp-server-turns-your-ai-assistant-into-a-live-pipeline-analyst-1f5h","url":"https://dev.to/om_shree_0709/salesmotions-mcp-server-turns-your-ai-assistant-into-a-live-pipeline-analyst-1f5h","comments_count":0,"public_reactions_count":20,"collection_id":null,"published_timestamp":"2026-04-12T19:01:07Z","language":"en","subforem_id":1,"positive_reactions_count":20,"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%2Fb3xll3nrknen66iv3wle.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%2Fb3xll3nrknen66iv3wle.png","canonical_url":"https://dev.to/om_shree_0709/salesmotions-mcp-server-turns-your-ai-assistant-into-a-live-pipeline-analyst-1f5h","created_at":"2026-04-12T19:01:07Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T19:01:07Z","last_comment_at":"2026-04-12T19:01:07Z","reading_time_minutes":6,"tag_list":["ai","tutorial","beginners","discuss"],"tags":"ai, tutorial, beginners, discuss","user":{"name":"Om Shree","username":"om_shree_0709","twitter_username":"OmShree0709","github_username":"Om-Shree-0709","user_id":2900392,"website_url":"https://shreesozo.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%2F2900392%2F78ad1723-16ab-4e46-b39c-7f3feb416d23.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%2F2900392%2F78ad1723-16ab-4e46-b39c-7f3feb416d23.jpg"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":3492346,"title":"Deploying Rails AI Apps with Kamal on a VPS — Docker, SSH, Zero Downtime","description":"We've spent 27 posts writing code. Now it's time to put it on a server.  Not a managed platform. Not...","readable_publish_date":"Apr 13","slug":"deploying-rails-ai-apps-with-kamal-on-a-vps-docker-ssh-zero-downtime-45ma","path":"/agentq/deploying-rails-ai-apps-with-kamal-on-a-vps-docker-ssh-zero-downtime-45ma","url":"https://dev.to/agentq/deploying-rails-ai-apps-with-kamal-on-a-vps-docker-ssh-zero-downtime-45ma","comments_count":0,"public_reactions_count":0,"collection_id":37700,"published_timestamp":"2026-04-13T04:02:40Z","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%2F7qdc0hssnorbcsrd1mff.png","canonical_url":"https://dev.to/agentq/deploying-rails-ai-apps-with-kamal-on-a-vps-docker-ssh-zero-downtime-45ma","created_at":"2026-04-13T04:02:40Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T04:02:40Z","last_comment_at":"2026-04-13T04:02:40Z","reading_time_minutes":4,"tag_list":["ruby","rails","devops","tutorial"],"tags":"ruby, rails, devops, tutorial","user":{"name":"AgentQ","username":"agentq","twitter_username":null,"github_username":null,"user_id":3760585,"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%2F3760585%2Fd7698379-53a6-4d33-878a-fb0f18b3d1cd.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%2F3760585%2Fd7698379-53a6-4d33-878a-fb0f18b3d1cd.png"}},{"type_of":"article","id":3492339,"title":"Linux Cron Jobs: Automating Your Server Tasks","description":"Ever felt like you're doing the same repetitive tasks on your server over and over? From backups to...","readable_publish_date":"Apr 13","slug":"linux-cron-jobs-automating-your-server-tasks-3f0o","path":"/big_mazzy_06d057cc24398c5/linux-cron-jobs-automating-your-server-tasks-3f0o","url":"https://dev.to/big_mazzy_06d057cc24398c5/linux-cron-jobs-automating-your-server-tasks-3f0o","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-13T04:00:39Z","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%2F2ttoki97upcu6nh74z36.png","canonical_url":"https://serverrental.store/guides/linux-cron-jobs-automating-your-server-tasks","created_at":"2026-04-13T04:00:39Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T04:00:39Z","last_comment_at":"2026-04-13T04:00:39Z","reading_time_minutes":6,"tag_list":["linux","devops","tutorial","beginners"],"tags":"linux, devops, tutorial, beginners","user":{"name":"Big Mazzy","username":"big_mazzy_06d057cc24398c5","twitter_username":null,"github_username":null,"user_id":3875821,"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%2F3875821%2F2e43de5f-d2e3-4708-b91b-2e5c767a2992.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%2F3875821%2F2e43de5f-d2e3-4708-b91b-2e5c767a2992.png"}},{"type_of":"article","id":3478843,"title":"Document Tool: Grounding AI in Enterprise Knowledge","description":"Overview   Oracle AI Agent Studio provides a structured way to build intelligent agents that...","readable_publish_date":"Apr 13","slug":"document-tool-grounding-ai-in-enterprise-knowledge-fjp","path":"/halton_chen/document-tool-grounding-ai-in-enterprise-knowledge-fjp","url":"https://dev.to/halton_chen/document-tool-grounding-ai-in-enterprise-knowledge-fjp","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-13T03:59:29Z","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%2F139fnlyn7sctg64xqdv8.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%2F139fnlyn7sctg64xqdv8.png","canonical_url":"https://dev.to/halton_chen/document-tool-grounding-ai-in-enterprise-knowledge-fjp","created_at":"2026-04-10T02:25:41Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T03:59:29Z","last_comment_at":"2026-04-13T03:59:29Z","reading_time_minutes":3,"tag_list":["ai","agents","rag","tutorial"],"tags":"ai, agents, rag, tutorial","user":{"name":"Halton Chen","username":"halton_chen","twitter_username":null,"github_username":null,"user_id":3852015,"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%2F3852015%2F30ab32f9-8a6b-4525-86b5-49db67fda465.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%2F3852015%2F30ab32f9-8a6b-4525-86b5-49db67fda465.png"}},{"type_of":"article","id":3492273,"title":"Securing Your Home Server — UFW, Fail2Ban, SSH Hardening, and Lessons Learned","description":"In Part 4, your server went live on the internet. Which means within 24 hours, bots from around the...","readable_publish_date":"Apr 13","slug":"securing-your-home-server-ufw-fail2ban-ssh-hardening-and-lessons-learned-5630","path":"/avgskully/securing-your-home-server-ufw-fail2ban-ssh-hardening-and-lessons-learned-5630","url":"https://dev.to/avgskully/securing-your-home-server-ufw-fail2ban-ssh-hardening-and-lessons-learned-5630","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-13T03:26:55Z","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%2Fbg112r9mbfd9vl5nh3yf.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%2Fbg112r9mbfd9vl5nh3yf.jpg","canonical_url":"https://dev.to/avgskully/securing-your-home-server-ufw-fail2ban-ssh-hardening-and-lessons-learned-5630","created_at":"2026-04-13T03:26:55Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T03:26:55Z","last_comment_at":"2026-04-13T03:26:55Z","reading_time_minutes":6,"tag_list":["selfhosted","security","linux","tutorial"],"tags":"selfhosted, security, linux, tutorial","user":{"name":"Sasanka Rath","username":"avgskully","twitter_username":null,"github_username":"sasrath","user_id":3830263,"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%2F3830263%2Fde2eb63b-f9ea-4b8c-a9d6-f10b2b27d018.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%2F3830263%2Fde2eb63b-f9ea-4b8c-a9d6-f10b2b27d018.png"}},{"type_of":"article","id":3491753,"title":"Samba, Spotlight \u0026 Manticore","description":"Part 1 — The Journey            The Goal   I have a NAS built on Proxmox with LXC...","readable_publish_date":"Apr 12","slug":"samba-spotlight-manticore-40f9","path":"/mrkrash/samba-spotlight-manticore-40f9","url":"https://dev.to/mrkrash/samba-spotlight-manticore-40f9","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T22:13:41Z","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%2Fmgofnqdqneh6r2sx76a8.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%2Fmgofnqdqneh6r2sx76a8.png","canonical_url":"https://mario.raval.li/posts/samba-spotlight-manticore/","created_at":"2026-04-12T22:13:41Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T22:13:41Z","last_comment_at":"2026-04-12T22:13:41Z","reading_time_minutes":5,"tag_list":["tutorial","linux"],"tags":"tutorial, linux","user":{"name":"Mario Ravalli","username":"mrkrash","twitter_username":"mementoloop","github_username":"senzidee","user_id":396351,"website_url":"https://mario.raval.li","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%2F396351%2F8673e640-cc0e-4fa9-8406-427db6f742d7.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%2F396351%2F8673e640-cc0e-4fa9-8406-427db6f742d7.jpeg"}},{"type_of":"article","id":3492082,"title":"Configure Claude Code for Maximum Power","description":"No prompts, max effort, zero friction. The complete permissions setup for power users who want Claude...","readable_publish_date":"Apr 13","slug":"configure-claude-code-for-maximum-power-4coi","path":"/vpetreski/configure-claude-code-for-maximum-power-4coi","url":"https://dev.to/vpetreski/configure-claude-code-for-maximum-power-4coi","comments_count":0,"public_reactions_count":0,"collection_id":38524,"published_timestamp":"2026-04-13T01:55: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.amazonaws.com%2Fuploads%2Farticles%2Fxx7hc2irt466s7j3npip.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%2Fxx7hc2irt466s7j3npip.png","canonical_url":"https://vanja.io/claude-code-max-power/","created_at":"2026-04-13T01:55:47Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T01:55:47Z","last_comment_at":"2026-04-13T01:55:47Z","reading_time_minutes":4,"tag_list":["ai","claudecode","tutorial","programming"],"tags":"ai, claudecode, tutorial, programming","user":{"name":"Vanja Petreski","username":"vpetreski","twitter_username":null,"github_username":"vpetreski","user_id":419006,"website_url":"https://vanja.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%2F419006%2F0dc8a054-7ddc-4e90-8525-fe1871d5e03c.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%2F419006%2F0dc8a054-7ddc-4e90-8525-fe1871d5e03c.jpeg"}},{"type_of":"article","id":3488834,"title":"AWS Lambda Deployment with Terraform Step by Step Complete Example","description":"A comprehensive guide to deploying AWS Lambda functions using Terraform, covering prerequisites, concepts, and best practices","readable_publish_date":"Apr 12","slug":"aws-lambda-deployment-with-terraform-step-by-step-complete-example-24di","path":"/rajesh1761/aws-lambda-deployment-with-terraform-step-by-step-complete-example-24di","url":"https://dev.to/rajesh1761/aws-lambda-deployment-with-terraform-step-by-step-complete-example-24di","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T00:48:49Z","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%2Fa147lboslq0qydh67xf4.png","canonical_url":"https://howtostartprogramming.in/aws-lambda-deployment-with-terraform-step-by-step-complete-example/","created_at":"2026-04-12T00:48:49Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T00:48:49Z","last_comment_at":"2026-04-12T00:48:49Z","reading_time_minutes":2,"tag_list":["terraform","programming","tutorial"],"tags":"terraform, programming, tutorial","user":{"name":"Rajesh Mishra","username":"rajesh1761","twitter_username":"Rajesh_Mishra10","github_username":"Rajesh1761","user_id":386291,"website_url":"https://howtostartprogramming.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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F386291%2F3a705353-b889-4de6-8aac-ee5b91fcf935.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%2F386291%2F3a705353-b889-4de6-8aac-ee5b91fcf935.png"}},{"type_of":"article","id":3447981,"title":"⚔️ Terraform Workspaces vs Environments — Part 7","description":"So far in this series, we’ve:   Deployed infrastructure with Terraform Used variables and...","readable_publish_date":"Apr 13","slug":"terraform-workspaces-vs-environments-part-7-4ank","path":"/ahkarswe/terraform-workspaces-vs-environments-part-7-4ank","url":"https://dev.to/ahkarswe/terraform-workspaces-vs-environments-part-7-4ank","comments_count":0,"public_reactions_count":0,"collection_id":38488,"published_timestamp":"2026-04-13T00:30:00Z","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%2Fpuhqxnrzcalammdtvre9.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%2Fpuhqxnrzcalammdtvre9.png","canonical_url":"https://dev.to/ahkarswe/terraform-workspaces-vs-environments-part-7-4ank","created_at":"2026-04-03T06:38:45Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T00:30:00Z","last_comment_at":"2026-04-13T00:30:00Z","reading_time_minutes":2,"tag_list":["architecture","devops","terraform","tutorial"],"tags":"architecture, devops, terraform, tutorial","user":{"name":"Ahkar Swe","username":"ahkarswe","twitter_username":null,"github_username":"ahkarswe","user_id":3824056,"website_url":"https://mindgnite.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%2F3824056%2Fbc58cbdb-f719-451d-920f-6cfe512e220e.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%2F3824056%2Fbc58cbdb-f719-451d-920f-6cfe512e220e.png"}},{"type_of":"article","id":3491398,"title":"Result is not error handling","description":"We talk about the Result pattern like it's a better way to handle errors. Return a Result instead of...","readable_publish_date":"Apr 12","slug":"result-is-not-error-handling-13md","path":"/thatghost/result-is-not-error-handling-13md","url":"https://dev.to/thatghost/result-is-not-error-handling-13md","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T19:14:58Z","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%2Fhflzaoolc7y4udqcwovx.png","canonical_url":"https://dev.to/thatghost/result-is-not-error-handling-13md","created_at":"2026-04-12T19:14:59Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T19:14:58Z","last_comment_at":"2026-04-12T19:14:58Z","reading_time_minutes":3,"tag_list":["programming","architecture","dotnet","tutorial"],"tags":"programming, architecture, dotnet, tutorial","user":{"name":"ThatGhost","username":"thatghost","twitter_username":null,"github_username":null,"user_id":3843129,"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%2F3843129%2Ffeb103f0-3fbc-4bf0-ae02-7dce96020a73.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%2F3843129%2Ffeb103f0-3fbc-4bf0-ae02-7dce96020a73.jpg"}},{"type_of":"article","id":3491823,"title":"Bank Reconciliation in Python: Building a Plaid Integration from Scratch","description":"Bank Reconciliation in Python: Building a Plaid Integration from Scratch   If you're...","readable_publish_date":"Apr 12","slug":"bank-reconciliation-in-python-building-a-plaid-integration-from-scratch-1o9e","path":"/etpdev/bank-reconciliation-in-python-building-a-plaid-integration-from-scratch-1o9e","url":"https://dev.to/etpdev/bank-reconciliation-in-python-building-a-plaid-integration-from-scratch-1o9e","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T23:11:55Z","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%2Fbz3hjmetulz2lrmcepc8.png","canonical_url":"https://dev.to/etpdev/bank-reconciliation-in-python-building-a-plaid-integration-from-scratch-1o9e","created_at":"2026-04-12T23:11:55Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T23:11:55Z","last_comment_at":"2026-04-12T23:11:55Z","reading_time_minutes":6,"tag_list":["python","plaid","fintech","tutorial"],"tags":"python, plaid, fintech, tutorial","user":{"name":"Edwards Tech Innovations","username":"etpdev","twitter_username":null,"github_username":"ETPDEV","user_id":3875602,"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%2F3875602%2F9b085e10-d232-4f95-9698-7b209d902fe8.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%2F3875602%2F9b085e10-d232-4f95-9698-7b209d902fe8.jpeg"}},{"type_of":"article","id":3491791,"title":"How to Build Custom Commands for Codex Using Agent Skills Standard","description":"If you are using Codex (whether the CLI, IDE extension, or the standalone app), building custom...","readable_publish_date":"Apr 12","slug":"how-to-build-custom-commands-for-codex-using-agent-skills-standard-13jf","path":"/volodymyr_nehir/how-to-build-custom-commands-for-codex-using-agent-skills-standard-13jf","url":"https://dev.to/volodymyr_nehir/how-to-build-custom-commands-for-codex-using-agent-skills-standard-13jf","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-12T22:43:53Z","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.amazonaws.com%2Fuploads%2Farticles%2Fekqacqxysu5uh74hi2e0.png","canonical_url":"https://dev.to/volodymyr_nehir/how-to-build-custom-commands-for-codex-using-agent-skills-standard-13jf","created_at":"2026-04-12T22:43:53Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T22:43:53Z","last_comment_at":"2026-04-12T22:43:53Z","reading_time_minutes":2,"tag_list":["ai","chatgpt","agents","tutorial"],"tags":"ai, chatgpt, agents, tutorial","user":{"name":"Volodymyr Nehir","username":"volodymyr_nehir","twitter_username":null,"github_username":null,"user_id":3875006,"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%2F3875006%2Fb3e095fa-1ea0-45ac-a9c0-884bb3ebb938.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%2F3875006%2Fb3e095fa-1ea0-45ac-a9c0-884bb3ebb938.jpeg"}},{"type_of":"article","id":3491215,"title":"The Precompute Pattern: How to Stop One Cookie from Wrecking Your Entire Next.js App","description":"A deep dive into the pattern that keeps pages static when your app needs to know who's logged...","readable_publish_date":"Apr 12","slug":"the-precompute-pattern-how-to-stop-one-cookie-from-wrecking-your-entire-nextjs-app-m40","path":"/0xtanzim/the-precompute-pattern-how-to-stop-one-cookie-from-wrecking-your-entire-nextjs-app-m40","url":"https://dev.to/0xtanzim/the-precompute-pattern-how-to-stop-one-cookie-from-wrecking-your-entire-nextjs-app-m40","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T18:20:00Z","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%2Fted1a3m7ol36vogyihgr.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%2Fted1a3m7ol36vogyihgr.png","canonical_url":"https://dev.to/0xtanzim/the-precompute-pattern-how-to-stop-one-cookie-from-wrecking-your-entire-nextjs-app-m40","created_at":"2026-04-12T18:20:00Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T18:20:00Z","last_comment_at":"2026-04-12T18:20:00Z","reading_time_minutes":8,"tag_list":["nextjs","caching","react","tutorial"],"tags":"nextjs, caching, react, tutorial","user":{"name":"Tanzim Hossain","username":"0xtanzim","twitter_username":"0xTanzim","github_username":"0xTanzim","user_id":1006671,"website_url":"https://github.com/0xTanzim","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%2F1006671%2F15ac09c1-a553-40f9-8cba-a325faee3c42.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%2F1006671%2F15ac09c1-a553-40f9-8cba-a325faee3c42.jpeg"}},{"type_of":"article","id":3490912,"title":"12 things you can do today to make your transactional emails work for humans and AI agents","description":"AI agents are starting to use email. Not metaphorically. They sign up for services, receive...","readable_publish_date":"Apr 12","slug":"12-things-you-can-do-today-to-make-your-transactional-emails-work-for-humans-and-ai-agents-k1b","path":"/broodnet/12-things-you-can-do-today-to-make-your-transactional-emails-work-for-humans-and-ai-agents-k1b","url":"https://dev.to/broodnet/12-things-you-can-do-today-to-make-your-transactional-emails-work-for-humans-and-ai-agents-k1b","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T16:44:51Z","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%2Fhsw77rq3knf0wwval10i.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%2Fhsw77rq3knf0wwval10i.png","canonical_url":"https://dev.to/broodnet/12-things-you-can-do-today-to-make-your-transactional-emails-work-for-humans-and-ai-agents-k1b","created_at":"2026-04-12T16:28:51Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T16:44:51Z","last_comment_at":"2026-04-12T16:44:51Z","reading_time_minutes":7,"tag_list":["marketing","agents","tutorial","datascience"],"tags":"marketing, agents, tutorial, datascience","user":{"name":"Jonathan Tavares","username":"jtavares","twitter_username":null,"github_username":null,"user_id":3801475,"website_url":"https://wearesingular.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%2F3801475%2Fd9666561-f4af-41d1-b5c9-96383901421f.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%2F3801475%2Fd9666561-f4af-41d1-b5c9-96383901421f.jpg"},"organization":{"name":"Broodnet","username":"broodnet","slug":"broodnet","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%2F12819%2Fe19be5d2-c195-4d6d-a1cf-c897f186cf5e.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%2F12819%2Fe19be5d2-c195-4d6d-a1cf-c897f186cf5e.png"}},{"type_of":"article","id":3491609,"title":"How to Deploy Uptime Kuma with Docker on Ubuntu 24.04","description":"Deploy a self-hosted monitoring dashboard with Uptime Kuma and Docker Compose. Track websites, APIs, and services with alerts via Slack, Telegram, email, and more.","readable_publish_date":"Apr 12","slug":"how-to-deploy-uptime-kuma-with-docker-on-ubuntu-2404-3a00","path":"/sst21/how-to-deploy-uptime-kuma-with-docker-on-ubuntu-2404-3a00","url":"https://dev.to/sst21/how-to-deploy-uptime-kuma-with-docker-on-ubuntu-2404-3a00","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T20:57:33Z","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%2Flsn6gy4dbhhvjpq0erl3.png","canonical_url":"https://rafftechnologies.com/learn/tutorials/deploy-uptime-kuma-docker-ubuntu-24-04","created_at":"2026-04-12T20:57:34Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T20:57:33Z","last_comment_at":"2026-04-12T20:57:33Z","reading_time_minutes":2,"tag_list":["selfhosted","cloud","tutorial","devops"],"tags":"selfhosted, cloud, tutorial, devops","user":{"name":"Serdar Tekin","username":"sst21","twitter_username":null,"github_username":null,"user_id":3447149,"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%2F3447149%2Ffd106ab0-1e42-4a44-965b-416c1e0f336a.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%2F3447149%2Ffd106ab0-1e42-4a44-965b-416c1e0f336a.png"}},{"type_of":"article","id":3491511,"title":"Building a European Video Platform API with FastAPI","description":"Creating REST API endpoints for video search, categories, and trending across European regions using","readable_publish_date":"Apr 12","slug":"building-a-european-video-platform-api-with-fastapi-5h25","path":"/ahmet_gedik778845/building-a-european-video-platform-api-with-fastapi-5h25","url":"https://dev.to/ahmet_gedik778845/building-a-european-video-platform-api-with-fastapi-5h25","comments_count":0,"public_reactions_count":0,"collection_id":36191,"published_timestamp":"2026-04-12T20:00: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%2Fhwwr7p5abauyxjdkt4p3.png","canonical_url":"https://dev.to/ahmet_gedik778845/building-a-european-video-platform-api-with-fastapi-5h25","created_at":"2026-04-12T20:00:06Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T20:00:06Z","last_comment_at":"2026-04-12T20:00:06Z","reading_time_minutes":3,"tag_list":["python","fastapi","api","tutorial"],"tags":"python, fastapi, api, tutorial","user":{"name":"ahmet gedik","username":"ahmet_gedik778845","twitter_username":null,"github_username":null,"user_id":3801199,"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%2F3801199%2Fcae54b2b-1a40-47e7-aefb-84cc64c80750.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%2F3801199%2Fcae54b2b-1a40-47e7-aefb-84cc64c80750.png"}},{"type_of":"article","id":3491465,"title":"Set Up OpenClaw as Your Personal AI Agent in 2026","description":"OpenClaw is the open-source AI agent that hit 356,000 GitHub stars in three months. It connects any...","readable_publish_date":"Apr 12","slug":"set-up-openclaw-as-your-personal-ai-agent-in-2026-h5o","path":"/kfuras/set-up-openclaw-as-your-personal-ai-agent-in-2026-h5o","url":"https://dev.to/kfuras/set-up-openclaw-as-your-personal-ai-agent-in-2026-h5o","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T19:34:31Z","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%2Fwjj0cicu2o0tk7783oc0.png","canonical_url":"https://kjetilfuras.com/openclaw-setup-guide/","created_at":"2026-04-12T19:34:31Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T19:34:31Z","last_comment_at":"2026-04-12T19:34:31Z","reading_time_minutes":5,"tag_list":["ai","automation","opensource","tutorial"],"tags":"ai, automation, opensource, tutorial","user":{"name":"Kjetil Furås","username":"kfuras","twitter_username":null,"github_username":null,"user_id":3806150,"website_url":"https://kjetilfuras.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%2F3806150%2F9172817a-2f98-47b2-a39c-d3c8d672a84d.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%2F3806150%2F9172817a-2f98-47b2-a39c-d3c8d672a84d.jpg"}},{"type_of":"article","id":3491343,"title":"IP Blacklists \u0026 DNSBL: How to Check and Get Delisted","description":"TL;DR IP blacklists (DNSBLs) are real-time databases that mail servers query to block spam at the...","readable_publish_date":"Apr 12","slug":"ip-blacklists-dnsbl-how-to-check-and-get-delisted-1kip","path":"/toolbox_starnomina/ip-blacklists-dnsbl-how-to-check-and-get-delisted-1kip","url":"https://dev.to/toolbox_starnomina/ip-blacklists-dnsbl-how-to-check-and-get-delisted-1kip","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T19:21:57Z","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%2Ftoolbox.starnomina.tn%2Fblog%2Fip-blacklists.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Ftoolbox.starnomina.tn%2Fblog%2Fip-blacklists.jpg","canonical_url":"https://toolbox.starnomina.tn/blog/ip-blacklists-dnsbl-check-and-delist","created_at":"2026-04-12T18:59:09Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T19:21:57Z","last_comment_at":"2026-04-12T19:21:57Z","reading_time_minutes":6,"tag_list":["webdev","tools","tutorial","programming"],"tags":"webdev, tools, tutorial, programming","user":{"name":"toolbox-poster","username":"toolbox_starnomina","twitter_username":null,"github_username":null,"user_id":3875373,"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%2F3875373%2F4a93db7e-1799-4892-be4c-52b15227bbed.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%2F3875373%2F4a93db7e-1799-4892-be4c-52b15227bbed.jpeg"}},{"type_of":"article","id":3491338,"title":"Domain Security Audit: The Complete Checklist for 2026","description":"TL;DR A domain security audit reviews DNS configuration, email authentication, SSL/TLS...","readable_publish_date":"Apr 12","slug":"domain-security-audit-the-complete-checklist-for-2026-1ap0","path":"/toolbox_starnomina/domain-security-audit-the-complete-checklist-for-2026-1ap0","url":"https://dev.to/toolbox_starnomina/domain-security-audit-the-complete-checklist-for-2026-1ap0","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T19:23:21Z","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%2Ftoolbox.starnomina.tn%2Fblog%2Fdomain-audit.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Ftoolbox.starnomina.tn%2Fblog%2Fdomain-audit.jpg","canonical_url":"https://toolbox.starnomina.tn/blog/domain-security-audit-checklist","created_at":"2026-04-12T18:58:21Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T19:23:21Z","last_comment_at":"2026-04-12T19:23:21Z","reading_time_minutes":4,"tag_list":["security","cybersecurity","webdev","tutorial"],"tags":"security, cybersecurity, webdev, tutorial","user":{"name":"toolbox-poster","username":"toolbox_starnomina","twitter_username":null,"github_username":null,"user_id":3875373,"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%2F3875373%2F4a93db7e-1799-4892-be4c-52b15227bbed.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%2F3875373%2F4a93db7e-1799-4892-be4c-52b15227bbed.jpeg"}},{"type_of":"article","id":3491332,"title":"SSL/TLS Certificates Explained: HTTPS Security for Every Website","description":"TL;DR SSL/TLS certificates are the backbone of encrypted web communication, authenticating server...","readable_publish_date":"Apr 12","slug":"ssltls-certificates-explained-https-security-for-every-website-55ci","path":"/toolbox_starnomina/ssltls-certificates-explained-https-security-for-every-website-55ci","url":"https://dev.to/toolbox_starnomina/ssltls-certificates-explained-https-security-for-every-website-55ci","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T19:24:11Z","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%2Ftoolbox.starnomina.tn%2Fblog%2Fssl-tls.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Ftoolbox.starnomina.tn%2Fblog%2Fssl-tls.jpg","canonical_url":"https://toolbox.starnomina.tn/blog/ssl-tls-certificates-explained","created_at":"2026-04-12T18:57:00Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T19:24:11Z","last_comment_at":"2026-04-12T19:24:11Z","reading_time_minutes":4,"tag_list":["security","webdev","tutorial","devops"],"tags":"security, webdev, tutorial, devops","user":{"name":"toolbox-poster","username":"toolbox_starnomina","twitter_username":null,"github_username":null,"user_id":3875373,"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%2F3875373%2F4a93db7e-1799-4892-be4c-52b15227bbed.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%2F3875373%2F4a93db7e-1799-4892-be4c-52b15227bbed.jpeg"}},{"type_of":"article","id":3491281,"title":"Understand Your First Axum Server by Comparing with FastAPI","description":"If you're coming from Python and have used FastAPI, learning Rust’s Axum can feel confusing at first....","readable_publish_date":"Apr 12","slug":"understanding-your-first-axum-server-by-comparing-with-fastapi-2mk2","path":"/syeedmdtalha/understanding-your-first-axum-server-by-comparing-with-fastapi-2mk2","url":"https://dev.to/syeedmdtalha/understanding-your-first-axum-server-by-comparing-with-fastapi-2mk2","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T18:42: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.amazonaws.com%2Fuploads%2Farticles%2Frutjv0ts8rkjphron4y6.png","canonical_url":"https://dev.to/syeedmdtalha/understanding-your-first-axum-server-by-comparing-with-fastapi-2mk2","created_at":"2026-04-12T18:42:16Z","edited_at":"2026-04-12T18:46:27Z","crossposted_at":null,"published_at":"2026-04-12T18:42:15Z","last_comment_at":"2026-04-12T18:42:15Z","reading_time_minutes":3,"tag_list":["python","rust","tutorial","webdev"],"tags":"python, rust, tutorial, webdev","user":{"name":"Syeed Talha","username":"syeedmdtalha","twitter_username":null,"github_username":null,"user_id":2084191,"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%2F2084191%2F73c43f08-a4ad-4ebc-8e2f-b700db92a84c.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%2F2084191%2F73c43f08-a4ad-4ebc-8e2f-b700db92a84c.png"}}]