Source: https://seerepo.com/r/postalserver/postal/built
Markdown source: https://seerepo.com/r/postalserver/postal/built.md
Description: postal is a Ruby repo built with Rails and rackup. It stores its data in MySQL. It has 26,678 written lines, with 78 test files.

# What is postal built with?

postal is a Ruby repo built with Rails and rackup. It stores its data in MySQL, signs people in with omniauth_openid_connect, omniauth-rails_csrf_protection, jwt, and bcrypt, watches its errors with Sentry, makes its content with mail, deploys with puma, sentry-rails, and logger, and uses mysql2. It has 26,678 written lines, with 78 test files.

Read on November 7, 2026, at commit d96eddb.

Repository: https://github.com/postalserver/postal

## Frontend

### Interface

- **jquery-rails**

## Backend

### The base

- **[Rails](https://seerepo.com/uses/rails)**: 53 files

### Data

- **mysql2**
- **[MySQL](https://seerepo.com/uses/mysql)**: 4 files · [lib/postal/message_db/connection_pool.rb, line 21](https://github.com/postalserver/postal/blob/d96eddbadeda600595d6247486f9ceb8e99cbc15/lib/postal/message_db/connection_pool.rb#L21)

### Sign-in

- **omniauth_openid_connect**
- **omniauth-rails_csrf_protection**
- **jwt**: 2 files
- **[bcrypt](https://seerepo.com/uses/bcrypt)**: 1 file

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 7 files · [app/lib/message_dequeuer/base.rb, line 94](https://github.com/postalserver/postal/blob/d96eddbadeda600595d6247486f9ceb8e99cbc15/app/lib/message_dequeuer/base.rb#L94)

## Support

### The base

- **rackup**: 1 file

### Content

- **mail**: 7 files

### Deploy

- **[puma](https://seerepo.com/uses/puma)**
- **sentry-rails**
- **logger**: 3 files

### Tools

- **uglifier**

### Other

- **abbrev**
- **kaminari**
- **mutex_m**
- **nio4r**
- **ostruct**
- **webrick**
- **dotenv**: 1 file
- **hashie**: 1 file
- **highline**: 1 file

## Other repos with a similar stack

- [huginn/huginn](https://seerepo.com/r/huginn/huginn/built): Rails, mysql2, MySQL, mail, puma, logger · [Compare](https://seerepo.com/compare/huginn/huginn/vs/postalserver/postal)
- [chatwoot/chatwoot](https://seerepo.com/r/chatwoot/chatwoot/built): Rails, Sentry, omniauth-rails_csrf_protection, jwt, puma, sentry-rails · [Compare](https://seerepo.com/compare/chatwoot/chatwoot/vs/postalserver/postal)
- [rails/rails](https://seerepo.com/r/rails/rails/built): Rails, MySQL, bcrypt, puma, logger · [Compare](https://seerepo.com/compare/postalserver/postal/vs/rails/rails)
- [mastodon/mastodon](https://seerepo.com/r/mastodon/mastodon/built): Rails, omniauth-rails_csrf_protection, mail, puma · [Compare](https://seerepo.com/compare/mastodon/mastodon/vs/postalserver/postal)
- [rapid7/metasploit-framework](https://seerepo.com/r/rapid7/metasploit-framework/built): Rails, bcrypt, puma · [Compare](https://seerepo.com/compare/postalserver/postal/vs/rapid7/metasploit-framework)
- [docusealco/docuseal](https://seerepo.com/r/docusealco/docuseal/built): Rails, jwt, puma · [Compare](https://seerepo.com/compare/docusealco/docuseal/vs/postalserver/postal)

## Frequently asked questions

### What language is postal written in?

postal is written in Ruby, with 26,678 written lines.

### What framework does postal use?

postal is built with Rails and rackup.

### What database does postal use?

postal stores its data in MySQL.

The proof: [lib/postal/message_db/connection_pool.rb, line 21](https://github.com/postalserver/postal/blob/d96eddbadeda600595d6247486f9ceb8e99cbc15/lib/postal/message_db/connection_pool.rb#L21)

### What does postal sign people in with?

postal signs people in with omniauth_openid_connect, omniauth-rails_csrf_protection, jwt, and bcrypt.

### What services does postal use?

postal watches its errors with Sentry and uses mysql2.

The proof: [app/lib/message_dequeuer/base.rb, line 94](https://github.com/postalserver/postal/blob/d96eddbadeda600595d6247486f9ceb8e99cbc15/app/lib/message_dequeuer/base.rb#L94)

### Does postal have tests?

Yes. postal has 78 test files.

### Which repos have a stack like postal's?

The ones that share most of its stack: huginn/huginn, chatwoot/chatwoot, and rails/rails.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
