In 2023, I published a blog post titled My journey to the world of social networks, where I shared my personal experience publishing news updates, blog posts, and basically any kind of technical knowledge through social networks.
There was something I always wanted to know – what is my current exposure in terms of the number of likes or views of my posts?
I know there are paid analytical services in the market, but I never had the time to search and perhaps invest money in such a platform.
In this blog post, I will share my experience "building" a fully serverless analytical dashboard, based on the Cloudflare platform.
Project No. 1 – Migrating my blog to a Serverless platform
I have been using WordPress to publish blog posts for many years.
As a matter of fact, my original WordPress was built on top of the GoDaddy hosting platform back in 2010, and in 2014, I began using Cloudflare as a WAF and DDoS protection for my website Security 24/7.
In 2018, I decided to migrate my WordPress site to DigitalOcean to lower the monthly bill.
Over the years, I kept the domain and the website working, though I haven't changed much in terms of look and feel (from time to time I used to login, update the plugins and the Linux OS patches, but I can't say I kept all my blog posts published on my website, since I'm still using other platforms such as Medium.com)
The inspiration for taking the step to migrate my website to a new platform came after briefly reading a blog post titled Claude Built My Wix Website in 3 Hours - Is SaaS Dead? by Ran Isenberg.
I had a chat with Ran, and I decided that it's a good time to begin practicing with vibe-coding and see what my options are.
For the purpose of this project, I decided to take advantage of my Google AI Pro license and use Gemini.
I began by explaining to Gemini that I'm using WordPress on top of Rocky Linux, deployed as a Droplet on DigitalOcean, protected behind Cloudflare WAF.
I asked Gemini what my options are to migrate to a static pages hosting platform.
Gemini suggested using the Cloudflare platform, migrating all blog posts to static pages, using Hugo for running the static pages as a web front-end, and running everything on top of Cloudflare Pages (a serverless solution), due to the tight integration with the Cloudflare platform (such as WAF, DDoS protection, DNS registrar, etc)
After migrating all my blog posts (including their images) to Markdown, Gemini explained me how to create a full GitOps process, where my entire website content, is stored on a private GitHub repo, and every time I'm making a change to a configuration file, or adding a new blog post, the content is pushed to GitHub, which initiates a new deploy process.
Here is my final architecture diagram for my newly migrated website:
I am still fine-tuning my website, adding features, improving its SEO scoring, etc., but at the moment, here is the current look and feel of my website:
Project No. 2 – Building a dashboard analytics platform
My journey continues, as I wanted to have an analytics dashboard and be able to see in near-real time statistics about my web presence.
First, I began by mapping all my social media accounts, as they appear on my Linktree account.
Second, I set up for myself (and later explained it to Gemini) my requirements from the social analytics dashboard:
- Connect to as many of my social network accounts using APIs (almost succeeded).
- Regularly pull data from my social network accounts – I managed to accomplish this task using Cloudflare Workers.
- Store data (analytics) from my social networks on a persistent storage – I managed to accomplish this task using Cloudflare D1.
- Avoid storing static credentials in code or configuration files – I managed to accomplish this task using Cloudflare Secrets Store.
- Keep the dashboard behind the authentication wall – I managed to accomplish this task using Cloudflare One.
- Keep the total cost free – As of writing this blog post, my dashboard hasn’t been live for more than several weeks, but so far, I’ve managed to accomplish everything under the free tier for all Cloudflare services (but I will keep watching it over time)
What I’ve learned over time
Not everything is perfect, and not everything I wanted to accomplish is feasible on the free tier, or at all.
Here are a couple of examples:
- LinkedIn won’t let you pull API analytics data, even if you’re having a Premium account and you’ve built a LinkedIn application. Scraping is not an option since they’re also behind Cloudflare WAF, and they will block you.
- Spotify won’t let you pull API analytics data unless you have a Spotify Premium account.
- Medium won’t let you pull any information using an API.
- Twitter requires a paid account in order to pull information from its APIs. Instead, I found a way to generate an RSS feed of my Twitter account using RSS.APP and my application are able to pull this RSS feed, filter to the last 50 posts, sort them by number of “Likes”, and show the top 5 posts.
- Since I was aware of Twitter and other social networks in pulling analytics, I recall that I’m using an automation service called dlvr.it, and for a very long time, I’ve asked Gemini to generate me code that will allow me to use my DLVR.IT's API key to pull analytics, but eventually it failed. I even opened a support ticket for dlvr.it (I’m still waiting for them to return to me…)
- For Bluesky and Mastodon, Gemini was easily able to write code to connect to their APIs and pull information such as top likes, total number of posts, and number of followers.
- YouTube was also challenging. I had to enable the YouTube API through my GCP console, create OAuth credentials and consent settings, to be able to pull the total number of subscribers, top likes of videos, and top views of videos.
- For GitHub repos, I had to create a GitHub application in order to generate a token for my dashboard analytics, and be able to pull the total number of followers, and be able to sort my GitHub repos by the top number of stars.
Here is my final architecture diagram for my social analytics dashboard:
I am still fine-tuning my dashboard analytics, adding features, etc., but at the moment, here is the current look and feel of my dashboard:
Summary
As you must have figured out by now, I’m not a developer. I used Gemini to vibe-code both my website and my dashboard analytics. As such, I wouldn’t look at both of them as production-grade applications, but it does show me what can be done with GenAI.
Another important thing I knew, but I didn’t have visibility into, was my impact on social networks. I still have a lot to do in order to make a much more significant impact and one day become an influencer.
I highly recommend that the readers of this blog dirty their hands and gain hands-on experience working with LLMs and GenAI technology. AI won’t replace humans anytime in the near future, but at least be prepared and use AI as a force multiplier.
About the Author
Eyal Estrin is a cloud and information security architect and AWS Community Builder, with more than 25 years in the industry. He is the author of Cloud Security Handbook and Security for Cloud Native Applications.
The views expressed are his own.






Top comments (0)