Understanding the Database

How Pokedex organizes technical knowledge

The Core Concept: "Cards"

In Pokedex, every technology—whether it's a language like Python, a framework like React, or a tool like Docker—is represented as a Card.

A Card is the fundamental unit of our knowledge base. Think of it like a trading card for developers: it contains the essential stats, the "flavor text" (description), and the categorization that makes it unique.

Data vs. Tags

To keep things organized and powerful, we split information into two distinct types: Data and Tags.

Data (JSON)

Data represents the hard technical specifications of a technology. These are structured facts that define how a technology works at a low level.

  • Runtime Type (e.g., Compiled, Interpreted)
  • Concurrency Model (e.g., Single Thread, Async)
  • License (e.g., MIT, Apache-2.0)

Data answers the question: "How does it strictly function?"

Tags (Labels)

Tags are the categorizations and labels that help us group and find similar technologies. They are more about the usage, the domain, and the philosophy.

  • Domain (e.g., `domain:web-frontend`)
  • Paradigm (e.g., `paradigm:declarative`)
  • Ecosystem (e.g., `ecosystem:javascript`)

Tags answer the question: "What is it used for and where does it fit?"

Why separate them?

Separating Data from Tags allows us to build powerful tools like the Oracle. Because Data is strict and structured, we can programmatically check if two technologies are compatible (e.g., "Can I use this synchronous library with this async framework?").

Tags, on the other hand, allow for flexible exploration. You can filter by "all functional languages" or "all tools for data science" without needing to know the low-level details.