“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)
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
|