Technology

“We're always exploring and experimenting. We call it Imagineering - the blending of creative and imagination with technical know-how.”

~ Walt Disney

The Friendliest.app was designed from day one to be a web application, not a website. Instead of starting with a bloated content management system, the Friendliest.app is a Ruby on Rails application, focused on delivering the fastest experience possible.

Current technology stack:


Frontend

HTML 5 (language)

Javascript (language)

Highcharts (javascript charts library)

Tailwind CSS (css framework)

LineIcons (web icons)


Backend

Ruby (language)

Rails (app framework)

PostgreSQL (database)

Puma (web app server)

Render (application and database hosting)

Amazon S3 (storage)

Amazon CloudFront (content delivery network)

Postmark (transactional email)

Braintree (payment processing)

updown.io (uptime monitoring)


Blog

Gatsby (framework)

HTML 5 (language)

Javascript (language)

React (javascript library)

GraphQL (query language)

Tailwind CSS (css framework)


Gemfile
ruby '3.0.1'
gem 'rails', '~> 6.1.4'
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
# PostgreSQL database and full text search
gem 'pg', '>= 0.18', '< 2.0'
gem 'pg_search'
# Application server
gem 'puma', '~> 4.1', '< 4.3.4'
# Javascript
gem 'sass-rails', '>= 6'
gem 'webpacker', '~> 4.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'
# Asset storage on Amazon S3
gem 'activestorage'
gem 'aws-sdk-s3'
gem 'rack-cors', require: 'rack/cors'
gem 'image_processing', '~> 1.2'
# Content tagging
gem 'acts-as-taggable-on', '~> 7.0'
# Drag and drop list sorting
gem 'acts-as-list'
# Static pages and pretty URLs
gem 'high_voltage', '~> 3.1'
gem 'friendly_id', '~> 5.4.0'
# Security
gem 'devise'
gem 'devise-pwned_password'
gem 'pundit'
gem 'hcaptcha'
# Transactional email
gem 'postmark-rails'
# Payment processor
gem 'braintree', '~> 2.101.0'
# XML toolkit
gem 'rexml'
# Sitemap generation
gem 'sitemap_generator'
gem 'fog-aws'
# PDF generation
gem 'wkhtmltopdf-binary'
# Branch reverts railties to avoid ActiveSupport.on_load
gem 'wicked_pdf', :git => 'https://github.com/darrenterhune/wicked_pdf'
# Pagination
gem 'kaminari'
# Comment engine
gem 'commontator'
gem 'will_paginate'
# For Highcharts
gem 'chartkick'
gem 'groupdate'
# Traffic analytics
gem 'active_analytics'
# Boot caching
gem 'bootsnap', '>= 1.4.2', require: false
# Development and test environment variables
gem 'dotenv', '~> 2.0'
group :development do
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
group :test do
gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
gem 'webdrivers'
end