STXT is a Human-First language, designed for documents and structured data.

STXT is a format with the following characteristics:

- Indentation is the structure: no braces or closing tags

- Free text is literal: no escape characters

- Schemas with @stxt.template or @stxt.schema: validation and structure written in STXT

- Safety: safety is not an add-on, it is part of the design of the language

An STXT document combines readability and semantics, which makes it suitable in many fields, for example:

- Wikis and corporate documents

- Content management systems (CMS)

- Generation via LLMs

- Configuration files

- Streaming logs

# A simple document, with no validation and no namespace

Email:

From: John Smith

To: Mery Adams

Cc: Keyla Brown

Title: Project report

# The body is a literal text block

Body Content >>

Hello Mery!

The book is finished!STXT allows the use of namespaces to group documents. Schemas or templates can also be defined to validate the content of a document.

# An `Email` document from the `com.example.docs` namespace:

Email (com.example.docs):

From: John Smith <[email protected]>

To: Mery Adams <[email protected]>

Cc: Keyla Brown <[email protected]>

Title: Project report

Body Content >>

Hello Mery!!

The book is finished!!And the template that validates that namespace:

Template (@stxt.template): com.example.docs

Structure >>

Email (com.example.docs):

From: EMAIL

To: EMAIL

Cc: EMAIL

Bcc: EMAIL

Title: (?)

Body Content: (1) TEXT

Metadata (org.example.meta): (?)STXT may look like YAML at first sight, but its design is actually closer to XML: sets of nested, ordered text nodes, with namespaces and schemas. Closing tags, attributes, references and entities are removed.

Like YAML, indentation is the structure, but it limits the number of text constructs

to two: inline nodes : and text block nodes >>; both without escape characters.

Like NestedText, everything is text. But since it has namespaces, schemas can be defined, which allows validation and semantics without resorting to other languages.

Since the order of the nodes is preserved, no additional notation is needed for lists, because everything is a list.

- Try STXT in the playground

- Read the tutorial

- Read the FAQ

- Install the tools you need: stxton the command line, the VS Code extension or a library (Java, TypeScript, Python).