Skip to content
whichdevtool?
Categories ▾

Frameworks and UI

Frontend and full-stack frameworks Backend frameworks UI component libraries

Hosting

VPS and cloud servers App hosting and PaaS

Data

Managed databases File and object storage ORMs and database toolkits

AI

AI model APIs

Email

Transactional email APIs Email marketing and newsletters

Payments

Payments and billing

Domains and edge

Domain registrars CDN, DNS and edge security

Operations and identity

Monitoring, uptime and error tracking Auth and identity Background jobs, queues and workflows
Stacks Directory
Ctrl K

Search directory
Menu
StacksDirectory Pricing changes Glossary
VPS and cloud servers App hosting and PaaS Managed databases Transactional email APIs Email marketing and newsletters Domain registrars CDN, DNS and edge security Monitoring, uptime and error tracking Auth and identity Frontend and full-stack frameworks Backend frameworks UI component libraries AI model APIs File and object storage Payments and billing Background jobs, queues and workflows ORMs and database toolkits
  1. Home
  2. ORMs and database toolkits
  3. Ent
En

Code-generated Go entity framework · by Atlas team

Ent

Go entity framework that generates a fully typed query API from schemas written as Go code, with graph-style traversal of relations and Atlas-powered versioned migrations.

Visit entgo.io ↗ Alternatives Open source Open source Self-hostable
entgo.io
Ent homepage
§1

Overview

Ent was inspired by an internal entity framework at Meta and created in 2019 by engineers on Facebook's Connectivity team; it is now developed and maintained by the Atlas team. You define each entity in a Go schema package with fields, edges (relations), indexes and hooks, then run go generate to produce a typed client, so queries like client.User.Query().Where(user.Name("a8m")).QueryCars().All(ctx) are checked by the compiler.

Edges make it natural to traverse graphs of related data, and the generated code can be customised with Go templates. Privacy policies and hooks let you enforce rules at the data layer.

For migrations Ent can auto-migrate in development, and for production its docs recommend versioned migrations generated with Atlas: atlas migrate diff compares the Ent schema with the migration directory and writes SQL files that Atlas, golang-migrate, Flyway or Liquibase can apply.

The trade-off is the build step: every schema change means running code generation and committing the generated package. In return, Ent's generated client removes whole classes of runtime errors that string-based Go ORMs allow, and its schema package documents the data model in one place.

§2

Pricing and plans

Plan Price What you get
Ent $0 Apache 2.0 licence

Ent is free and open source under Apache 2.0. Atlas, the migration engine it uses, is developed by the same company and has its own commercial offering, which is not covered here.

Source: github.com/ent/ent · prices as published, excluding tax.

§3

What it does

Schema as code
Entities, fields, edges and indexes defined in Go; code generation produces the client.
Typed query API
100% statically typed predicates, ordering and eager loading; no interface{} or string column names.
Graph traversal
Follow edges across entities in one fluent query, such as users to groups to admins.
Atlas migrations
Generate versioned SQL migration files from schema changes with atlas migrate diff.
Extendable generation
Customise or extend the generated code with Go templates.
Hooks and privacy
Mutation hooks and privacy rules applied to every query and mutation.
§4

Strengths and limitations

Strengths

  • Compile-time safety for queries through generated code
  • Handles large, relation-heavy data models well
  • Developed and sponsored by the Atlas team
  • Solid migration story through Atlas

Limitations

  • Code generation step after every schema change, and a large amount of generated code in the repository
  • Not yet at v1; the project publishes a roadmap to v1
  • Schema must be defined in Ent's Go DSL rather than plain SQL
  • Complex SQL (window functions, CTEs) needs modifiers or raw SQL
§5

Who it suits

Good for

  • Go backends with many entities and relations
  • Graph-shaped data such as social or permission graphs
  • Teams that want typed queries without writing SQL

Look elsewhere if

  • Teams that prefer writing SQL (sqlc or Bun)
  • Small services where code generation is more overhead than it saves
§6

Alternatives to Ent

Tool From Free option Stages
SQLAlchemy Python SQL toolkit and ORM
— Open source
OO
jOOQ Type-safe SQL builder for the JVM
€12/mo Free tier
EO
Eloquent ORM Active Record ORM for Laravel
— Open source
TypeORM Decorator-based TypeScript ORM
— Open source
DO
Doctrine ORM Data mapper ORM for PHP
— Open source
AR
Active Record (Rails) Active Record ORM for Ruby on Rails
— Open source

All ORMs and database toolkits →

§7

Questions

Who maintains Ent?

Ent started at Facebook and is now developed and maintained by the Atlas team.

How does Ent handle migrations?

It can auto-migrate, and its docs recommend versioned migrations generated with Atlas for production.

Ent vs GORM: what is the difference?

Ent generates a statically typed client from Go schema definitions; GORM works at run time with reflection and struct tags.

Sources read for this page

  • https://entgo.io/
  • https://github.com/ent/ent
  • https://entgo.io/docs/versioned-migrations/
Spec sheet
From
Open source
Free tier
Free to self-host
Stages
HobbyIndieStartupScale-upEnterprise Suits indie, startup, scale-up, enterprise
Language
Go
Approach
Full ORM with code generation (schema as code)
Databases
MySQL, MariaDB, TiDB, Postgres, CockroachDB, SQLite
Migrations
Auto migration, or versioned files generated with Atlas
Open source
Yes
Self-host
Yes
EU data
Not stated
Category
ORMs
Visit entgo.io ↗

To report an out-of-date price or limit, use the correction form.

whichdevtool?

Developer and cloud tools compared on price, free tier and limits, each with its source. For side projects, solo developers and small teams.

Categories

  • VPS and cloud servers
  • App hosting and PaaS
  • Managed databases
  • Transactional email APIs
  • Email marketing and newsletters
  • Domain registrars
  • CDN, DNS and edge security
  • Monitoring, uptime and error tracking
  • Auth and identity
  • Frontend and full-stack frameworks
  • Backend frameworks
  • UI component libraries
  • AI model APIs
  • File and object storage
  • Payments and billing
  • Background jobs, queues and workflows
  • ORMs and database toolkits

Research

  • Directory
  • Stacks by project
  • Developer news
  • Pricing changes
  • Glossary

Site

  • About and methods
  • How we make money
  • Suggest a tool or fix
  • Privacy
© 2026 whichdevtool.com Prices change. Each tool page links to its source. We may earn a commission when you sign up through links on this site. How we make money