Source: https://seerepo.com/r/we-promise/sure/built
Markdown source: https://seerepo.com/r/we-promise/sure/built.md
Description: sure is a Ruby repo built with Flutter, Rails, propshaft, stimulus-rails, Turbo, and 3 more. It stores its data in Postgres and SQLite.

# What is sure built with?

sure is a Ruby repo built with Flutter, Rails, propshaft, stimulus-rails, Turbo, and 3 more. It stores its data in Postgres and SQLite, reaches it with activerecord-import, signs people in with omniauth_openid_connect, omniauth-github, omniauth-google-oauth2, omniauth-saml, doorkeeper, and 9 more, takes payments with Stripe, uses AI through ruby-openai, OpenAI, and Anthropic, watches its errors with Sentry, connects to GitHub, makes its content with image_processing, pdf-reader, csv, flutter_svg, redcarpet, and 2 more, is tested with puma, deploys with logtail-rails, sentry-rails, sentry-sidekiq, opentelemetry-exporter-otlp, and opentelemetry-sdk, and uses aws-sdk-s3, connection_pool, pg, Sidekiq, sqflite, and 3 more. It has 620,572 written lines, with 1,333 test files.

Read on November 11, 2026, at commit 426fefe.

Repository: https://github.com/we-promise/sure

## Frontend (/)

### The base

- **[Flutter](https://seerepo.com/uses/flutter)**: 68 files

### Styles

- **tailwindcss-rails**

### Interface

- **inline_svg**

### Icons

- **[cupertino_icons](https://seerepo.com/uses/cupertino-icons)**

## Backend (/)

### The base

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

### Data

- **[aws-sdk-s3](https://seerepo.com/uses/aws-sdk-s3)**
- **connection_pool**
- **[pg](https://seerepo.com/uses/pg)**
- **Sidekiq**
- **sqflite**
- **[Redis](https://seerepo.com/uses/redis)**: 13 files · [app/models/usage.rb, line 52](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/usage.rb#L52)
- **[Postgres](https://seerepo.com/uses/postgres)**: 4 files · [app/models/rule.rb, line 1](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/rule.rb#L1)
- **[shared_preferences](https://seerepo.com/uses/shared-preferences)**: 4 files
- **[flutter_secure_storage](https://seerepo.com/uses/flutter-secure-storage)**: 2 files
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [mobile/lib/services/database_helper.dart, line 4](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/mobile/lib/services/database_helper.dart#L4)

### Data access

- **activerecord-import**

### Sign-in

- **omniauth_openid_connect**
- **omniauth-github**
- **omniauth-google-oauth2**
- **omniauth-saml**
- **doorkeeper**: 11 files
- **webauthn**: 5 files
- **[bcrypt](https://seerepo.com/uses/bcrypt)**: 2 files
- **jwt**: 2 files
- **omniauth**: 2 files
- **local_auth**: 1 file
- **omniauth-rails_csrf_protection**: 1 file
- **pundit**: 1 file
- **rotp**: 1 file

### AI

- **ruby-openai**

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 52 files · [config/initializers/sentry.rb, line 2](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/config/initializers/sentry.rb#L2)
- **[OpenAI](https://seerepo.com/uses/openai)**: 3 files · [app/models/provider/openai.rb, line 116](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/provider/openai.rb#L116)
- **[Stripe](https://seerepo.com/uses/stripe)**: 3 files · [app/models/provider/stripe.rb, line 5](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/provider/stripe.rb#L5)
- **[Anthropic](https://seerepo.com/uses/anthropic)**: 2 files · [app/models/provider/anthropic.rb, line 64](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/provider/anthropic.rb#L64)
- **[GitHub](https://seerepo.com/uses/github)**: 1 file · [app/models/provider/github.rb, line 8](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/provider/github.rb#L8)

## Support (/)

### The base

- **propshaft**
- **stimulus-rails**
- **Turbo**

### Content

- **image_processing**
- **pdf-reader**
- **[csv](https://seerepo.com/uses/csv)**: 19 files
- **[flutter_svg](https://seerepo.com/uses/flutter-svg)**: 4 files
- **redcarpet**: 2 files
- **flutter_markdown**: 1 file
- **rqrcode**: 1 file

### Testing

- **[puma](https://seerepo.com/uses/puma)**: 1 file

### Deploy

- **logtail-rails**
- **sentry-rails**
- **sentry-sidekiq**
- **opentelemetry-exporter-otlp**: 1 file
- **[opentelemetry-sdk](https://seerepo.com/uses/opentelemetry-sdk)**: 1 file

### Tools

- **importmap-rails**
- **vernier**
- **bootsnap**: 1 file

### Other

- **countries**
- **dotenv-rails**
- **faraday-multipart**
- **faraday-retry**
- **jbuilder**
- **octokit**
- **rack-attack**
- **rack-cors**
- **rails-i18n**
- **rubyzip**
- **sidekiq-cron**
- **sidekiq-unique-jobs**
- **tzinfo-data**
- **ostruct**: 44 files
- **httparty**: 31 files
- **pagy**: 31 files
- **faraday**: 30 files
- **provider**: 22 files
- **intl**: 13 files
- **http**: 12 files
- **url_launcher**: 3 files
- **connectivity_plus**: 2 files
- **package_info_plus**: 2 files
- **upgrader**: 2 files
- **apnotic**: 1 file
- **app_links**: 1 file
- **flutter_localizations**: 1 file
- **path**: 1 file
- **uuid**: 1 file
- **websocket-driver**: 1 file

## Frontend (desktop)

### The base

- **[Tauri](https://seerepo.com/uses/tauri)**: 7 files

### Interface

- **[tauri-plugin-notification](https://seerepo.com/uses/tauri-plugin-notification)**: 3 files
- **objc2-web-kit**: 1 file

## Backend (desktop)

### Sign-in

- **[keyring](https://seerepo.com/uses/keyring)**: 1 file

## Support (desktop)

### The base

- **[@tauri-apps/api](https://seerepo.com/uses/tauri-apps-api)**: 2 files
- **[objc2-foundation](https://seerepo.com/uses/objc2-foundation)**: 1 file

### Other

- **serde**: 5 files
- **serde_json**: 5 files
- **url**: 3 files
- **open**: 2 files
- **tauri-plugin-autostart**: 2 files
- **base64**: 1 file
- **block2**: 1 file
- **getrandom**: 1 file
- **objc2**: 1 file
- **sha2**: 1 file
- **tauri-plugin-deep-link**: 1 file
- **ureq**: 1 file

## Other repos with a similar stack

- [mastodon/mastodon](https://seerepo.com/r/mastodon/mastodon/built): Rails, aws-sdk-s3, connection_pool, pg, Sidekiq, Redis, Postgres, GitHub, propshaft, inline_svg, omniauth_openid_connect, omniauth-saml, doorkeeper, webauthn, omniauth, omniauth-rails_csrf_protection, pundit, csv, redcarpet, rqrcode, opentelemetry-exporter-otlp, opentelemetry-sdk · [Compare](https://seerepo.com/compare/mastodon/mastodon/vs/we-promise/sure)
- [rails/rails](https://seerepo.com/r/rails/rails/built): Rails, aws-sdk-s3, connection_pool, pg, Redis, Postgres, SQLite, propshaft, stimulus-rails, Turbo, tailwindcss-rails, bcrypt, image_processing, redcarpet · [Compare](https://seerepo.com/compare/rails/rails/vs/we-promise/sure)
- [immich-app/immich](https://seerepo.com/r/immich-app/immich/built): Flutter, Redis, Postgres, flutter_secure_storage, SQLite, bcrypt, local_auth, flutter_svg · [Compare](https://seerepo.com/compare/immich-app/immich/vs/we-promise/sure)
- [janhq/jan](https://seerepo.com/r/janhq/jan/built): SQLite, OpenAI, Tauri, @tauri-apps/api, objc2-foundation, csv, objc2-web-kit, keyring · [Compare](https://seerepo.com/compare/janhq/jan/vs/we-promise/sure)
- [tinyhumansai/openhuman](https://seerepo.com/r/tinyhumansai/openhuman/built): SQLite, Sentry, Tauri, @tauri-apps/api, objc2-foundation, tauri-plugin-notification, objc2-web-kit, keyring · [Compare](https://seerepo.com/compare/tinyhumansai/openhuman/vs/we-promise/sure)
- [Stirling-Tools/Stirling-PDF](https://seerepo.com/r/Stirling-Tools/Stirling-PDF/built): Postgres, Stripe, Tauri, @tauri-apps/api, objc2-foundation, tauri-plugin-notification, keyring · [Compare](https://seerepo.com/compare/Stirling-Tools/Stirling-PDF/vs/we-promise/sure)

## Frequently asked questions

### What language is sure written in?

sure is written in Ruby, with 620,572 written lines.

### What framework does sure use?

sure is built with Flutter, Rails, propshaft, stimulus-rails, Turbo, Tauri, @tauri-apps/api, and objc2-foundation.

### What database does sure use?

sure stores its data in Postgres and SQLite and reaches it with activerecord-import.

The proof: [app/models/rule.rb, line 1](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/rule.rb#L1)

### What does sure sign people in with?

sure signs people in with omniauth_openid_connect, omniauth-github, omniauth-google-oauth2, omniauth-saml, doorkeeper, webauthn, bcrypt, jwt, omniauth, local_auth, omniauth-rails_csrf_protection, pundit, rotp, and keyring.

### What does sure take payments with?

sure takes payments with Stripe.

The proof: [app/models/provider/stripe.rb, line 5](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/app/models/provider/stripe.rb#L5)

### Does sure use AI?

Yes. sure uses AI through ruby-openai, OpenAI, and Anthropic.

### What services does sure use?

sure watches its errors with Sentry, connects to GitHub, and uses aws-sdk-s3, connection_pool, pg, Sidekiq, sqflite, Redis, shared_preferences, and flutter_secure_storage.

The proof: [config/initializers/sentry.rb, line 2](https://github.com/we-promise/sure/blob/426fefe9dc55fd7716a5310c2e26920c5839d922/config/initializers/sentry.rb#L2)

### Does sure have tests?

Yes. sure has 1,333 test files and is tested with puma.

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

The ones that share most of its stack: mastodon/mastodon, rails/rails, and immich-app/immich.

## 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.
