56,966 blogs · [
{
"id": "01a0879f-78c3-72b1-8351-99e98123cbf1",
"title": "I Run My Side Projects from My Phone with AI and a VPS",
"url": "https://marcomelilli.com/posts/run-side-projects-from-phone-ai-vps/",
"published_at": "2026-08-10T00:00:00+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e981c36948",
"title": "How to Configure a Shelly 2PM for Electric Shutters with Zigbee and Home Assistant",
"url": "https://marcomelilli.com/posts/configure-shelly-2pm-electric-shutters-zigbee-home-assistant/",
"published_at": "2026-05-24T00:00:00+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e981fc971c",
"title": "How to Set Up a Mini PC with Proxmox and Home Assistant OS",
"url": "https://marcomelilli.com/posts/setup-minipc-proxmox-home-assistant/",
"published_at": "2026-05-23T00:00:00+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e9825be354",
"title": "Setting Up a Telegram Bot for VPS Alert Notifications",
"url": "https://marcomelilli.com/posts/setup-telegram-bot-to-get-alert-notifications-from-vps/",
"published_at": "2024-04-09T00:00:00+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e9826031ae",
"title": "How to use vi editor without going crazy",
"url": "https://marcomelilli.com/posts/vi-basic-commands-cheat-sheet/",
"published_at": "2022-07-06T12:00:21+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e982f87784",
"title": "What is the difference between dom and virtual dom",
"url": "https://marcomelilli.com/posts/what-the-difference-between-dom-and-virtual-dom/",
"published_at": "2022-07-06T12:00:21+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e983db6734",
"title": "How to give a user access to the AWS billing console",
"url": "https://marcomelilli.com/posts/how-to-give-access-user-aws-billing-console/",
"published_at": "2022-04-19T12:00:21+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e984aa34d1",
"title": "Kubernetes main concepts and commands",
"url": "https://marcomelilli.com/posts/kubernetes-man-concepts-and-commands/",
"published_at": "2021-04-23T12:20:05+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e9856999dd",
"title": "How to enable user and password autocomplete suggestions",
"url": "https://marcomelilli.com/posts/enable-user-and-password-autocomplete-suggestion/",
"published_at": "2021-04-19T12:15:23+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e985798253",
"title": "How to setup a firewall with UFW on Debian",
"url": "https://marcomelilli.com/posts/how-to-setup-a-firewall-with-ufw-on-debian/",
"published_at": "2021-04-11T21:01:32+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e985df81f5",
"title": "How to secure your VPS with Fail2ban",
"url": "https://marcomelilli.com/posts/how-to-install-and-configure-fail2ban/",
"published_at": "2020-05-08T16:13:27+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e986409717",
"title": "Generate dynamic open graph images for blog posts",
"url": "https://marcomelilli.com/posts/generate-dynamic-open-graph-images-blog-post-title/",
"published_at": "2020-05-06T16:00:56+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e9867d4e8c",
"title": "Asymmetric encryption in Nodejs",
"url": "https://marcomelilli.com/posts/how-to-use-asymmetric-encryption-in-nodejs/",
"published_at": "2020-05-04T18:00:00+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e9872b28ac",
"title": "Gatsby open graph meta tags are not recognized",
"url": "https://marcomelilli.com/posts/gatsby-react-helmet-og-meta-tags-are-not-recognized/",
"published_at": "2020-05-03T13:23:11+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e9876c2f81",
"title": "How to determine if you are inside the popup or inside a tab (chrome extension)",
"url": "https://marcomelilli.com/posts/chrome-extension-determine-if-inside-popup-or-tab/",
"published_at": "2020-05-03T13:23:11+00:00"
},
{
"id": "01a0879f-78c3-72b1-8351-99e987ca41a6",
"title": "How to encrypt and decrypt in nodejs",
"url": "https://marcomelilli.com/posts/how-to-encrypt-strings-in-nodejs/",
"published_at": "2019-06-03T23:46:37+00:00"
}
] posts Claim your blog