DEV Community

Cover image for Forge your experience Without the Chat: Building Proactive D&D Tools with Algolia
austin amento
austin amento

Posted on

Forge your experience Without the Chat: Building Proactive D&D Tools with Algolia

This is a submission for the Algolia Agent Studio Challenge: Consumer-Facing Non-Conversational Experiences


Beyond the Chatbot

Not every intelligent experience needs to be a conversation.

When you're building a PC, you don't want to chat about compatibility—you want the system to just know that your AMD motherboard won't work with an Intel CPU. When you're creating a fashion look, you don't want to ask "does this match?"—you want suggestions that already complement your choices.

The Adventurer's Codex applies this philosophy to Dungeons & Dragons. While the Oracle module offers conversational discovery, three other modules demonstrate how contextual data retrieval can proactively assist users within existing workflows—no dialogue required.


The Three Non-Conversational Experiences

1. The Forge: Guided Character Building with Smart Compatibility

The Problem: Building a D&D character requires making interdependent choices. Your race should complement your class. Your subclass should fit your playstyle. But traditional builders just show you lists—they don't tell you what works well together.

The Solution: The Forge is a step-by-step wizard that uses Algolia's filtering to proactively surface compatible options at each stage.


2. DM Mode: Contextual Encounter Suggestions

The Problem: Dungeon Masters improvise constantly. A player goes off-script, and suddenly you need a monster. You're writing a scene description and realize you need a trap. Stopping to search breaks creative flow.

My Solution: DM Mode watches what you're writing and proactively suggests relevant encounters—no explicit query needed.

How It Works

The DM has a split-pane interface: text editor on the left, contextual suggestions on the right.

Context-Aware Filtering

The key is the filter: type:Enemy OR type:Trap. DM Mode doesn't show classes, races, or spells—only threats. The system understands the context of what a DM needs.

When the DM writes "spider webs," they don't have to search for spider monsters. The suggestions panel automatically shows Giant Spiders, Phase Spiders, Ettercaps, and Web Traps.

The Creative Flow

The DM keeps writing. Suggestions update silently in the periphery. When they need an encounter, the perfect option is already waiting. No explicit search. No breaking concentration. No dialogue.

This is intelligence injected into the creative workflow, not replacing it.


3. Party Builder: Proactive Composition Analysis

The Problem: A D&D party needs balance. Without a healer, everyone dies. Without damage, combat takes forever. Without a tank, the squishy wizard gets targeted. But most groups don't realize they have a problem until they're mid-dungeon.

My Solution: Party Builder proactively analyzes group composition and surfaces warnings before the adventure begins.


Try It Yourself

Experience smart, non-conversational assistance:

Enter The Forge →

Build a character. Run an encounter. Assemble a party. See how contextual intelligence enhances every step—without a single chat bubble.

The Technical Pattern

All three experiences share a common technical approach:

1. Observe User Context

// The Forge: Track selected class
const [selectedClass, setSelectedClass] = useState(null);

// DM Mode: Watch text content
const [sceneText, setSceneText] = useState('');

// Party Builder: Monitor party roster
const [party, setParty] = useState([]);
Enter fullscreen mode Exit fullscreen mode

2. Derive Intent from Context

// The Forge: User selected Wizard → they want Wizard subclasses
const subclassFilter = `type:Subclass AND parentClass:${selectedClass}`;

// DM Mode: User is writing a scene → they might need encounters
const encounterFilter = 'type:Enemy OR type:Trap';

// Party Builder: User has 4 characters → analyze their composition
const roleAnalysis = analyzePartyRoles(party);
Enter fullscreen mode Exit fullscreen mode

3. Proactively Retrieve Relevant Data

// The Forge: Fetch compatible races sorted by stat bonus
<Configure
  filters="type:Race"
  optionalFilters={[`statBonuses:${primaryStat}`]} // Boost matching stats
/>

// DM Mode: Search monsters matching scene keywords
<SearchBox defaultValue={debouncedSceneText} hidden />

// Party Builder: No search needed—analysis is computed from indexed data
const recommendations = getRecommendationsForMissingRoles(roleAnalysis);
Enter fullscreen mode Exit fullscreen mode

Future

I think this could be fun to keep building the codex and the Algolia features, it's been very exciting learning about how the platform works

Top comments (0)