# What was the motivation behind creating HTTL?

Well, that’s actually a good question: why create a new language for something relatively simple, especially when so many good tools already exist? As usual, each tool has its own benefits and drawbacks, and after a long search for the one that best fit my needs, I decided to create my own.

## Here are the main challenges that this new language aims to address:

- **Simplicity**: Each clause, operator, and language construct should be as streamlined as possible, allowing you to write less code.

> For example, you don’t need to write something like `get {{baseUrl}}/api/user`. Instead, you can define the base url at the top of your file and simply use `get /user`.

- **Flexibility**: There should be no limit to the number of requests that can be run at once.

> For example, you can run multiple requests within a single file and use the results of one request in another, potentially applying data transformations in between, etc.

- **Modularity**: It’s hard to imagine any modern language without the ability to separate code into different files, right?

> For example, it’s convenient to define the authentication logic in one file and then import it for use in other files.

- **OpenAPI Integration**: This is my favorite one - there should be an easy way to point to an OpenAPI specification and benefit from built-in type checking and IntelliSense.

- **Testability**: The language should support an easy way to test the output, without requiring any JavaScript inlining or other complex steps.

- **Extensibility**: The language should be easy to extend, allowing you to write your own plugins.

* * *

All of this led me to the idea of creating this language because I believe there’s no better tool than code that runs other code.

> I’ve stopped using Postman since the beginning of 2025. :)

Last updated on April 2, 2025
