CASE STUDY 16 / Personal project · Full-stack AI storytelling

Love Story Theater

I made this for a friend going through a breakup: a conversational app that turned shared memories and relationship details into hopeful fictional stories. I built a Next.js frontend and a separate Kotlin / Ktor backend connected to DeepSeek. The service is now offline and the project is no longer maintained.

Offline · No longer maintained
CONTEXT

Personal project

MY ROLE

Independent full-stack developer

TOOLS & FOCUS

Next.js / React · TypeScript / MUI · Kotlin / Ktor · DeepSeek API · i18n

01 / THE PROBLEM

What needed to work.

The idea began with a friend’s breakup. I wanted to make something personal and comforting: a conversation that gathered details gradually, then used them to write an imaginative, hopeful story. The engineering task was to connect that guided chat experience to an AI service through a separate backend.

CONCEPT / 16
01Guided Next.js conversation
02Kotlin / Ktor JSON API
03DeepSeek-generated story
Illustrative workflow · Not a product screenshot

A summary of my responsibilities and technical approach. This workflow illustration does not reproduce the product UI.

02 / MY CONTRIBUTION

Where I took ownership.

  • Built the Next.js, React and TypeScript chat interface with Material UI, message history, typing feedback and a story-generation loading state.
  • Implemented a separate Kotlin / Ktor backend with JSON endpoints for contextual follow-up questions and final story generation.
  • Connected the backend to DeepSeek and wrote prompts for the conversational tone, supplied context and requested story language.
  • Organized English, Chinese and German interface copy and question pools separately from the chat rendering.

03 / TECHNICAL APPROACH

Decisions in context.

Separate the interface from model calls

The Next.js client handled the conversation and called a configurable backend URL through Axios. The Kotlin / Ktor service accepted JSON requests, built prompts and called DeepSeek. This kept the browser interface and model integration in separate applications.

04 / DELIVERY & REFLECTION

What I can share.

Delivery.

A personal full-stack experiment, originally made for a friend after a breakup. The service has stopped running and the project is no longer maintained. The source repository remains available to show the separate frontend and backend implementation.

Have a similar challenge?

Let’s talk ↗