DEV Community

yx j
yx j

Posted on

I built a Multi-Agent Academic Tutor using Next.js 14 & App Router

Hey developers! ๐Ÿ‘‹

I've spent the last few months building Study Tutor, a complex multi-agent system designed to help students with academic tasks.

Itโ€™s live now at Verla.io.

I wanted to share the tech stack and the architecture behind it, as building a real-time agent workflow on the frontend was quite a challenge.

๐Ÿš€ What is Verla.io?

Verla.io is not just a chatbot. It's a workflow-based platform where multiple AI agents collaborate to plan, research, and write academic papers or assignments.

Users can create tasks, upload reference files (PDF/PPT), and watch as different agents break down the requirements and execute them step-by-step.

๐Ÿ› ๏ธ The Tech Stack

I chose a modern stack to handle real-time updates and rich text editing:

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS + Shadcn UI
  • Auth: Clerk (Custom integration with AuthProvider)
  • Editor: TipTap (Custom extensions for academic writing)
  • State: Real-time polling for agent workflows

๐Ÿ’ก Key Technical Challenges

1. Visualizing the Multi-Agent Workflow

The core feature of Verla is the Workflow Page. I needed to show users exactly what each agent is doing in real-time.

  • I implemented a polling mechanism on /task/detail to fetch the status of active agents.
  • The UI renders a dynamic Kanban board and timeline view to track sub-tasks.
  • We handle huge JSON outputs from agents and render them cleanly using a custom Markdown parser.

2. The "Smart" Editor

We didn't want a simple text area. The editor (built on TipTap) needs to:

  • Convert Markdown from agents into editable rich text blocks server-side (/api/markdown-to-tiptap).
  • Support drag-and-drop image uploads directly to our storage.
  • Export to PDF/Word with academic formatting.

3. Handling File Context

Users can upload massive PDFs. We process these files (convert to Base64 -> Upload -> Vectorize) so the agents can "read" the course material before answering.

๐Ÿ”ฎ What's Next?

I'm currently working on optimizing the PDF structured editing feature.

If you are interested in Next.js 14 architectures or AI agents, feel free to check out the project here:

๐Ÿ‘‰ https://verla.io/

Let me know what you think about the UI! I tried to keep it clean despite the complex data working in the background.

Happy coding!

Top comments (0)