June 29, 2025
by Carla Hay

Directed by Vishal Furia
Hindi with subtitles
Culture Representation: Taking place primarily in Chandrapur, India, the horror film “Maa” features an all-Asian cast of characters representing the working-class, middle-class and wealthy.
Culture Clash: A mother tries to save her kidnapped 12-year-old daughter in a mysterious village where a demon has been abducting adolescent girls.
Culture Audience: “Maa” will appeal primarily to people who are fans of the movie’s headliners and supernatural horror movies, but is too unfocused and inconsistent in its lore.

Although the horror film “Maa” has some impressively scary action scenes and capable visual effects, the movie’s story becomes a muddled pit of contradictions and plot holes. Some of the acting is cringeworthy. The movie has a positive message about the power of a mother’s love, but that message is undercut by the nonsensical plot.
Directed by Vishal Furia and written by Saiwyn Quadras, “Maa” takes place mostly in Chandrapur, India. The movie’s opening scene takes place 40 years ago in Chandrapur. A woman (played by Aayushi Lahiri) has given birth to twins: a boy and a girl. The boy is named Shuvankar.
The villagers are alarmed about the birth of this girl. A priestess (played by Yaaneea Bharadwaj) takes the baby girl, lays the infant on a slab of rock, and raises and axe to kill the girl. What happened to the girl is revealed later in the story.
Forty years later, Shuvankar Das Gupta (played by Indraneil Sengupta) is now a happily married father of a 12-year-old girl named Shweta (played by Kherin Sharma), who is a curious and obedient child. Shuvankar and his wife Ambika Das Gupta (played by Kajol) devoted parents to Shweta. They live far away from Chandrapur, where Shuvankar has not lived since his childhood.
Ambika is a museum tour guide. During a tour lecture attended by visiting students who are about 10 or 11 years old, she tells the Hindu story about the goddess Maa Parvati, who has warrior-like alter ego named Maa Kali. In this story that Ambika tells, Maa Kali defeats a tree demon named Amsaja. The students applaud after hearing this story.
Shuvankar deliberately avoids going back to visit Chandrapur, even though Shweta constantly asks when they can go to visit Chandrapur. When his widower father dies, Shuvankar reluctantly goes back to Chandrapur for the funeral and refuses Shweta’s pleas to go with him. After the funeral, Shuvankar tells the village chief Joydev (played by Ronit Roy) that Shuvankar wants to sell the family manor, which has been empty and abandoned for years.
When Joydev asks about any children Shuvankar has, Shuvankar lies and says that he has a son. Joydev smirks and says that Shuvankar’s father already told Joydev that Shuvankar ha a daughter. It’s at this point you definitely know that there’s something sinister that’s harming girls in Chandrapur, which is why Shuvankar has been actively preventing Shweta from going there.
While Shuvankar is in Chandrapur, Ambika emails him a strange photo that she found of a giant, ganrly tree in Chandrapur. Not long afterward, Shuvankar is killed by this tree, which comes to life and has branches that act like arms. That’s because the tree is really a demon named Daitya.
The tree murders Shuvankar while he’s driving in his car, which is then set on fire. An investigation into the death concludes that the fire was caused by a cigarette. Ambika and Shweta are devastated by Shuvankar’s death. They will soon find out why Shuvankar avoided going to Chandrapur.
Three months after Shuvankar’s death, Ambika gets a call from Joydev to ask her if she wants to complete the sale of the manor. Ambika agrees to go to Chandrapur to deal with this matter. Ambika brings Shweta with her because Shweta begs to go to Chandrapur, a city she has heard a lot of about but never visited before.
As soon as Ambika and Shweta arrive in Chandrapur, strange things start to happen. Ambika was havng nightmares about Shuvankar, but now has visions of seeing him when she’s awake. This hallucination happens while Ambika is driving on a street and the car almost hits a 12-year-old girl named Deepika (played by Roopkatha Chakraborty), who is luckily unharmed.
Deepika’s father Bikash (played by Gopal Singh) and mother Nandini (played by Surjyasikha Das) are nearby and are relieved to see that Deepika wasn’t hurt in this near-accident. It turns out that Bikash’s father Bimal (played by Dibyendu Bhattacharya) has been the caretaker of the manor for several years. Shweta and Deepika become fast friends.
Bikash gives Ambika a tour of the village and show her a locked temple. Bikash tells Ambika that the temple doors can only be opened when Maa Kali appears in someone’s dreams. The movie might as well have hung a banner in front of the temple that says on the banner: “The Movie’s Big Showdown Battle Will Happen Here.”
Ambika gets some bad news from the real-estate broker Satya Babu (played by Ajitabh Sengupta): The manor is hard to sell because many people in the village think the manor is cursed. Shweta starts seeing pictures of the demon tree on her iPad, even though she didn’t put the pictures there.
And then there’s even more bad news: Deepika gets kidnapped by Daitya. Deepika’s parents blame Ambika for fueling the curse. But then, Joydev admits to Ambika that girls have been disappearing from the village for the past three months. But don’t worry, he tells Ambika, these girls come back after a few days, but are unable to menstruate.
At this point, any protective mother would want to get as far away as possible from this dangerous village. And Ambika does try to leave with Shweta by car, but a small army of 12 demon girls swoop down and swarm over the car, as shown in the “Maa” trailer. And then the inevitable happens: Shweta gets her first menstrual period. You know what that means.
One of the biggest problems with “Maa” is it’s not consistent with what really happens to the girls in this village. One part of the lore says they’re kidnapped and returned unharmed. Another part of the story is that the girls are killed and turned into demons. Adults are targeted too if they try to stop what happens.
When Deepika is kidnapped, a police detective named Shekhar Sarfaraz (played by Jitin Gulati) shows up to investigate, but there’s a huge disconnect in the story that’s never explained: If so many girls have been disappearing over a three-month period, even if they return a few days later, why isn’t there more police attention and more media exposure for these bizarre disappearances? And why isn’t there more outrage from parents and other family members?
“Maa” is a horror movie that is more concerned with staging jump scares and chase scenes than having a plot with basic common sense. There is very little suspense because the “mystery” is so easy to solve. The movie’s reveal of a human villain is also not surprising.
Kajol does an adequate job in her role as Ambika, the movie’s protagonist. However, some of the supporting cast members give substandard performances, which lower the quality of the movie. There’s too much of the film’s plot developments that are unimaginative and full of tiresome stereotypes about a killer demon on the loose. In the end, “Maa” is a horror movie that is more about being hokey than scary.
Panorama Studios released “Maa” in select U.S. cinemas and in India on June 27, 2025.