
Microbrowsers Are Everywhere - cpeterso
https://24ways.org/2019/microbrowsers-are-everywhere/
======
foxhop
I think Google is the original inventor of link previews. It used to have them
in the SERP pages if you clicked the magnifying glass. I think it was called
"instant previews".

I actually created and launched an API on hacker news about 9 years ago which
does this, you can check it out here:
[https://linkpeek.com](https://linkpeek.com)

My service makes one request and caches the result. Using Pyramid (Python) and
Nginx. Lots of the code is open sourced in various libraries.

The problem with trying to sell this tech is that all the biggest players
build their own in-house solution, so the target market is really smaller
sites, but they have a hard time paying, and also there is a lot of
competition in this space now.

------
grenoire
Funny little anecdote: When I was at a hackathon, I was sending my team
members, over WhatsApp the hosted ngrok link each time I accidentally closed
the tunnel. The WApp microbrowser didn't store cookies and as such would get
stuck in the redirect loop from the index (yeah, yeah, it was a hackathon).
This would lead to my WhatsApp Web client crashing _before_ the message was
even sent. It would only happen when I sent my badly programmed auto-login
URL, and no time else, so I'm quite confident it was aggressively failing when
it didn't manage to get the information it needed and straight up crashed the
web client.

~~~
andai
That's interesting, sounds like WhatsApp Web loads the preview client-side?

~~~
Jaruzel
Yes. To be specific, if you are using the Web based WhatsApp (or the 'Desktop'
app), it will _not_ load the preview until your phone has pinged that it's
online. There are many times when I wait for the preview to load (because if
you send the message without the preview, no-one else gets one either), only
to have to wake my phone and voila, the preview then loads on Web WhatsApp.

~~~
marcusjt
Aha! I wondered why the appearance of previews was inconsistent, now I know
what to do to make them appear, thanks!

------
perk
> It’s almost 2020, advertise one favicon size. Remove all the other <link
> rel="shortcut icon" and <link rel="icon" references.

Which one should we keep?

~~~
dexterdog
Unfortunately all of them since there is such a mess of support across
browsers. SVG should be king by now but it's not.

~~~
The_rationalist
Latest chromium does support svg favicons

------
rocqua
>Finally, many platforms - particularly Facebook Messenger and Hangouts use
centralized services to request the preview layout. This is in contrast to
WhatsApp* and iMessage where you will see one request per user.

Wait, does this mean you can get the IP of most people you can contact on
whatsapp by just sending them a link and waiting for their phone to check that
link?

I can think of plenty of ways this could be abused!

~~~
edent
No. It is still the WhatsApp server making the request to your website - so
you only see the server's IP.

Facebook makes one request and then caches the result. Other servers may not
store the result.

~~~
will0
[Here's how signal does it]([https://hub.packtpub.com/signal-introduces-
optional-link-pre...](https://hub.packtpub.com/signal-introduces-optional-
link-previews-to-enable-users-understand-whats-behind-a-url/)).

TL;DR, the app establishes a TLS connection directly between your phone and
the site, but routes it through a proxy on Signal's server, thereby hiding
your IP without being able to view the URL. I imagine Whatsapp works in a
similar fashion

------
keyle
So you remember the way we used to prevent people from linking images from our
websites, we'd show a different image.

That means I can do the same with `og:image`, give a nice middle finger when
linking my website (hey, a bit of 90s fun here)

------
Minor49er
Something that downloads information from the web is called an "agent". A
browser is a specific type of agent called a "user agent". Calling agents
"microbrowsers" creates an odd curvle circle: user agents are browsers which
are agents which can be microbrowsers which are user agents, etc. Just thought
it was interesting

~~~
BubRoss
I can't tell if common things getting redefined is mostly from clueless
journalists or clueless tech workers that think they are inventing everything
for the first time in their first year on the job.

~~~
thrower123
I think there is a lot of both, but there's also so much churn and so little
historical knowledge propagated through the profession that people just keep
reinventing wheels because they don't know they've already been invented.
Every revolution of the hamster wheel does seem to get us a few inches ahead,
but refighting the same battles and redoing the same work gets very wearisome.
And I'm not even that old; I don't know how the people twice my age that are
still in this business can avoid being hopelessly jaded.

~~~
MayeulC
I keep thinking that we might see a second "information age" the day we can
reliably find something in the large ammount of data we have been piling up
recently (is there such a thing as the "data age"?). Neural networks might be
the beginning, but if we stop reinventing wheels, we could become a whole lot
more productive.

Are there good documents regarding "capitalism" (I guess; constantly
reinventing better wheels) vs other systems (reusing already designed wheels,
however square), in domains other than financial: what the tradeofs are, how
much worse your existing wheel can be before you start to feel it, potential
for innovation, etc. Free software might side with the later, but I'd like an
analytical exploration.

------
the_gipsy
Anybody knows what to do with an SPA that, without js, only displays
"loading..." and doesn't generate any preview on any platform (whatsapp,
telegram...)?

This is for a hobby project, so rewriting it to do server side rendering etc.
is not an option.

~~~
lucideer
> _This is for a hobby project, so rewriting it to do server side rendering
> etc. is not an option._

Rewrite it to do server side rendering.

Sorry if this seems facetious, but if you want it to be accessible, it needs
to be server-side rendered.

Some crawlers have some (limited) JS-rendering abilities; notably Googlebot;
but it's not full. Some crawlers may use a fully-fledged Chrome-headless but
latency would make this uncommon.

In general, JS-dependent SPAs have always been a terrible terrible idea for
anything _public_ facing that needs to be crawled (they're fine for web
applications, not for web pages).

~~~
the_gipsy
Sorry I didn't mention: it is a web game. Accessibility without JS is not
possible.

~~~
lucideer
In that case, JS-only is fine, but presumably you're talking about serving
fallback content (bots/crawlers are unlikely to be playing your game)

~~~
the_gipsy
Yea, I will try some better fillers than just "loading...", and the metatags
stuff.

I also might consider serving some other non-game pages statically, like the
leaderboard, user profiles, etc.

------
autoexec
I'm not a big fan of apps automatically initiating connections to any 3rd
party website. If this leads to an increase in sites that remain functional
without javascript and won't complain about a lack of a referer header I'll be
glad, but I suspect that while 'microbrowers' today aren't usually running
javascript and try to protect user's privacy, eventually we'll start seeing
website previews being used to hack devices and steal user data.

~~~
dokem
The request is made on the back end so I’m not sure any of your comment holds
up.

------
jpincheira
This is something that I implemented in Swift while working iOS engineer at
XING.com 2 years ago, it was really a fun widget to work on, that recognized
the link and loaded title/body/descriptions along with their `og:image` for
the image preview.

Now in my own product [1] I was a long time without implementing the right
tags on my landing / marketing page, and blog posts. I wish I would have done
this since I launched, but just started doing this 2 months ago since I
switched to Gatsby for our marketing page. They have a very easy to implement
SEO component [2], that allows you to focus more on the content than on
tweaking the meta tags for social.

[1] [https://standups.io](https://standups.io)

[2] [https://www.gatsbyjs.org/docs/add-seo-
component/](https://www.gatsbyjs.org/docs/add-seo-component/)

------
Waterluvian
I installed unity 3D and it wanted me to sign in to get my free license. Sure.
So I picked Google sign in from the list. This opened a little browser inside
the Unity launcher that immediately complained that it was insecure and would
not allow a Google Sign in attempt.

Sure felt silly.

------
fouc
Lots of solid tips for web developers in this article.

------
lazyjones
Very useful and solid info, now if we had a tool for generating and testing
these link previews locally for our stuff... There's some APIs and various
libs/WP plugins for generating link previews, but nothing that covers the
functionality of major messagers and websites. Any takers?

------
skybrian
I'm wondering if having a bit more of a preview results in fewer "headline is
misleading" disputes?

------
debt
“ However, the real gold for marketers is from word-of-mouth discussions.
Those conversations with your friends when you recommend a TV show, a brand of
clothing, or share a news report. This is the most valuable kind of
marketing.”

That’s saying quite a lot.

------
jchw
Not sure I’ve ever heard the term “microbrowser.” It makes for an interesting
headline I guess but it’d just as well be fine if it focused solely on
opengraph and friends.

------
zimmertr
Didn't Microsoft Calculator used to have a browser built into the help menu
somehow? I remember it being exploitable to get around stringent GPOs....

~~~
Nextgrid
Not just the calculator but any app that used the Microsoft Help system.

------
dukoid
TLDR: Article describes how link previews are rendered by various social media
/ chat sites and provides useful tips for web developers on how to optimize
the preview experience.

------
talkingtab
Does anyone know of any open source microbrowsers?

------
prputnam
I'm just here to say I read that as microbrewers and I was much more excited
about that article. The brewing boom here in Colorado is outrageous. I would
love to learn about the confluence of technology and brewing, and what if any
tech small breweries are leveraging to give them an edge.

~~~
severine
Here you go:

[https://news.ycombinator.com/item?id=21693944](https://news.ycombinator.com/item?id=21693944)

[https://news.ycombinator.com/item?id=19614957](https://news.ycombinator.com/item?id=19614957)

[https://news.ycombinator.com/item?id=18857255](https://news.ycombinator.com/item?id=18857255)

~~~
prputnam
Thanks for digging up those links, I'll have to read those articles later!

The top comment on that third article about the brewery explosion in Vancouver
could just as easily be about Denver - the story is nearly the same. As I
understand it here in Denver, a change of law make it much easier for
breweries to operate tasting rooms which can be quite profitable and spurred
massive growth.

~~~
severine
Yay! I just used the search box at the bottom, then skimmed through the
results:

[https://hn.algolia.com/?dateRange=pastYear&page=0&prefix=fal...](https://hn.algolia.com/?dateRange=pastYear&page=0&prefix=false&query=microbrew&sort=byPopularity&type=all)

HN is perhaps _the_ website where I find whatever I'm trying to, if it exists.

