#97 Automating Instagram is a nightmare!

This one isn't entirely related to poketto.me, but it's still an interesting lesson I learned the hard way the other day: If you want to build a "simple" app that automatically posts content to your Instagram account, it's much more difficult than you'd think. First, there's a GitHub project called instagrapi that seems to offer a nice Python automation library for Instagram. It can post photos, videos, etc. Looks good, right? Don't use it. Ever. It’s based on unofficial APIs, and using it — especially in a script running in a cloud environment — will get your Instagram account blocked almost instantly. ...

October 5, 2025

#63 Social media “previews” are tricky (part 2)

Yesterday, I described my elegant solution to the social media “preview” problem: Direct the share URL to the Python backend, render a skeleton HTML page with machine-readable metadata, and send real browsers to the Angular app’s proper “read” page. But… how exactly do you redirect the user? My first, naive idea was to use the age-old HTML redirect tag: <meta http-equiv="refresh" content="0; url=http://example.com/" \> My assumption: social media bots wouldn’t follow these “semantic” redirects, but they would follow HTTP redirects (which they definitely do). This worked perfectly — except for LinkedIn 😅 ...

September 1, 2025

#62 Social media “previews” are tricky (part 1)

When you add a link to a website to post on Bluesky, Facebook, or LinkedIn, your post will often contain a “preview” of the target page. That’s great — it makes the post more appealing and more likely to get clicks. But how do social media platforms fetch the exact content they embed in that preview? That’s… a tiny rabbit hole. Enter: the “Share…” feature of poketto.me. You can share any saved content with others via poketto.me. Anyone who opens the link gets the same distraction-free reading experience, whether or not they use poketto.me. ...

August 31, 2025