Fried Silicon
Local-first devtools & experiments

SODL

A type-safe data modeling language.

Define data structures, relationships, and constraints with precision and clarity.

Why SODL instead of Protobuf or JSON Schema?

A purpose-built language for data modeling with relationship support and strong validation.

Relationship Modeling

KeyMaps provide first-class support for defining relationships between data structures. No manual foreign key management.

Precise Types

Fine-grained numeric types (uint8-uint64, int8-int64) with built-in constraints like range() and pattern matching.

Cross-Platform

Write schemas once, generate type-safe code for multiple languages. Works with any database or storage system.

SODL in action

object UserProfile {
    userId: type = UUID, assigned = counter, required, key;
    email: type = string, 
           pattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$",
           required;
    age: type = uint8, range(13, 120);
    preferences: type = UserPreferences;
}

keymap UserProfile:UserAccount {
    userId -> userId,
    email -> email
}, primary, name = "ProfileToAccount";

When to choose SODL

API Contracts

Define clear data contracts between services with strong type safety and validation rules.

Data Integrity

Systems requiring strict validation rules and complex business constraints around data.

Complex Models

Applications with intricate data relationships that need clear documentation and maintainability.

Enterprise Systems

Projects where data modeling clarity and consistency across teams is critical.