Bittersweet Fantasy: Our Review of ‘Shadow and Bone’ on Netflix

Posted in Netflix, TV, What's Streaming? by - April 23, 2021
Bittersweet Fantasy: Our Review of ‘Shadow and Bone’ on Netflix

Shadow and Bone‘s crew might have been shooting in Budapest but it turns that city into different parts of Ravka. It’s a fantasy version of 1800’s Russia where normal people and people with magical powers live together. One of those normal people is Alina Starkov (Jessie Mei Li), an orphan turned cartographer for Ravka’s First Army of non-magical otkazat’sya. She sneaks into a skiff that travels to the dark Unsea where the monsters roam.

Sometimes, these crossings go without incident, but Alina’s maiden voyage doesn’t. That crossing also reveals her power as a Sun Summoner, her body turning into a beacon of light that wards the monsters off. The powerful young woman becomes a hot topic through Ravka and its surrounding countries. One of those countries is Kerch, where shady businessmen hire tavern runners or Crows. Those Crows, Kaz (Freddy Carter) Inej (Amita Suman), and Jesper (Kit Young) have to find her and hand her over to the highest bidder.

The Crows’ steampunk aesthetic make for a beautiful contrast against the Ravkans’ opulence. Anyway, part of the Crows’ plan was to use one of those people with magical powers, or Grisha, to infiltrate the Little Palace where Alina is training. That Grisha is Nina Zelik (Danielle Galligan). But a glitch on the Crows’ plan are the northern Fjerdans – fantasy Scandinavians – who think all Grisha are witches and want to kidnap Alina too. Instead, they kidnap Nina to face some sham trial. But on the way, one of the Fjerdans, Matthias Helvar (Calahan Skogman) take mercy on her.


Shadow and Bone‘s premise might turn off some cynical viewers. Part of that might be because of the volcra, which are basically flying monsters. And any mention of flying monsters might make some associate this series with another show. One about flying monsters that ended up disappointing people. However, this series, so far, isn’t that, even though it has the same world building the most fantasy series have. Maybe it’s because it builds a world that I, a Russophile, like, and its version of fantasy Russia is neither blindly utopic nor unnecessarily nihilistic. It’s a world of temporary army tents and taverns and coaches where Alina travels with General Kirigan (Ben Barnes). At first, she sees him as a man she thought wouldn’t look at her twice. But their differences makes her stand up for herself. In essence, it combines the earthiness and opulent magic of fantasy Russia.

What also makes the series good are its characters, especially with Alina leading that pack. She might be living in a world of magic and flying monsters, but she’s also relatable. She’s a young woman of colour and everyone tells her that she will never amount to anything until she does. She’s a perfect character to come out at any time but especially now. And yes, this is YA so it seems like she might end up with Kirigan. Or she can instead choose fellow orphan turned First Army Tracker Malyen Oretsev (Archie Renaux). But the series is less about the romance and more about these characters abilities. The same goes for the tavern runners who want to find Alina, who have their own moral complexities and pathos. This series presents good and evil with an interesting twist.

Stream Shadow and Bone on Netflix.

  • Release Date: 4/23/2021
This post was written by
While Paolo Kagaoan is not taking long walks in shrubbed areas, he occasionally watches movies and write about them. His credentials are as follows: he has a double major in English and Art History. This means that, for example, he will gush at the art direction in the Amityville house and will want to live there, which is a terrible idea because that house has ghosts. Follow him @paolokagaoan on Instagram but not while you're working.
Comments are closed.
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//','ga'); ga('create', 'UA-61364310-1', 'auto'); ga('send', 'pageview');