Core Concepts
Understand tables, processes, apps, and metadata
The Metadata Model
qqq uses metadata to define your application structure. Instead of writing boilerplate code, you declare what you want.
Tables
Tables represent your data model. They're defined as Java classes with annotations:
Java
@QTableMetaData(name = "person")
public class PersonTable {
@QField(isPrimaryKey = true)
public Integer id;
@QField(isRequired = true)
public String name;
@QField
public String email;
}Processes
Processes are multi-step workflows:
Java
@QProcessMetaData(name = "greet")
public class GreetProcess {
// Steps, inputs, outputs
}Apps
Apps combine tables and processes into a deployable unit:
Java
@QAppMetaData(name = "myApp")
public class MyApp {
// Tables, processes, widgets
}qBits
qBits are reusable modules that add functionality:
Bash
qctl qbit add auth-cognitoNext Steps
Ready to build? Explore our Guides for step-by-step tutorials.