DEV Community

Cover image for Building Tantrik — A Multi-Agent AI Halloween Chat Using Next.js, Flask & Kiro
Deepak Singh
Deepak Singh

Posted on

Building Tantrik — A Multi-Agent AI Halloween Chat Using Next.js, Flask & Kiro

Talk to Dracula, Grim Reaper & Bloody Mary — each powered by their own AI agent.

Chat

Halloween should be felt, not just seen.

So I built Tantrik — a web experience where you can actually chat with supernatural spirits, each with unique personalities, sounds, animations, and moods.

Live App → https://tantrik-web.vercel.app

Source Code → https://github.com/luexclothings-hue/tantrik


👻 What is Tantrik?

A fully immersive Halloween spirit-chat platform where users talk to:

  • 🧛 Count Dracula – ancient, poetic, blood-obsessed
  • 💀 Grim Reaper – cold, judgmental, metaphor-heavy
  • 👰 Bloody Mary – unpredictable, whispery, mirror-themed

Each spirit has:

  • Its own AI agent
  • Custom system prompt
  • Animated background scene
  • Spirit-specific ambience + horror sounds
  • Themed UI + color psychology

🧱 Architecture Overview

tantrik/
├── tantrik_web/ # Next.js 16 + React + TS frontend
└── tantrik_ai/ # Flask backend with multi-agent AI


🔮 Multi-Agent AI Backend (Flask + OpenAI)

Tantrik doesn’t use one model pretending to be everyone — I built separate AI agents for each spirit.

Base agent

class SpiritAgent:
    def __init__(self, name, system_prompt, primary_api_key, model, temperature):
        self.name = name
        self.system_prompt = system_prompt
        self.model = model
        self.temperature = temperature
Enter fullscreen mode Exit fullscreen mode

Dracula example

class DraculaAgent(SpiritAgent):
    def __init__(self, primary_api_key):
        super().__init__(
            name="Count Dracula",
            system_prompt=DRACULA_SYSTEM_PROMPT,
            primary_api_key=primary_api_key,
            model="gpt-4o-mini",
            temperature=0.9
        )
Enter fullscreen mode Exit fullscreen mode

1.Why separate agents?
2.Faster
3.Cheaper
4.No personality mixing
5.Better consistency

🎨 Immersive Halloween Frontend (Next.js 16)

  • Frontend stack:
  • Next.js App Router
  • React 19 + TypeScript
  • Tailwind CSS
  • Streaming chat UI

Horror animations (blood drips, flickers, cracked mirrors)
Custom sound engine (ambience + effects)
All wrapped in a Halloween color psychology theme:
Mystic Purple (#8B5CF6)
Blood Red (#DC2626)
Pumpkin Orange (#FF6B35)
Shadow Black (#0A0612)

⚙️ How Kiro Helped Me Build Tantrik

Kiro became my AI development partner.

✔️ Hook System

  1. onCheck → Prevent duplicate components, enforce naming rules, block non-Halloween colors
  2. onGenerate → Ensure theme compliance during generation, log all files
  3. onSave → Formatting warnings, missing semicolons, TODO detection

✔️ Steering Docs

  1. I wrote full guides:
  2. Coding style
  3. Dev rules
  4. Agent architecture
  5. Theme system This made Kiro produce consistent, on-brand code automatically.

😂 Fun Bugs

Dracula once said “bro”
Grim Reaper used “lol”
Bloody Mary gave relationship advice
First blood animation looked like ketchup

🚀 What’s Next

  • Seasonal themes (Christmas, New Year spirits)
  • Live voice chat with spirits
  • AR “mirror ghost” mode
  • More AI entities

🧡 Final Thoughts

Tantrik showed me how powerful multi-agent systems + theme design + Kiro automation can be.

If you want to build something atmospheric, weird, creative — this is your sign.

“The spirits always listen…
but they only answer in darkness.” 👻

Top comments (0)