diff --git a/README.md b/README.md
index 5721f1cdb0..165cb6876c 100644
--- a/README.md
+++ b/README.md
@@ -42,15 +42,15 @@ The key features are:
-**SQLModel** is designed to simplify interacting with SQL databases in FastAPI applications, it was created by the same author. 😁
+**SQLModel** is designed to simplify interacting with SQL databases in FastAPI applications. It was created by the same author. 😁
-It combines SQLAlchemy and Pydantic and tries to simplify the code you write as much as possible, allowing you to reduce the **code duplication to a minimum**, but while getting the **best developer experience** possible.
+**SQLModel** is a thin layer on top of **Pydantic** and **SQLAlchemy**, carefully designed to be compatible with both.
-**SQLModel** is, in fact, a thin layer on top of **Pydantic** and **SQLAlchemy**, carefully designed to be compatible with both.
+**SQLModel** helps you simplify your code and reduce **code duplication** with the **best developer experience** possible.
## Requirements
-A recent and currently supported version of Python (right now, Python supports versions 3.6 and above).
+A currently supported version of Python (right now, **SQLModel** supports versions 3.6 and above).
As **SQLModel** is based on **Pydantic** and **SQLAlchemy**, it requires them. They will be automatically installed when you install SQLModel.
@@ -81,7 +81,7 @@ Imagine you have a SQL table called `hero` with:
* `secret_name`
* `age`
-And you want it to have this data:
+columns and the following data:
| id | name | secret_name | age |
-----|------|-------------|------|
@@ -106,13 +106,13 @@ class Hero(SQLModel, table=True):
age: Optional[int] = None
```
-That class `Hero` is a **SQLModel** model, the equivalent of a SQL table in Python code.
+That class `Hero` is a **SQLModel** model, the equivalent of a SQL table in Python code.
-And each of those class attributes is equivalent to each **table column**.
+Each class attribute is equivalent to a **table column**.
### Create Rows
-Then you could **create each row** of the table as an **instance** of the model:
+Next you coan **create each row** of the table as an **instance** of the `Hero` class:
```Python
hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson")
@@ -120,23 +120,23 @@ hero_2 = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
hero_3 = Hero(name="Rusty-Man", secret_name="Tommy Sharp", age=48)
```
-This way, you can use conventional Python code with **classes** and **instances** that represent **tables** and **rows**, and that way communicate with the **SQL database**.
+With this pattern you can use conventional Python code with **classes** and **instances** that represent **tables** and **rows**, and that way communicate with the **SQL database**.
### Editor Support
-Everything is designed for you to get the best developer experience possible, with the best editor support.
+**SQLModel** is designed for the best developer experience possible. Editor support incudes the following:
-Including **autocompletion**:
+**Autocompletion**:
-And **inline errors**:
+**Inline errors**:
### Write to the Database
-You can learn a lot more about **SQLModel** by quickly following the **tutorial**, but if you need a taste right now of how to put all that together and save to the database, you can do this:
+You can learn a lot more about **SQLModel** by following the **tutorial**, but if you want a taste of how to put all that together and save to the database, you can do this:
```Python hl_lines="18 21 23-27"
from typing import Optional
@@ -168,11 +168,11 @@ with Session(engine) as session:
session.commit()
```
-That will save a **SQLite** database with the 3 heroes.
+This code will save a **SQLite** database with the 3 heroes.
### Select from the Database
-Then you could write queries to select from that same database, for example with:
+Then you can write queries to select from that same database. For example:
```Python hl_lines="15-18"
from typing import Optional
@@ -197,17 +197,17 @@ with Session(engine) as session:
### Editor Support Everywhere
-**SQLModel** was carefully designed to give you the best developer experience and editor support, **even after selecting data** from the database:
+**SQLModel** was designed to give you the best developer experience and editor support, **even after selecting data** from the database:
## SQLAlchemy and Pydantic
-That class `Hero` is a **SQLModel** model.
+That class `Hero` is a **SQLModel** model.
-But at the same time, ✨ it is a **SQLAlchemy** model ✨. So, you can combine it and use it with other SQLAlchemy models, or you could easily migrate applications with SQLAlchemy to **SQLModel**.
+At the same time, ✨ the class is a **SQLAlchemy** model ✨. You can use it with other SQLAlchemy models. Alternatively, you could migrate applications that use SQLAlchemy to **SQLModel** quickly.
-And at the same time, ✨ it is also a **Pydantic** model ✨. You can use inheritance with it to define all your **data models** while avoiding code duplication. That makes it very easy to use with **FastAPI**.
+And at the same time, ✨ the class is also a **Pydantic** model ✨. You can use inheritance with it to define all your **data models** while avoiding code duplication. This characteristic makes it easy to use with **FastAPI**.
## License