Cach Installation Guide Product Documentation: Fill & Download for Free

GET FORM

Download the form

How to Edit and fill out Cach Installation Guide Product Documentation Online

Read the following instructions to use CocoDoc to start editing and drawing up your Cach Installation Guide Product Documentation:

  • At first, direct to the “Get Form” button and press it.
  • Wait until Cach Installation Guide Product Documentation is loaded.
  • Customize your document by using the toolbar on the top.
  • Download your completed form and share it as you needed.
Get Form

Download the form

An Easy-to-Use Editing Tool for Modifying Cach Installation Guide Product Documentation on Your Way

Open Your Cach Installation Guide Product Documentation Right Away

Get Form

Download the form

How to Edit Your PDF Cach Installation Guide Product Documentation Online

Editing your form online is quite effortless. It is not necessary to download any software via your computer or phone to use this feature. CocoDoc offers an easy tool to edit your document directly through any web browser you use. The entire interface is well-organized.

Follow the step-by-step guide below to eidt your PDF files online:

  • Search CocoDoc official website on your computer where you have your file.
  • Seek the ‘Edit PDF Online’ option and press it.
  • Then you will browse this online tool page. Just drag and drop the PDF, or choose the file through the ‘Choose File’ option.
  • Once the document is uploaded, you can edit it using the toolbar as you needed.
  • When the modification is finished, press the ‘Download’ option to save the file.

How to Edit Cach Installation Guide Product Documentation on Windows

Windows is the most widely-used operating system. However, Windows does not contain any default application that can directly edit file. In this case, you can download CocoDoc's desktop software for Windows, which can help you to work on documents effectively.

All you have to do is follow the instructions below:

  • Download CocoDoc software from your Windows Store.
  • Open the software and then select your PDF document.
  • You can also upload the PDF file from URL.
  • After that, edit the document as you needed by using the different tools on the top.
  • Once done, you can now save the completed file to your computer. You can also check more details about how to edit on PDF.

How to Edit Cach Installation Guide Product Documentation on Mac

macOS comes with a default feature - Preview, to open PDF files. Although Mac users can view PDF files and even mark text on it, it does not support editing. Using CocoDoc, you can edit your document on Mac quickly.

Follow the effortless instructions below to start editing:

  • To begin with, install CocoDoc desktop app on your Mac computer.
  • Then, select your PDF file through the app.
  • You can select the file from any cloud storage, such as Dropbox, Google Drive, or OneDrive.
  • Edit, fill and sign your file by utilizing this tool developed by CocoDoc.
  • Lastly, download the file to save it on your device.

How to Edit PDF Cach Installation Guide Product Documentation through G Suite

G Suite is a widely-used Google's suite of intelligent apps, which is designed to make your work more efficiently and increase collaboration with each other. Integrating CocoDoc's PDF document editor with G Suite can help to accomplish work easily.

Here are the instructions to do it:

  • Open Google WorkPlace Marketplace on your laptop.
  • Search for CocoDoc PDF Editor and download the add-on.
  • Select the file that you want to edit and find CocoDoc PDF Editor by selecting "Open with" in Drive.
  • Edit and sign your file using the toolbar.
  • Save the completed PDF file on your laptop.

PDF Editor FAQ

What are the gems every Ruby on Rails developer should know?

I asked something among the lines of this question and I'm going to leave the best of what I got here:What are the most useful gems to use in Rails?Check out the Ruby Toolbox for better feedback:The Ruby Toolbox. But here is a rough list that is collected from Marc Anguera's Github repo and most of the ones I recall to be recommended.Also, to learn more about the following gem, I've made a list of Ruby podcasts that actually talk about some of the following gems in depth:Yad's answer to Are there good alternatives to Ryan Bates' RailsCasts?AbstractionActiveInteraction - Manage application specific business logic.Cells - View Components for RailsInteractor - Interactor provides a common interface for performing complex interactions in a single requestLight Service - Series of Actions with an emphasis on simplicity.Mutations - Compose your business logic into commands that sanitize and validate inputReform - Form objects decoupled from models.Admin Interfaceupmin/upmin-admin-ruby Upmin Admin is a framework for creating powerful Ruby on Rails admin backends with minimal effort.ActiveAdmin - a Ruby on Rails framework for creating elegant backends for website administrationRailsAdmin - A Rails engine that provides an easy-to-use interface for managing your dataAnalyticGabba - Simple way to send server-side notifications to Google Analyticsactivenetwork/gattica Gattica is a Ruby library for talking to the Google Analytics API.Ahoy - A solid foundation to track visits and events in Ruby, JavaScript, and native appsLegato - Model analytics reports and queries against the official Google Analytics Reporting APIAPI BuilderActiveModel::Serializers - JSON serialization of objectsCrêpe - The thin API stackGrape - An opinionated micro-framework for creating REST-like APIs in Rubyjbuilder - Create JSON structures via a Builder-style DSLJSONAPI::Resources - JSONAPI::Resources, or "JR", provides a framework for developing a server that complies with the JSON API specification.Jsonite - A tiny, HAL-compliant JSON presenter for your APIsPliny - Opinionated template Sinatra app for writing excellent APIs in Rubyrabl - General ruby templating with json, bson, xml, plist and msgpack supportRails::API - Rails for API only applicationsRoar - Resource-Oriented Architectures in RubyAssetsLess Rails - The dynamic stylesheet language for the Rails asset pipeline.Less - Leaner CSS, in your browser or Ruby.Sass - Sass makes CSS fun againManagement:Rails Assets - Bundler to Bower proxySprockets - Rack-based asset packaging systemAuthentication and OAuthAuthlogicClearance - Small and simple email & password based authenticaton for RailsDevise - A flexible authentication solution for Rails based on WardenOmniAuth - A library that standardizes multi-provider authentication utilizing Rack middlewareSorcery - Magical Authentication for Rails 3 and 4OAuth:Doorkeeper - An OAuth2 provider for RailsOAuth2 - A Ruby wrapper for the OAuth 2.0 protocolAuthorizationAuthority ORM-neutral way to authorize actions in your Rails app.CanCanCanPundit - Minimal authorization through OO design and pure Ruby classesCachingAction caching for Action Pack - Action caching for Action PackDalli - A high performance pure Ruby client for accessing memcached serversRecord Cache - Cache Active Model Records in Rails 3CLI BuilderCommander - The complete solution for Ruby command-line executablesGLI - Git-Like Interface Command Line ParserMain - A class factory and DSL for generating command line programs real quickRake - A make-like build utility for RubySlop - Simple Lightweight Option ParsingThor - A toolkit for building powerful command-line interfacesCMSAlchemy CMS - A powerful, userfriendly and flexible Open Source Rails CMSLocomotiveCMS - A simple but powerful CMS based on Liquid templates and Mongodb databasePublify - A self hosted Web publishing platform on RailsRadiant - A no-fluff, open source content management system designed for small teamsRefinery CMS - An open source Ruby on Rails content management system for Rails 3 and 4Code Analysis and MetricsBrakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.Flay - Flay analyzes code for structural similarities. Differences in literal values, variable, class, method names, whitespace, programming style, braces vs do/end, etc are all ignored. Making this totally rad.Flog - Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.fukuzatsu - Complexity analysis tool with a rich web front-end.MetricFu - A fist full of code metricsrails_best_practices - A code metric tool for rails projectsReek - Code smell detector for RubyRubocop - A static code analyzer, based on the community Ruby style guide.Rubycritic - A Ruby code quality reporter.SimpleCov - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.Coding Style GuidesRails style guide - Community-driven Rails best practices and style for Rails 3 and 4RSpec style guide - Better Specs { rspec guidelines with ruby }Ruby style guide - Community-driven Ruby coding styleConcurrencyCelluloid - Actor-based concurrent object framework for RubyConcurrent Ruby - Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.EventMachine - An event-driven I/O and lightweight concurrency library for RubyConfigurationConfigatron - Simple and feature rich configuration system for Ruby appsConfigus - Helps you easily manage environment specific settingsdotenv - Loads environment variables from .envEconfig - Flexible configuration for Rails applicationsFigaro - Simple, Heroku-friendly Rails app configuration using ENV and a single YAML fileGlobal - Provides accessor methods for your configuration dataRailsConfig - Multi-environment yaml settings for Rails3Core ExtensionsActiveSupport - A collection of utility classes and standard library extensions.Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby.AttributesActiveAttr - What ActiveModel left outFastAttributes - FastAttributes adds attributes with their types to the classVirtus - Attributes on Steroids for Plain Old Ruby ObjectsHashHashie - A collection of tools that extend Hashes and make them more usefulCountry DataCarmen - A repository of geographic regionsCountries - All sorts of useful information about every country packaged as pretty little country objectsi18n_data - country/language names and 2-letter-code pairs, in 85 languages, for country/language i18nnormalize_country - Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBsDashboardsDashing-Rails - The exceptionally handsome dashboard framework for Rails.Data VisualizationRailRoady - Ruby on Rails 3/4 model and controller UML class diagram generator.Rails Erd - Generate Entity-Relationship Diagrams for Rails applications.Ruby/GraphViz - Ruby interface to the GraphViz graphing toolDatabase DriversCassandra Driver - A pure ruby driver for Apache Cassandra with asynchronous io and configurable load balancing, reconnection and retry policiesDataObjects - An attempt to rewrite existing Ruby database drivers to conform to one, standard interface.mongo-ruby-driver - MongoDB Ruby drivermoped - A MongoDB driver for Rubymysql2 - A modern, simple and very fast Mysql library for Ruby (binding to libmysql)Redic - Lightweight Redis Clientredis-rb - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interfaceruby-pg - Ruby interface to PostgreSQL 8.3 and laterSQLite3Database ToolsDatabase Cleaner - Database Cleaner is a set of strategies for cleaning your database in Ruby.PgHero - Postgres insights made easySeed dump - Rails 4 task to dump (parts) of your database to db/seeds.rb.Seed Fu - Advanced seed data handling for Rails.Date and Time Processingbusiness_time - Support for doing time math in business hours and daysChronic - A natural language date/time parser written in pure Rubygroupdate - The simplest way to group temporal data in ActiveRecord, arrays and hashestime-lord - Adds extra functionality to the time classtime_diff - Calculates the difference between two timevalidates_timeliness - Date and time validation plugin for ActiveModel and Railsyymmdd - Tiny DSL for idiomatic date parsing and formattingDebugging ToolsByebug - A simple to use, feature rich debugger for Ruby 2.debugger - A port of ruby-debug that works on 1.9.2 and 1.9.3.DecoratorsDraper - Draper adds an object-oriented layer of presentation logic to your Rails applicationDevOps ToolsBackup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systemsCapistrano - A remote server automation and deployment tool written in RubyChef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructureLogstash - Logs/event transport, processing, management, searchMina - Really fast deployer and server automation tool.Puppet - An automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks (such as adding users, installing packages, and updating server configurations) based on a centralized specificationRubber - The rubber plugin enables relatively complex multi-instance deployments of RubyOnRails applications to Amazon's Elastic Compute Cloud (EC2).DocumentationAsciidoctor - A fast, Ruby-based text processor & publishing toolchain for converting AsciiDoc to HTML5, DocBook, EPUB3, PDF & more.grape-swagger - Add swagger compliant documentation to your Grape APIInch - Inch is a documentation measurement and evalutation tool for Ruby code, based on YARDRDoc - RDoc produces HTML and command-line documentation for Ruby projectsYARD - YARD enables the user to generate consistent, usable documentation that can be exported to a number of formats very easilyE-Commerce and PaymentsActive Merchant - A simple payment abstraction library extracted from ShopifyPaypal Merchant SDK - Official Paypal Merchant SDK for RubyPiggybak - Modular, Extensible open-source ecommerce solution for Ruby on RailsROR EcommerceShoppe - A Rails-based e-commerce platform which allows you to easily introduce a catalogue-based store into your Rails 4 applicationsSpreestripe-ruby - Stripe Ruby bindingsEbookBookshop - Bookshop is a an open-source agile book development and publishing framework for authors, editors.Eeepub - EeePub is a Ruby ePub generator.Gepub - A generic EPUB library for Ruby : supports EPUB 3Git Scribe - Basically the best way to write an ebook.Mobi - A Ruby way to read MOBI format metadataReview - Re:VIEW is flexible document format/conversion systemEmailIncoming - Incoming! helps you receive email in your Rack appsLetterOpener - Preview mail in the browser instead of sending.Mail - A Really Ruby Mail LibraryMailCatcher - Catches mail and serves it through a dreamMailman - An incoming mail processing microframework in RubyPony - The express way to send mail from RubyEnvironment Managementchgems - Chroot for RubyGemschruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOCfry - Simple ruby version manager for fishgem_home - A tool for changing your $GEM_HOMErbenv - Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches productionruby-build - Compile and install Rubyruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRubyRVM - RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gemsError HandlingAirbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks)Better Errors - Better error page for Rack appsErrbit - The open source, self-hosted error catcherException Notification - A set of notifiers for sending notifications when errors occur in a Rack/Rails applicationNesty - Nested exceptions for RubyRaven Ruby - Raven is a Ruby client for Sentry.File UploadCarrierWave - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworksDragonFly - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!PaperClip - Easy file attachment management for ActiveRecordrack-secure-upload - Upload files securelyForm BuilderAbracadabra - The gem that swaps out text with a fully-compliant Rails form in one clickFormtastic - A Rails form builder plugin with semantically rich and accessible markupRails Bootstrap Forms - Rails form builder that makes it super easy to create beautiful-looking forms with Twitter Bootstrap 3+Simple Form - Rails forms made easyGame DevelopmentGosu - A 2D game development library for the Ruby and C++ programming languagesYeah - Practical Ruby video game frameworkGeolocationGeocoder - A complete geocoding solution for Ruby. With Rails it adds geocoding (by street or IP address), reverse geocoding (find street address based on given coordinates), and distance queriesGeokit - Geokit gem provides geocoding and distance/heading calculationsHTTPexcon - Usable, fast, simple Ruby HTTP 1.1. It works great as a general HTTP(s) client and is particularly well suited to usage in API clients.FaradayHttp Client - Gives something like the functionality of libwww-perl (LWP) in Rubyhttp - The HTTP Gem: a simple Ruby DSL for making HTTP requests.httpartyPatron - Patron is a Ruby HTTP client library based on libcurl.RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actionsSavon - Savon is a SOAP client for the Ruby programming language.Sawyer - Secret user agent of HTTP, built on top of FaradayTyphoeus - Typhoeus wraps libcurl in order to make fast and reliable requestsImageryMiniMagick - A ruby wrapper for ImageMagick or GraphicsMagick command linePSD.rb - Parse Photoshop files in Ruby with easeRMagick - RMagick is an interface between Ruby and ImageMagickSkeptick - Skeptick is an all-purpose DSL for building and running ImageMagick commands.Internationalizationi18n-tasks - Manage missing and unused translations with the awesome power of static analysisi18n - Ruby Internationalization and localization solutionr18n - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian.twitter-cldr-rb - Ruby implementation of the ICU (International Components for Unicode) that uses the Common Locale Data Repository to format dates, plurals, and moreLoggingCabin - Structured+contextual logging experiments in Ruby.Fluentd - Fluentd collects events from various data sources and writes them to files, database or other types of storagesHttpLog - Log outgoing HTTP requests.Log4r - Log4r is a comprehensive and flexible logging library for use in Ruby programsLogging - A flexible logging library for use in Ruby programs based on the design of Java's log4j library.Lograge - An attempt to tame Rails' default policy to log everything.MongoDB Logger - MongoDB logger for RailsScrolls - Simple loggingYell - Your Extensible Logging LibraryMachine LearningPredictionIO Ruby SDK - The PredictionIO Ruby SDK provides a convenient API to quickly record your users' behavior and retrieve personalized predictions for themRuby Datumbox Wrapper - It's a simple Ruby Datumbox Wrapper. At the moment the API currently allows you to build applications that make use of machine learning algorithms.Markdown Processorskramdown - Kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensionsMaruku - A pure-Ruby Markdown-superset interpreterRedcarpet - A fast, safe and extensible Markdown to (X)HTML parserMiscAASM - A library for adding finite state machines to Ruby classesAXLSX - An excel xlsx generation libraryBetty - Friendly English-like interface for your command line. Don't remember a command? Ask BettyForeman - Manage Procfile-based applicationsGollum - A simple, Git-powered wiki with a sweet API and local frontend.Guard - A command line tool to easily handle events on file system modificationsJsonCompare - Returns the difference between two JSON filesplay ► - Your company's djPry Debugger - Pry navigation commands via debugger (formerly ruby-debug)Pry - A powerful alternative to the standard IRB shell for Rubypygments.rb - A Ruby wrapper for the Python pygments syntax highlighterRuby Operators - A webpage showing awesome names for different Ruby operators.Termit - Google Translate with speech synthesis in your terminalTreetop - PEG (Parsing Expression Grammar) parserYomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)Mobile DevelopmentRuboto - A platform for developing full stand-alone apps for Android using the Ruby language and librariesRubyMotion - A revolutionary toolchain that lets you quickly develop and test native iOS and OS X applications for iPhone, iPad and MacMoneyeu_central_bank - A gem that calculates the exchange rate using published rates from European Central BankMoney - A Ruby Library for dealing with money and currency conversionNatural Language ProcessingTreat - Treat is a toolkit for natural language processing and computational linguistics in RubyORM/ODMActiveRecordDataMapper - ORM which works well with legacy databases. Last release (1.2.0) was on 13 October 2011.Guacamole - An ODM for ArangoDBMongoid - An ODM (Object-Document-Mapper) framework for MongoDB in RubyMongoMapperMongoModel - Ruby ODM for interfacing with MongoDB databasesohm - Object-hash mapping library for RedisSequel - Sequel is a simple, flexible, and powerful SQL database access toolkit for RubyORM/ODM ExtensionsMongoid Tree - A tree structure for Mongoid documents using the materialized path patternPackage ManagementGemsBundler - Manage your application's gem dependencies with less painRubyGems - Community's gem hosting servicePackages and ApplicationsBerkshelf - A Chef Cookbook managerCocoaPods - The Objective-C dependency managerfpm - Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanityHomebrew-cask - a CLI workflow for the administration of Mac applications distributed as binariesHomebrew - The missing package manager for OS XPaginationKaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMswill_paginate - A pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and SequelPDFGimli - Utility for converting markup files to pdf files.Kitabu - A framework for creating e-books from Markdown/Textile text markup using Ruby.Pdfkit - HTML+CSS to PDF using wkhtmltopdfPrawn - Fast, Nimble PDF Writer for RubyRGhost - RGhost is a document creation and conversion API.Shrimp - A phantomjs based pdf rendererWicked Pdf - PDF generator (from HTML) plugin for Ruby on RailsWisepdf - Wkhtmltopdf wrapper done rightProcess MonitoringBluepill - Simple process monitoring toolGod - An easy to configure, easy to extend monitoring framework written in RubyProcesses and ThreadsParallel - Run any code in parallel Processes (> use all CPUs) or Threads (> speedup blocking operations). Best suited for map-reduce or e.g. parallel downloads/uploadschildprocess - Cross-platform ruby library for managing child processes.forkoff - brain-dead simple parallel processing for rubyposix-spawn - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfacesProfilerbullet - Help to kill N+1 queries and unused eager loadingPeek - Visual status bar showing Rails performanceperftools.rb - gperftools (formerly known as google-perftools) for Ruby coderack-mini-profiler - Profiler for your development and production Ruby rack appsruby-prof - A code profiler for MRI rubiesQueueactive_job - Declare job classes that can be run by a variety of queueing backendsDelayed::Job - Database backed asynchronous priority queueResque - A Redis-backed Ruby library for creating background jobsSidekiq - A full-featured background processing framework for Ruby. It aims to be simple to integrate with any modern Rails application and much higher performance than other existing solutions.Sucker Punch - A single process background processing library using Celluloid. Aimed to be Sidekiq's little brother.RoboticsArtoo - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc.RSSFeed normalizer - Extensible Ruby wrapper for Atom and RSS parsers.Feedjira - A feed fetching and parsing library.Ratom - A fast, libxml based, Ruby Atom library.Simple rss - A simple, flexible, extensible, and liberal RSS and Atom reader.SchedulingClockwork - Clockwork is a cron replacement. It runs as a lightweight, long-running Ruby process which sits alongside your web processes (Mongrel/Thin) and your worker processes (DJ/Resque/Minion/Stalker) to schedule recurring work at particular times or dates.resque-scheduler - A light-weight job scheduling system built on top of Resquerufus-scheduler - Job scheduler for Ruby (at, cron, in and every jobs)Whenever - A Ruby gem that provides a clear syntax for writing and deploying cron jobsSearchattr_searchable - Search engine like fulltext query support for ActiveRecordelasticsearch-rubyhas_scope - Has scope allows you to easily create controller filters based on your resources named scopes.pg_search - Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text searchransack - Object-based searching.Rroonga - The Ruby bindings of GroongaSearchkick - Searchkick learns what your users are looking for. As more people search, it gets smarter and the results get better. It’s friendly for developers - and magical for your users.Searchlogic - Object based searching, common named scopes, and other useful named scope tools for ActiveRecordSunspot - A Ruby library for expressive, powerful interaction with the Solr search engineThinking Sphinx - A library for connecting ActiveRecord to the Sphinx full-text search toolSEOFriendlyId - The "Swiss Army bulldozer" of slugging and permalink plugins for Active RecordMetaTags - A gem to make your Rails application SEO-friendlySitemapGenerator - A framework-agnostic XML Sitemap generator written in RubySocial NetworkingCampo - Campo is a lightweight forum application, base on Ruby on Rails.diaspora* - A privacy aware, distributed, open source social networkDiscourse - A platform for community discussion. Free, open, simpleForem - Rails 3 and Rails 4 forum engineState MachinesAASM - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid)simple_states - A super-slim statemachine-like support libraryStatesman - A statesmanlike state machine libraryWorkflow - A finite-state-machine-inspired API for modeling and interacting with what we tend to refer to as 'workflow'Static Site GenerationHigh Voltage - Easily include static pages in your Rails appJekyll - Transform your plain text into static websites and blogsMiddleman - A static site generator using all the shortcuts and tools in modern web developmentNanoc - A static site generator, fit for building anything from a small personal blog to a large corporate web siteTemplate EngineCurly - A template language that completely separates structure and logicHaml - HTML Abstraction Markup LanguageLiquid - Safe, customer facing template language for flexible web appsMustache - Logic-less Ruby templatesSlim - A template language whose goal is reduce the syntax to the essential parts without becoming crypticTilt - Generic interface to multiple Ruby template enginesTestingFrameworksRSpec - Behaviour Driven Development for RubyFormattersEmoji-RSpec - Custom Emoji Formatters for RSpecFuubar - The instafailing RSpec progress bar formatterNyan Cat - Nyan Cat inspired RSpec formatter!Bacon - A small RSpec cloneCapybara - Acceptance test framework for web applicationsCucumber - BDD that talks to domain experts first and code secondCutest - Isolated tests in RubyKonacha - Test your Rails application's JavaScript with the mocha test framework and chai assertion libraryminitest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarkingRR - A test double framework that features a rich selection of double techniques and a terse syntaxshoulda-matchers - Provides Test::Unit- and RSpec-compatible one-liners that test common Rails functionality. These tests would otherwise be much longer, more complex, and error-prone.Spinach - Spinach is a high-level BDD framework that leverages the expressive Gherkin language (used by Cucumber) to help you define executable specifications of your application or library's acceptance criteria.Spork - A DRb server for testing frameworks (RSpec / Cucumber currently)Test::Unit - Test::Unit is a xUnit family unit testing framework for RubyFake DataFabrication - A simple and powerful object generation libraryfactory_girl - A library for setting up Ruby objects as test datafaker - A library for generating fake data such as names, addresses, and phone numbers.ffaker - A faster Faker, generates dummy data, rewrite of faker.Forgery - Easy and customizable generation of forged data.Machinist - Fixtures aren't fun. Machinist isMockActiveMocker - Generate mocks from ActiveRecord models for unit tests that run fast because they don’t need to load Rails or a database.TestXml - TestXml is a small extension for testing XML/HTML.WebMock - Library for stubbing and setting expectations on HTTP requestsWebDriversSelenium WebDriver - This gem provides Ruby bindings for WebDriver.Watir - Web application testing in RubyExtraAppraisal - Appraisal integrates with bundler and rake to test your library against different versions of dependenciesRuby-JMeter - A Ruby based DSL for building JMeter test plansSpring - Preloads your rails environment in the background for faster testing and Rake taskstimecop - Provides "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent codevcr - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate testsThird-party APIsdatabasedotcom - Ruby client for the Salesforce's Welcome to the world’s most trusted and secure cloud database, salesforce.com. - Salesforce.com and Chatter APIsDropbox - Dropbox API Ruby Client.facy - Command line power tool for facebookfb_graph - A full-stack Facebook Graph API wrapperflickr - A Ruby interface to the Flickr APIgitlab - Ruby wrapper and CLI for the GitLab APIgmail - A Rubyesque interface to Gmail, with all the tools you'll need.hipchat-rb - HipChat HTTP API Wrapper in Ruby with Capistrano hooksinstagram-ruby-gem - The official gem for the Instagram REST and Search APIsitunes_store_transporter - Ruby wrapper around Apple's iTMSTransporter programlinkedin - Provides an easy-to-use wrapper for LinkedIn's REST APIsOctokit - Ruby toolkit for the GitHub APIPusher - Ruby server library for the Pusher API.ruby-gmail - A Rubyesque interface to Gmailruby-trello - Implementation of the Trello API for Rubysoundcloud-ruby - Official SoundCloud API Wrapper for Rubyt - A command-line power tool for Twittertweetstream - A simple library for consuming Twitter's Streaming APItwitter - A Ruby interface to the Twitter APIwikipedia - Ruby client for the Wikipedia API.youtube_it - An object-oriented Ruby wrapper for the YouTube GData APIYt - An object-oriented Ruby client for YouTube API V3VideoStreamio FFMPEG - Simple yet powerful wrapper around the ffmpeg command for reading metadata and transcoding moviesWeb Crawlinganemone - Ruby library and CLI for crawling websites.LinkThumbnailer - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.Mechanize - Mechanize is a ruby library that makes automated web interaction easy.MetaInspector - Ruby gem for web scraping purposes. It scrapes a given URL, and returns you its title, meta description, meta keywords, an array with all the links, all the images in it, etc.Upton - A batteries-included framework for easy web-scraping. Just add CSS! (Or do more.)Wombat - Web scraper with an elegant DSL that parses structured data from web pagesWeb FrameworksCamping - A web microframework which consistently stays at less than 4kB of codeCuba - A microframework for web developmentLotus - It aims to bring back Object Oriented Programming to web development, leveraging on a stable API, a minimal DSL, and plain objects.Padrino - A full-stack ruby framework built upon SinatraPakyow - A framework for building modern, realtime web-apps in Ruby. It helps you build working software faster with a development process that's friendly to both designers and developersRamaze - A simple, light and modular open-source web application framework written in RubyRoda - A routing tree web frameworkRuby on Rails - A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) patternSinatra - Classy web-development dressed in a DSLVolt - A Ruby web framework where your ruby code runs on both the server and the clientWeb ServersGoliath - A non-blocking Ruby web server frameworkPhusion Passenger - Fast and robust web server and application serverPuma - A modern, concurrent web server for RubyRack - A common Ruby web server interface. By itself, it's just a specification and utility library, but all Ruby web servers implement this interfaceThin - Tiny, fast & funny HTTP serverUnicorn - Rack HTTP server for fast clients and UnixWebSocketFaye - A set of tools for simple publish-subscribe messaging between web clients. It ships with easy-to-use message routing servers for Node.js and Rack applications, and clients that can be used on the server and in the browser.Firehose - Build realtime Ruby web applicationsRails Realtime - Adding Real-Time To Your RESTful Rails App.Sync - Real-time Rails PartialsWebsocket-Rails - Creates a built in WebSocket server inside a Rails application with ease. Also support streaming HTTP

How can you find your way through the jungle of web development technologies?

There are certainly a lot of languages and for everyone a lot of frameworks... Not to mention the myriad of tools and environments that we can use...We will avoid making the complete list, otherwise it will take weeks, but at least let's talk about some of the most used...—————————————————————————————————————I/ The back endThe backend is what will be executed on the server side. Basically we retrieve data from the database, process it and send it to the front-end, which is what the user will execute in his browser.Many back-end solutions offer their own integrated front-end solution. That is, it si not mandatory to separate the two. The back-end has HTML document templates, which it can modify with the framwork’s "template language" and return as an HTML document (+CSS and scripts) for each page.Today, the trend is more towards separating front-end and back-end in two different applications. This makes it possible to create 100% front-end interfaces that are very dynamic and to minimize the data that circulates between the two (via a API) once the first loading is done.However, the traditional template language solution remains relevant for low-dynamic sites where it is not necessary to run a lot of JavaScript.To get around it quickly, we will adopt a scoring system. Not everyone may agree with the notes. I didn't use all these technologies and so I synthesized what I understood from my own research. Feel free to share your point of view and your experience in commenting. If there is a consensus I will adjust accordingly.Regarding the criteria I will propose:Developer productivity, which represents the time that a developer familiar with the framework will spend creating the site, compared to other solutions. This is often the most important criterion these days.Saving server resources, which is only relevant for large sites using full capacity servers. Note that we do not speak of speed because most often it is the database that slows down the execution the most, because of disk access. This is obviously less true with a good use of the cache in RAM when the sites allow it. This also means that in general, the human cost is much more important than the cost of servers.I.1 / The heirs of the first wave of back-endsThese are the solutions used today that come from the first wave, before the specialized front-end frameworks. At the time PHP and Java ruled the web as a master. They remain the leaders even if they have lost popularity.The Traditional CMS such as WordPress and Drupal (written in PHP). It is still the most commonly used option to make simple sites, such as corporate showcase sites or blogs. Since all these sites are similar, most of the code is reusable. We have a turnkey site, with an administration interface to write the articles in addition, where all that remains is to customize the appearance.Developer productivity: +++ for a standard showcase site that follows the CMS architecture with little additional development. Any further development deserves a simple +.Saving server resources: +The PHP frameworks, including Laravel that is currently the most popular. Before him it was French. Symphony, which is still a little more difficult to handle than her little brother. Another very popular framework being CodeIgniter, which has a very small footprint on server resources. Etc. There's a whole bunch of them.Developer productivity: ++Saving server resources: +For enterprise applications, the most widely used language was (and still is due to its history): Java. It is a much more verbose language, therefore less productive to write code, but much faster to execute than PHP, which is an interpreted language. Java itself is compiled and cross-platform, thanks to a compatibility layer: the Java Virtual Machine. There are a lot of Java web frameworks. Spring, Play, JSF.... It is worth noting that Spring Boot. If you know a little bit about Java and want to deploy a relatively standard application as quickly as possible, with a minimum of code, Spring Boot configures you everything in the blink of an eye.Developer productivity: + (except Spring Boot)Saving server resources: +++I.2 / The second wave of back-endsThe second wave is characterized by a search for increased productivity in web development.The founder of the second wave is undoubtedly the language Ruby and its framework Ruby on Rails. It is a huge craze for this language with its minimalist and extremely readable syntax, so much so that those who do not know it can decipher the code. Rails, on the other hand, forces an "ordered" architecture in the form of a model-view-controller. Finally, it offers a whole bunch of bricks that are easy to assemble in a web application. Ruby on Rails appeals to startups and allows them to launch ambitious projects in record time. The only problem is that like PHP, it is an interpreted language that is rather resource-intensive and the fact of assembling bricks that are sometimes larger than the need makes them lose even more performance. Anyway, server resources are much cheaper than developers.Developer productivity: +++Saving server resources: +Then comes the moment of glory of specialized front-end frameworks, written in JavaScript, which is the only language that allows you to execute code directly in a web browser. We'll talk about it later. A lot of developers are trained in JavaScript. Despite the weaknesses of this language, they do not want to change. It's the massive landing of the environment node.js, which allows to execute JavaScript on the server, and the framework Express.js, which is the first in our list to be exclusively back-end. To be honnest, node.js is much less clean and less productive than Ruby on Rails. However, it has superior performance to Ruby and PHP, the best for an interpreted language but still far from Java. This helps its adoption on relatively large sites.Developer productivity: ++Saving server resources: ++Finally the third to make a crashing entry, is a language that does not come from the web: Python. Python has since seduced and established itself as the number one in the scientific community, particularly for data analysis, scientific calculation and artificial intelligence. Nothing predisposed Python, already old, to this, except that it is probably one of the easiest languages to read and write. Even more than Ruby. While Python flirts with Java on the line of the most used languages in the world, all sectors combined, very large sites are created with its framework Django, like Youtube, Instagram, Disqus, Spotify, Dropbox, Quora... The use of a language interpreted for these big platforms may seem surprising, but Django allows an unequalled productivity, with everything that is already included in it and an excellent robustness. It has a faire value when we know that the most costly is development time. For small sites, since it is the reading and writing to the database that slows down applications the most, Django is even an ideal choice. In addition to Django, Python has many frameworks including the very popular Flask. A minimalist framework that does not embody anything useless and on which other bricks can be added.Developer productivity: +++Saving server resources: + (sometimes +++ if well optimized)I.3 / The third wave of back-endsThese backends compete with Java while being less verbose, more pleasant and more productive when writing code. Not surprisingly, it is a big job to develop this kind of tool and it is very big companies that are behind these projects.Go! Yes, yes, it is the name of the language. Google was tired of having to choose between languages like C++: high-performance but very long to write and very dangerous to leave in the hands of inexperienced developers, Java: high-performance but verbose to write and belonging to Oracle, Python: very fast to write, adapted for prototyping but lacking performance for their big server side needs and more difficult to debug on large projects (not compiled, not typed). They therefore created a language that had to be productive, usable by inexperienced developers, consuming few server resources and fast to compile to progress by iterations. The result is Go. Since this language has everything needed for server-side development and Google's support was a guarantee of stability, it has grown rapidly and is now renowned for developing high quality backends, especially on large projects. Some will say that Go is so well equipped for the web that it doesn't need a framework. Maybe, well, it can save time so there's a small classification of frameworks on GitHub.Developer productivity: ++Saving server resources: +++We will go back in time and remind that Microsoft had already followed a similar approach with C#, which is also used for Windows applications. There is not so much buzz around this language yet it is much more used. Microsoft has developed a whole ecosystem for the web with ASP.NET. But above all, the big innovation that places us in the third wave is Blazor. We'll talk about it more on the front-end side, it's the first to run WebAssembly seriously.Developer productivity: +(+?) ←Your opinion?Saving server resources: +++I.4 / The fourth wave of back-endsThe third wave wants to have its cake and eat it too... Basically they want developer productivity worthy of Ruby or Python, but a speed of execution at least as good as Java. We're on the very latest emerging generation. The disadvantage is that it is less easy to find tutorials to help us. In this generation, we count in particular with:Elixir, with its framework Phoenix. The stated objective is to achieve Ruby's ease of writing code and an ability to handle the load that is superior to all its competitors. Elixir uses the Erlang virtual machine, known for its low latency, distributed and fault-tolerant systems. It can also be interpreted as Python or compiled as Go. A very practical approach because the first one is top during development and the second one in production. It is very clearly the rising star of the moment in the field of web development.Developer productivity: +++Saving server resources: +++Julia, a language born in and supported by the MIT, which is also a rising star but in the field of data sciences. Why talk about it then? Because Julia has the best just-in-time compiler (JIT) to date, with performance close to C and is even easier to write than Python, while having the ability to go down to low level in the system if needed. In short, on paper Julia has everything to become a great back-end language, but the team prefers to focus on data science and AI. Nevertheless, the community is developing a web framework: Genie.jl. The stated objective is to make it as simple and productive as Django, the reference in this field, while bringing Julia's speed of execution.Developer productivity: +++ (at maturity)Saving server resources: +++—————————————————————————————————————II/ The front-endII.1 / Templates, or "template language"This is the historical approach that consists in creating pages that mix HTML and back-end language, asking the server to generate an HTML file and send it to the front end.It was already possible to add JavaScript code to this HTML, which will be executed by the browser. The most popular JavaSript library for these uses is JQuery.This approach is still relevant for sites that require few dynamic bricks in JavaScript, as it will allow rapid development under these conditions.When you start entering sites like Quora, Facebook, or SaaS, it becomes totally unmanageable because we mix server code with JavaScript and JQuery shows its limits to make all the components of a complex application communicate with each other.II.2 / Single Page Apps written in JavaScriptThis is the "modern" way to develop an application. We totally separate the front end and the back end. The front-end becomes an application written entirely in JavaScript that is sent to the user's browser, which will interpret JavaScript itself. When the front-end application needs data that is on the server, it will request it from the back-end, which will provide it in the form of data JSON via a Web API using the HTTP protocol. Here are some of these frameworks. You have to know that front-end development is a bit like Game of Thrones for frameworks and that things can change in a few years...Angular: developed by Google, Angular has long been the undisputed emperor of front-end frameworks. Google's development strength has made it possible to reuse front-end code for mobile or desktop applications.React: Facebook has developed its own JavaScript Framework for its internal use and has gradually introduced it into Open Source. It turned out that React was easier to use and more productive than Angular, which allowed him to tickle the emperor to steal more than half his territory. React is now the number 1 JavaScript SPA framework, neck and neck with Angular. React also offers React Native for the development of mobile applications. It is used by companies such as Facebook, Instagram, Pinterest...Vue.js : A former Google engineer had some ideas on how to make Angular easier to use. He created his own Framework: Vue.js. The community very quickly became interested in this Open Source adventure and today Vue.js has nothing to envy Angular or React. It is supported by donations and companies, especially Chinese companies, such as Alibaba. It is a little easier to use than React, thanks to a large number of abstractions that avoid rewriting standard code several times. At the same time, some programmers find that we have a better understanding of what happens behind the scene when we use React. This is also true. For the moment, Vue.js remains the challenger, far below the other two. Some believe it will take off in 2020 and others that the ease of use and productivity provided by React is insufficient to make it a serious threat. The revolution would be to be expected from the next generation of frameworks... Unless React evolves fast enough not to be caught up.Ember.js: it is a relatively old framework, relatively little used compared to the others but which has been able to maintain itself and continue to progress. It is used by LinkedIn and Netflix, which are good references.Aurelia.js : it is a challenger, less known than the "3 big ones", which brings less functionalities than them but which sought simplicity.Mithril.js : a very small Framework, very fast to load. A good option if you are running to make a minimalist fast site or by encoding more in pure javaScript.Svelte.js: brings an interesting innovation: it is transposed in very light JavaScript base. It is also relatively easy to use. Comparable to Vue.js.Polymer.js, had been created by Google to anticipate the arrival of standard Web Components and offer Polyfills to make their use possible on any browser. Note that most large frameworks also allow to create Web Components.Meteor.js: is a full stack framework. That is to say, it allows both back-end and front-end operations.Backbone.js is an "old" framework (2010) that was innovative in its time. It is rarely used nowadaysII.3 / Languages transpiled in JavaScriptIt's no secret, many developers who come from other languages don't like JavaScript. The transition to ES6 version wanted to provide more traditional syntaxes compared to other object-oriented languages, but also created a rather messy two-level language. There are also a lot of little subtleties that can create bugs where you don't expect them. Obviously, when you compare it to a very clean language like Python or Go, you complain... But there is no choice for the front-end. JavaScript is the only language that web browsers can understand.Some have therefore tried to launch derived languages that are converted to JavaScript before being sent to the browser.TypeScript : In JavaScript, you do not declare the type of your variables. For example "let a" can be a number like a string, and you can change on the fly between the two. The problem is that some functions are waiting to have a particular type. If you use the Cosine function and you send it a string it will make a fuss... When you code several people or when the program starts to be long, you quickly make the mistake of reassigning a different type to a variable, which will result in a serious problem in another part of the code. That's why MicroSoft created TypeScript. It's just JavaScript, but we declare in advance the type of variables and we are warned if we try to change them later. Being "just JavaScript with typing", TypeScript can be used with most of the frameworks described above. In practice, TypeScript is widely used.Dart, with the framework Flutter and Flutter for Web. Dart is a language developed by Google with a syntax closer to C or C#, which has the advantage of being relatively clean. It allows to make with the same code mobile applications, desktop or web front-end. This is a recent technology that will probably continue to grow for some time. For the moment, the web version is still under beta test and lack SEO compatibility.Elm: it is a language but also almost a Framewok on its own, with its own implementation of the virtual DOM. Elm has been the pioneer in several concepts used today in frameworks such as React. Elm is quite simple to understand and productive.II.4 / WebAssemblyWebAssembly allows applications to be compiled and executed in the user's browser, regardless of the user's execution system.For the moment WebAssembly does not know how to handle the DOM and must therefore remain coupled to JavaScript, which is not compiled. We'll see if it continues like this for the long haul. There are many people that want 100% WebAssembly web applications written with their favorite language, without having to use JavaScript....Blazor, is the first framework to take advantage of WebAssembly. It allows you to write entirely in C#, whether it is the back-end or the front-end. Come on, it's not just JavaScript... It also benefits from all the power of ASP.NET, to which it is attached. Blazor is the first framework to deploy the potential of WebAssembly. It does this by directly compiling C#. Of course, when WebAssembly can't be used, Blazor brings out the good old JavaScript under the hood. Blazor relies on well-supplied standard component libraries to increase developer productivity.What about the others? It may well be that WebAssembly integration is the hallmark of new generations of frameworks and that it allows front-end developers to choose their language. Examples include experiments Vugu (Go), SwiftWasm (Swift), Yew (Rust), TeaVM (Java, Kotlin), Pyodid (Python) or Wasmer, which would allow to compile different languages in WebAssembly.—————————————————————————————————————III/ Database management systemsDatabases are used to store your website information in an infrastructure optimized for simultaneous read/write by many users, while ensuring data integrity. Yes, because having 10,000 users reading a single file on your server is not a problem, but having 10,000 users writing in it at the same time is just unmanageable. Databases also allow complex data operations, such as joints or graph crossings, which makes them usable for a little more than their raw display on the screen.It should be noted that read/write to disk is the most important thing that slows down a website apart from the problems related to data transfer. The choice of the type of database, the design of its architecture, are therefore important points for the performance of a website. On the other hand, the choice of a programming language will only be felt from a much higher number of visitors.The relational databases, generally managed in SQL. These are the most commonly used. To the point that other technologies are often called NoSQL (Not only SQL). They allow the best performance in reading and writing and the structured organization of the content provides a clear vision of the code.The most popular Open Source option is MySQL, managed by Oracle, or its derivative MariaDB was created following concerns that Oracle would withdraw the open source license from MySQL, and used by Wikipedia in particular.The most common alternative is PostgreSQL. Between the two you will only see the difference in extreme load cases. Situations in which the two solutions have different advantages. Postgres is used extensively with Django.Microsoft SQL Server is probably the most common option in corporate IT systems. There is a free version that meets most basic needs.SQLite is a database system that writes to a. It is not designed to support a large number of simultaneous writes but is fast in reading and minimalist in terms of installation. This system is often used in data science, at the time of development or for databases where only a few administrators write.The Key-value databases are ultra simplistic. A key, a value. Period. The advantage is a very fast reading when you know the key. Many databases that offer key-value systems are also document databases, which will be discussed in the next paragraph. However, there are pur-players, most of which are random access databases that focus on speed.Redis, a database in RAM that is widely used as a cache system to speed up the display of website pages, but also allows persistence on disk by an incremental system.The other big name in this market segment is MemCached.The document databases allow data to be stored with an undefined tree structure and rendered in standard formats such as XML or JSON. They are increasingly used because they make it easy to store any object, especially JavaScript objects, with a minimum of rewriting. However, data cross-referencing operations can be a little slower.MongoDB is the undisputed leader in the field today.CouchBase is a popular system offered by the Apache Foundation.Each of the major clouds now offers its own document-oriented database service:DynamoDB, on Amazone Web ServicesCosmosDB on Microsoft Azure (actually multi-model)Firebase Realtime Database, Firestore, or Google Cloud Datastore, on Google services.Relational databases have not been insensitive to the success of MongoDB. Most of them, like MySQL, MariaDB, PostgreSQL and Microsoft SQL Server now offers to store documents in JSON.A type of graph databases that use RDF, also known as TripleStores and QuadStores are designed to support the semantic web. A triple is in Item / Property / Target format. For example: John / is a friend / Mike. In Quads, a column is added to specify that a triple provides details about another triple and define subgraphs. To reconstruct the page about John, we look for all the triples that start with John and his sub-triples. This model is quite fast in practice, whether it is to display the page of an Item or to make graph crossings. On the other hand, compared to a document-oriented model, we have multiplied the number of times we write John. The result is that these databases can take up a lot of memory space. Among the known names:Virtuoso, which propels in particular DBPedia.MarkLogic offers document + RDF.Apache Jena is a framework dedicated to the semantic web that allows you to transform a relational database into an RDF database and also offers its own solution.GraphDB, a commercial system with a very nice graphical interface.Blazegraph, which propels Wikidata.Another type of graph databases, wich is becoming the most popular, is the "labeled-property graph". It is a network of nodes and connections that each have a list of properties. This system is memory intensive and power-consuming but extremely powerful to evaluate the relationships between data. We used it for example in the Panama Papers case to unravel fictitious corporate networks.Neo4j is the leader in graph databases. It is a system written in Java that offers a very wide range of tools.Others are for the most part multi-model databases, such as CosmosDB, OrientDB or ArangoDB.Amazone Neptune also supports RDF format.There is a newcomer who deserves to be mentioned, it is the RedisGraph. This Redis-based system resides in RAM, which makes it extremely fast, with a disk-based persistence system. This speed is further improved by the use of adjacency matrices. RedisGraph thus compensates for the main weakness of graph-oriented databases, as long as the data can enter the RAM, which is most often the case.Multi-model databases are database management systems that mix several data models. The systems below can behave like all the systems described above.Oracle Database is undoubtedly the leader in commercial databases and can be used with relational models, document, graph and RDF.CosmosDB is the Microsoft solution for the Azure cloud.OrientDB is an Open Source system written in Java that is compatible with a large number of query languages.ArangoDB is written in C++ and is open source, but has its own query language.Another type of database that should not be ignored is the "Wide column store" system. It is a system close to relational databases but allowing structural changes within a table. They are widely used in the big data.HBase and Cassandra are Open Source solutions offered by the Apache Foundation.CosmosDB, in the Azure cloud, also supports this format.The Google cloud solution is Bigtable.Etc. We didn't talk about the distributed database management, nor reviewed all the query languages, but it's already very long so we'll stop there... An excellent site to look at database management solutions is db-engines.com.—————————————————————————————————————IV/ HostingWe're gonna have to put that code somewhere. Many suppliers such as AWS, Azure, Google Cloud Platform, Digital Ocean, Heroku, OVH, offers solutions to host your application in their data centers. You can of course do this at home as long as you have a fixed IP, but the speed of your internet line will strongly penalize the performance of your site from the moment you use it.The shared web hosting is often the easiest way to get started. Basically a host provides a large server and installs a control panel with a graphical interface. It then sells access to this interface, with disk space quotas and isolation between users. The big flaw of these hosts is that you can't install everything and anything on the server. You have to deal with what you are given. In practice, these hosts are useful for running sites, based on popular solutions such as PHP and MySQL, with CMS such as WordPress.The Virtual dedicated servers (VPS). Now we are starting to get into something more serious, while remaining economical. Basically the host will provide you with a Linux or Windows Server on a virtual machine running on one of its large servers. With these solutions you can control everything. Some hosting providers even offer ready-made environments with the software you will need installed, as can be seen on the marketplaces Digitial Ocean and Heroku, who also offers to take care of keeping them up to date.Cloud platforms, like giants Amzone AWS, Microsoft Azure and Google Cloud Platform or smaller ones like Heroku or the OVH Public Cloud. They also generally provide access to VPSs, as well as a very comprehensive set of specialized tools. We're getting into serious things for the deployment of large applications. Large clouds full of options are usually quite expensive compared to a small, simple VPS at OVH, for example. In general, virtualized solutions such as cloud platforms and simple VPS are now the most popular, allowing hosting providers to better manage the use of their servers."Bare-metal servers". You rents a physical server with a given location in a data center. This solution is less and less frequent because it is expensive and offers less services and flexibility than clouds. However, it will have advantages in terms of performance stability for some critical applications.—————————————————————————————————————V/ The server architectureServer architecture is a tricky subject when you touch very large sites that make a lot of traffic. You will need specialists who are familiar with their work. But in the meantime you can still deploy your sites yourself with some knowledge in the field.Web panels are graphical interfaces that allow you to manage a web server provided you use the most common technologies. In my opinion, this is especially practical when you want to provide shared web hosting. These include the following cPanel, Plesk or Webmin, which is free. I've tried. On a small personal VPS server it doesn't make your life that much easier, except if you install a very light panel like VestaCP.Pre-configured VPSs, such as droplets of Digitial Ocean and the buildpacks of Heroku. Everything is done on the command line but the environment is already ready and these services often offer simplified orders or guides.Docker Compose allows you to write in advance to a file what you want as an environment and deploy it in one click. It takes a little time to fully understand Docker but personally it's my preferred solution. This allows you to have a complete overview of your environment at any time, to change it by modifying a few lines and each service is isolated in a container, which avoids unfortunate interactions between the different sites. Last but not least, it provides an almost identical development and production environment, limiting the risks of "yet it was working on my machine" at the time of deployment.Kubernets, a few notches above, allows you to orchestrate container that can be distributed or replicated on several machines and manage scale-up by automatically deploying the appropriate resources. This is a complex solution that requires in-depth knowledge of server administration.Most large clouds offer, in addition to VPS, a multitude of specialized services that they manage themselves and that you can access via an API. These approaches have the advantage of simplifying your life while allowing maximum flexibility. One platform of this type that is being talked about a lot right now is Firebase, bought by Google.—————————————————————————————————————VI/ HTTP serversmost often behind websites, machines discuss using the HTTP protocol. It will be necessary to serve and receive content according to this protocol. That's the purpose of a server.A small aside, we often make a big deal about the comparisons between the speed of different web servers. Unless you design a site with very high traffic, milliseconds of server processing time is certainly the least of your worries. It is better to focus on a practical solution.Apache Httpd has long ruled as a master. He can do everything, even coffee. If you don't know what to choose, it's often a good solution.NGINX has caught up with Apache thanks to its exceptional performance in serving static files. Today the two share the market for Open Source solutionsIIS, Microsoft's server is not the most popular but the quality of the environment ASP.NET for web development is making it more and more used.Apache Tomcat is a server used for Java sites.Express.js (with Node.js) integrates a web server for JavaScript backends.Lighttpd is an ultra lightweight server that can be useful on configs with limited resources.Caddy is a relatively new server that integrates the upheavals associated with the arrival of containers and greatly simplifies administration under these conditions.Between the server and the backend, a CGI, or "Common Gateway Interface" is usually required to allow them to interact. For example, for Python, the popular solutions that are generally coupled with NGINX are uWSGI and Gnunicorn.When you have several services on a server, it may be useful to set up a reverse proxy, which distributes requests to the right services and will often have a role of load balancing. We can mention for example:The solutions provided with the servers, such as NGINX reverse proxy and mod_proxy for Apache.Traefik, a solution to be coupled with containers, which simplifies the management under Docker once you understand how to configure it.—————————————————————————————————————VII/ CachingThe Caching allows the results of previous requests to be stored in RAM and reused by future customers without having to repeat the entire processing process at the back-end and database query level. Obviously behind this there is a whole strategy to serve fresh content if it changes in the meantime.MemCached and Redis are key-value databases that are placed behind the server and can store the result of requests in RAM in order to serve them later. These are very popular solutions.Varnish and Squid are HTTP caches that are placed at the front of the web server, in Proxy position, and intercept any request that has already been made recently to serve an already ready result. These HTTP caches can be used in conjunction with MemCached and Redis.Note that there is also a cache in the browser, but this is managed by each client's browser and not by the web developer.—————————————————————————————————————VIII/ And then... A whole bunch of development tools...We will resume the development stages based on the DevOps to structure this and not get lost. Don't worry, we'll keep an overview.Project management tools allow you to collaborate with several people around a platform, and to organize yourself. In practice, we will find many of the large forges and code repository and review platforms that are seen later. There are also standard project management tools. Most of these tools focus on agile development. It should be noted that there are more than 200 project management tools so we will focus on a short list.Jira is a reference in commercial software integrated into the code. It also allows the management of bug reports. The Altansian editor offers a large number of integrated tools for web developers.TargetProcess is a tool with many flow diagrams, timelines and data visualization, for those for whom the process is at the heart of the action. Beware that many engineers tends to overthink project management tools and that the most simple is the most usefull by the end.Asana is a generalist project management tool with good agile process management and a friendly interface.Wrike is a 100% generalist project management tool, but it can integrate elements of agile methods and query management.Trello is an extremely simple tool in the form of a Kanban, i. e. a table of cards with columns of the type: to do, in progress, done...The tools of user experience design, for the creation part. These are tools that allow you to create the interface based on your knowledge of cognitive ergonomics, a creation/testing/modification loop, an understanding of brand identity, feasibility and graphic skills.Wireframes creation tools. Wireframes are simplified representations of the website. These representations do not intentionally assume graphics. They describe the different components of the interface and their behaviour. Eliminating graphics avoids discussions during the information and interactivity architecture phase.Balsamiq Wireframe is a commercial reference software that integrates into Jira. It makes it easier for several people to collaborate around a model.Pencil is a good Open Source software to start creating Wireframes. It allows you to create links between pages and also includes options for drawing flow diagrams.Microsoft Visio which is rather a diagram creation tool but which has long been a reference for the creation of Wireframes.Software not made for this at all is also regularly used just because it is possible to make links between pages. We could mention the following Adobe InDesign, Affinity Publisher and Scribus, which are desktop publishing software (DTP), or the famous PowerPoint.A paper and pencil is another kind of software, very popular, especially when you are alone and don't want to get carried away.Generalist graphics tools, often used to transform the final Wireframe into a graphic representation.Adobe Photoshop was not at all suited to designing websites but since many graphic designers used it as a Swiss Army knife, it quickly established itself. The practical side of Photoshop is its layer system that allows you to easily retrieve images for integration.Affinity Photo, much cheaper, with a similar interface and almost as powerful.The Gimp, a very powerful Open Source version. The interface is a little less user-friendly but it is still very usable.Adobe Illustrator is a generalist vector drawing software that is sometimes used in Web Design. It is also a software widely used in product design, which means that designers with a product + services interactivity background may sometimes prefer it. In any case, it is the software used for logos or icons.Affinity Designer, much cheaper, with a similar interface and almost as powerful.Inkscape, an Open Source version. The interface is a little less user-friendly but it is still very usable.Realistic prototyping tools that allow you to create navigable graphic models directly.Moqups is a tool that has evolved quite a bit, from a simple Wireframe tool to the ability to create finished models.Adobe XD promises to make interface designs by assembling components as quickly as you make an initial Wireframe. Well, it's a little more complicated than that, but it can help. Adobe XD also offers a free version.ProtoPie allows the team to collaborate and discuss around a model with a finalized graphical aspect on which it is possible to navigate.Marvel App, which also offers a number of specialized tools on user testing.The tools that make the graphics and code.Adobe DreamWeaver is halfway between web design software and code editor. It makes it easier to design HTML interfaces, with drag and drop options for elements and automatic code generation. It is loosing popularity since it is not usable with modern JavaScript front-end framworks.Google Webdesigner is a free tool that allows you to create the interface with the code in mind and also work on it in parallel. In addition to the classic web design features, Google focused on the ability to create animations.The very versatile tools that allow you to do wireframes, graphics, realistic prototyping, code and often many other things...Sketch is a product that is gaining a lot of popularity. It is particularly suitable for designing modern user interfaces with tools designed according to the implementation that makes them. It is even possible to create graphics responsive, which show the evolution of the interface according to the width of the screen. Ergonomics is closer to modeling software, which is also a possible use. Sketch is finally much more economical than Photoshop. A small shadow on the picture, it is a Mac-only software.Gravit Designer is a similar Sketch software with a little less options, available in the browser and with a free version to start with.InVision is a very complete reference tool that goes from WireFrame to code generation, flow diagrams and graphics. It really contains everything that is necessary.MockupPlus allows you to create finalized interfaces by describing navigation and generating code snippets that can be used by developers. Ditto for Figma or Axis.The codeThe code editors (simpler) and integrated development environments, aka IDE (more complicated).Visual Studio Code is certainly the most popular and universal solution for web development. It is an advanced code editor, much simpler than large dinosaur IDEs but with modules to integrate with remote servers or development environments under Docker.JetBrain offers excellent quality IDEs that are sufficiently well documented to be almost easy to learn. There is a paid version and a more limited free version each time. It's worth it when you can buy it.Eclipse has long been the most popular IDE solution because it is free. It is a big monster that can take effort to be controlled.Netbean is a kind of similar monster created by the Apache Foundation.Sublim Text is a fairly simple code editor that can be convenient to have on hand. Atom is very similar, developed by GitHub.Brackets is another code editor that is growing popular since it is specialized towards web development.Cloud9 an online IDE that has been bought by Amazon and now allows you to edit your code online on AWS servers.Eclipse Che is an online version of Eclipse that offers you to host your code on temporary servers launched with Docker Compose. The free offer is more than generous. The only disadvantage is that you have to wait until the docker container is up each time you restart it.CodeAnywhere is a similar approach, with something easier to learn but a more limited free offer. The little extra is the application for tablets and smartphones.Some devs who started programming before the dinosaur age still like to use Vim or Emacs, text editors in the terminal. Even if you don't want to develop on it, it's good to know how to use it for system administration.Etc. There are tons of them... Some of them specialized in certain languages.Version control tools allow you to store different versions of code at different stages of development and work together.The most popular one these days is Git. It was created by Linus Torvalds, a little known guy. It is a relatively simple format that has the advantage of being able to work in peer-to-peer between developers without requiring a central repository. In practice, however, there is often one of the deposits that is considered as the central one.Before him SVN was a very popular system. It is still widely used today. To run it it is necessary to implement a central repository on a server that is designated as the central repository.The biggest challenger is certainly Mercurial. It is a robust decentralized system. Among its users are Facebook, the W3C and Mozilla.The online code repositories that allow multiple developers to work on the same program. In practice, they often include additional features to support collaboration. These range from simple tools to code review that allow several people to get behind a platform, to reread and discuss the code... To the huge computer forges, which centralize all the necessary project management tools.The one you will hear most about is certainly GitHub. This is the reference repository used by Open Source projects today. It is both relatively simple and flexible.Gitlab is often considered as the alternative. It is also a very popular solution for private corporate projects.SourceForge is a complete platform that is known to host a large number of free software to download.Altassian, a leading provider of solutions for development companies, offers Crucible, dedicated to the review of source code and BitBucket, a complete solution.Trac and Redmine are very large Open Source forges that have existed for many years, to be installed on its own server.Phabricator is a slightly more modern and lighter version, which is notably used by the Wikimedia Foundation for Wikipedia and its sister projects.Anyway, it's time to set up the unclassifiable Azure DevOps Services. It is a recent Microsoft solution that provides access to all the necessary tools throughout the software's life cycle, when following a structured approach of DevOps. It is free for Open Source projects. So, I'll stop you right away... For a personal project unless you're addicted to DevOps it may be better to stay on GitHub. Azure DevOps Services is especially relevant for large projects in structured teams.Here we will start to enter into concepts of structured modern development. Continuous integration is the implementation of an automated process for the compilation, the tests : unitary, integration, system, functional, regression, performance....Jenkins is a very popular and complete solution that we often hear about...Travis CI is a solution that integrates well with the Open Source and GitHub projects.There are many solutions. Examples include, for example CircleCI, Buddy or TeamCity. We also have to include language specific libraries.Finally comes the first deployment in a pre-production environment called staging environment. If necessary, we will make the binary objects available in repositories called artifact repository. For example, we will be able to carry out user tests, e. g. usability tests, with the intervention of the UX team or load tests on a real environment. This is where we check the commercial viability of the product so it is better not to skip this step when there have been significant changes.There are dozens of different types of tools dedicated to User Experience.UsabilityHub for example, allows you to track first clicks and mouse movements, conduct surveys, evaluate preferences between multiple visuals or collect users' impressions within the first 5 seconds.Hotjar offers similar tools with conversion tunnels and feedback tools to integrate into the site.Inspectlet allows you to have advanced user tracking tools, including eye movement tracking.Loopback allows you to have remote test sessions with users by recording their screen.Etc. Adobe presents an interesting article with the main user test methods.Load test tools include, for example WebLoad, LoadNinja, Smartmeter, LoadView, JMeter...After validation, we will finally be able to deploy the code in the production environment. This can range from simple "git push" to the use of tools such as Application-release automation such as BuildMaster or Visual Studio Release Management. There is an interesting list in this article. The use of an architecture based on containers helps to simplify development.When the application is in production it is not finished....There is the monitoring, which makes it possible to monitor how the project is progressing in terms of quantified indicators. Many open source tools, sometimes integrated into the operating system, meet basic monitoring needs. There are also large commercial suites.Typing “top” on the command line in Linux will already give you a lot of information about the current processes. ”htop” is a more advanced version to install. "iotop" allows you to see the disk accesses.Monit is a very popular and open source solution for Linux servers.Nagios is an open source tool with a premium version. The Open Source version already meets many needs very well.UpTIme is a commercial tool that has the advantage of being both simple to use and powerful. A characteristic that is often forgotten.SolarWinds is not cheap but it is a popular solution that can do a lot of things. It has several tools at its disposal to identify bottlenecks and improve processes.NetCruch is a complete suite for server monitoring.Cula offers a fairly substantial free offer.Etc. There are many...The end-user experience can be evaluated using dedicated tools already described above and data from some monitoring software. We will also join marketing with precise tools for tracing the customer's acquisition and journey. For example, we rely on tools such as Google Analytics, Adobe Analytics and even open source tools such as Piwik.Of course you are not obliged to deploy all this arsenal for a small personal project... It is still recommended to write automated tests and carry out user tests, even basic ones, to realize that users do not necessarily think like us and that it is better to be extremely simple and clear when designing an interface…—————————————————————————————————————VIV/ Some suggestions to get startedI suggest some possibilities to get started. They are not necessarily the best and your case probably deserves a more in-depth analysis than these few lines, but it can give you some ideas.To create a showcase site for Aunt Lucie who is launching her cat grooming activity... Well don't bother and take a service where there is no need to code like Wix or WordPress.com (hosting based on WordPress technology). Yes, I know, it's bad, but at least she'll manage on her own....To create a small business showcase site or a blog with a little customization, a Traditional CMS will do very well and in particular WordPress, which is the most used (1/3 of the websites) and offers a lot of plugins and themes that save a lot of time. For hosting, a small shared server with a control panel at a traditional hosting provider will do very well.To create a shop... It's complicated to develop a shop from scratch... There are services that manage all the technology for you as Shopify. Concerning CMS there are for example WooCommerce, powerful and easy to use, which couples with Wordpress, and Magento, for big shops. You can put your shop on a good shared server to start with but on large shops you will need a little more serious customization.To quickly create a non-classical website, alone or with a small team...For the wireframe a paper and a pencil remain sure values when you are alone, or Pencil in a small team. I mean, if you're a pro team, a pro team, a designer UX will not cost you so much and will avoid great disillusionment during user tests that will make you lose much more money than you thought you had earned by avoiding it....For the graphic part, if you are alone you can use web components from standard libraries such as Bootstrap or Material UI. The site will be a little flat, flat, but clean. Otherwise, either you trust your talent or... a UX designer.As a code editor, Visual Studio Code is free and works well for almost everything. It is a lightweight editor that will be easier to learn than a Visual Studio or a Eclipse. Alternatively for Python some will prefer PyCharm.As a source code management tool, Git + GitHub is the most popular solution for Open Source projects and it is now possible to have private repositories for free.What seems to me to be the most productive for the back-end is Django. It has all the necessary tools on board and is written in Python, which is by nature very productive.If the application can benefit from the functionalities provided by a headless CMS (purely backend), it is better not to deprive yourself of them. We'll save time by not reinventing the wheel. It's the flat named DjangoCMS which for a long time was the most popular but nowadays it is probably Wagtail which is the most modular and saves the most time.Then for the front end....if I had very little dynamic content I would take the Django's Template language from a site model using Bootstrap. At worst some components JQuery, to slider it for example.If I needed to create a dynamic user interface that required JavaScript, I'll take React. React's choice is personal. This can always be discussed versus Vue.js, which is a good alternative, less popular but probably a little simpler.For hosting, the simplest is a Django Droplet on DigitalOcean or equivalent. Personally I prefer to have my hands on the architecture with Docker Composes on a virtual private server.If the mobile application is very important React native allows you to do it well with the same stack. However, it requires some rewriting. Flutter, a mobile framework written in Dart, allows you to do everything with the same code thanks to Flutter for Web. It is considered less productive than React but this would be compensated by writing the code only once for the web and mobile. This might make me want to try it in this context.If the team is large and/or the site could be very popular and resource intensive:You must have a UX team or you have hired an agency.For the code editor each dev has its preferences. If the team is large you probably have a structured development environment with a DevOps approach.We arrive for the back-end precisely at the why and how Go was developed by Google. Go will be easier for the team to debug and less greedy for servers than PHP or Python. But it all depends on the specific need. At this stage, a detailed analysis prevails.For the front end we could keep React, which is well suited for large projects, while paying attention to optimization.For the server architecture it is better to contact people experienced in these subjects. Kubernet is popular on these uses.And if... If I wanted a little adventure in the lands of the wizards who are preparing the world of tomorrow, I could choose Elixir with Phoenix for the backend.And if I am a hothead who wants to be among the first adopters in 2019 and that in addition I had needs in data science or scientific calculation, I would take Julia with the framework Genie.jl. It is likely that within a few years this will be a popular choice for sites that rely heavily on data science.X/ End!Are you still here?I probably forgot a few things or maybe a typo slipped in. Tell me and I'll correct it...I'm happy if it helped you. In any case, it allowed me to take stock. If you have read everything, don't hesitate to tell me in commentary, so I know that at least one person has done it! ! ;-)

What is your review of Kartrocket?

<Update>After clarification from Saahil (founder of KartRocket), a lot of sections in this post need to be updated.The changes have been made here:KartRocket Reviewed - Growing Commerce | 3000 word guideI will update the Quora answer as and when I can find time</update>KartRocket ReviewI will be covering the following aspects in this review1. KartRocket Set up Process2. Overall Costs you will pay KartRocket3. Frontend Features of KartRocketThemes AvailableTop Menu OptionsProduct SearchCategory Page OptionsProduct Page OptionsCheckout4. BackendCatalog Upload in bulk and individuallyOrder processingStore DesignBlogsCoupon Code featuresProduct Review FeaturesSEO featuresAPI5. Performance6. Missing Features7. Bugs8. Support9. Everything Else10. ConclusionSet Up ProcessThe set up process is pretty straightforward and easy. Just register on the Kartrocket.com, and start uploading products. You can be online is a very short time. They also offer a free plan with a limit of 200 products. Apart from that there are 3 more plans as shown below.You can choose a plan to your liking, start importing your products, point your domain name to your KartRocket account, and you are live. It’s pretty quick and the support helps you out in any on-boarding problems.ConclusionThe KartRocket setup process is pretty easy and straightforward.Costs InvolvedThere are 3 paid plans to choose from. The pricing mentioned does not include service tax so the final price would be 14% higher than as mentioned. You should note that these costs are only for hosting and maintaining the store and do not include any services like product photography, content writing, description writing etc. Those costs will have to be borne by you (store owner). Other costs that will be applicable are shipping costs, applicable taxes on products that are sold, service tax payable on shipping. You should account for all these costs before you launch your online store.ConclusionKartRocket pricing may not be the lowest in the industry, but they are pretty affordable.FrontendI’ll explore a few options on the frontend.ThemesKartRocket features quite a few themes for free. As of today there 98 themes available to choose from many of which are responsive out the box.A responsive website means which adapts automatically based on the device that it’s being viewed on. So, customers who are visiting your store from their phones will see a website that is optimized for mobile while desktop users will see a website optimized for desktop.With the recent Google Mobile Friendly Update, a responsive design is crucial not only for SEO, but also for a good customer experience.Here is an image that shows off a few themes that KartRocket offers:ConclusionThere are plenty of themes in KartRocket to choose from. However, the themes will not be customizable.Top MenuAll themes that come bundled with KartRocket come with a top menu pre-installed. This makes it easy for customers to find specific categories on your store. Here is what my menu looks like.And here’s what Jazzmyride‘s (another Kartrocket customer) menu looks likeThe menu is also responsive and renders nicely on Mobile Sites.However, there is where it ends. There are no other options available in the menu. You can only add text links. Here is how Dressmyphone’s menu looks when hovered.Now look at a Woo-Commerce Plugin that provides a rich menu.ConclusionClearly, there is a lot that can be improved with the menu.Product SearchProduct search for an e-commerce store is as important as GPS in a new city. Without a descent search, customers won’t be able to find products on your store. That means you are leaving money on the table.Even Amazon reports that search is the primary way people find products on their website.Therefore, your search experience should be extremely good for a good customer experience. Let’s see how KartRocket’s search holds up.As you see, the search is not Ajax based. Ajax based search starts returning results as soon as you start typing.Here is how it looks on the Flipkart website.It is a general best practice to have instant search with product images as it results in the highest conversions.Since search is so important, it is extremely important to see what your users are searching for on your website. Surprisingly, KartRocket provides no way of looking at keywords that your customers have been using to search on your website.Thankfully, this can be logged using Google Analytics.ConclusionKartRocket site search is pretty basic and has a lot of room for improvement.Category PagesCategory pages on an e-commerce store are known as the ‘money pages’. For niche sites category pages become extremely important.Showing the most important products in the beginning can be crucial for conversions. Let’s analyze KartRocket’s category page.This is how Dressmyphone’s category page looks like..As you see, no filter on the left hand coulmn. However, the customer has the option of sorting the products based on a few criteria.I also checked Jazzmyride’s category page to see if the results were consistent. Here is how the sidebar looked.All the sorting options are in fact available. My assumption will be it depends on the theme or product details/variations set up in the store admin.ConclusionAll sorting and filtering options are available in KartRocket. Also, KartRocket supports infinite scroll via Ajax.Product PagesThe product pages on KartRocket will vary theme to theme, so comparing theme related features isn’t feasible. I will try to highlight import features on the product page.Here is how Dressmyphone’s Product page looks like.The important things that can be seen here are:(v) Social Sharing Icons are visible(v) Product Images are clearly visible(v) Delivery Options can be checked with Pin Code Checker(v) Visible Breadcrubs (not visible in screenshot)(v) Related Products(v) Tags(v) The pin-code checker is an important feature for the Indian context where COD is the most used payment method.Note: The positioning of all above elements will depend on the theme chosen. That is the reason I have not commented specifically for that.ConclusionKartRocket product page has almost all necessary features.CheckoutCheckout is an extremely important step as well on an e-commerce store.The user has visited your store, spent time to check out your products and selected one to purchase.A problem with the checkout can be extremely frustrating for the user and very expensive for the store owner. Let’s see how the checkout goes on KartRocket.After you add product to cart and checkout, you will come to this page.Points to note(v) Guest Checkout option is available(v) Social Login with Facebook is available.(v) The progress bar on top is great for user experience.If you register and continue checkout, the next step comes up like this:Points to note(v) Balanced View of total payments to be done by the customer(v) Only minimum fields asked for in checkout(v) Progress bar updates to highlight remaining steps(x) Pin Code, city, state can be populated automatically if pin code checker was used on product pageOnce you save and continue, the next step looks like thisPoints to note here(v) Order confirmation SMS field is good(v) COD icon is clearly visible(x) COD fee is not applied even at this step, which is the primary reason users abandon their cartsAfter you finish this step, the next step looks likeImportant points to note(v) Tabbed view of payment options is good(v) COD icon visibility is good(v) Confirm order CTA is good(x) COD fee is applied at the last step, which leads to poor conversionsOnce you confirm the order, you are taken a thank you page with this popup. You will also recieve an COD confirmation code on your mobile number.Points to be noted(v) COD verification system is extremely useful(v) This step happens at the end of checkout, that means all user info is already captured.(v) Only valid mobile numbers will receive the message, therefore weeding out fake orders(x) Some users report that they did not get the message at all, or got it pretty late(x) If this dialog box is dismissed, the user cannot request confirmation code again(x) There is no option of presenting the customer with a 1-page checkoutConclusion for CheckoutThe checkout is pretty smooth and has useful features.BackendFor an e-commerce store, having a good backend is equally important as having a good frontend.The backend is where all the action takes place. It is where the products are uploaded, the orders are shipped and the entire store is managed.I will explore all the necessary functionalities that are required to run an e-commerce store.Inventory Upload – Bulk and SingleWhen you start an e-commerce store, the very first thing you do is upload your products on the store. KartRocket gives you the functionality of uploading your products 1 by 1 or all at once by using a bulk import.Lets explore them each.Single Product UploadYou can upload a product by going into the Catalog -> Add Products MenuHere is how the screen looks likeThe following points are worth noting(v) Rich editor is present for writing product description(v) You can video URL to add video to the product(v) You can drag and drop images(v) You can re-order images on the fly via drag and drop(v) You can add product variations and product attributes(v) You can easily add categories(x) You can’t put MRP and discounted selling price here(x) Tax class has to be added manually to each productLet’s look at the advanced end.Here is how it looksThese points are worth noting(v) You can put in SEO related Meta Data here (bulk option also present)(v) You can put in ISBN, UPC code here(v) You can manually set related products or generate in bulk(v) You can set discount for customer groups manually(v) You can set reward points per product(x) If you change product URL, then old URL returns 404 error. Please note the old URL and set a redirect first(x) Uploading an image with a name that has been uploaded before will cause problems and the new image will not get uploaded. That means that if you have uploaded with name abc.jpg for product 1, then if you upload a completely different image with name abc.jpg to product 2, you will still see the image from product 1. When doing bulk uploads, this can be a lot of trouble.Bulk UploadYou can import lots of products in bulk by uploading a CSV file with the fields of your choice.You can use the following fieldsProduct NameSKUModelBrandCategory (Multi Level)VariationsAttributesPriceMRPDiscountsQuantitySort OrderWeightProduct ImagesKartRocket Bulk import tool is pretty easy and intuitive to use. You can even save an import as a profile to use the same sheet for a next bulk upload.But..That does not mean that it is perfect. In fact, there are many bugs in the bulk upload tool.Some issues that I have personally faced while using the bulk upload toolAll product images do not get uploaded (no error is thrown either)(x) Friendly URL is not generated even after using the SEO bulk URL creator and even after clearing cache(x) Categories are not uploaded perfectly all the time and new categories are created if the categories are not matched to existing ones(x) Sometimes a blank product is created with price 0 and no images(x) The bulk upload tool does not recognize file names with .JPG. For example, the tool will recognize image.jpg as image but image.JPG as an xml like file(x) Using the bulk upload tool causes issues with caching with some customers seeing blank products while no issue being seen by me(x)Let me share an example of the bulk upload issue. The following image is an image of a product that I uploaded using bulk upload.(x) The product URL is not friendly even after running the SEO tool and clearing cache(x) The extra images of the product are not uploaded(x) Since the bulk tool does not show any errors, this has to be tracked manuallyConclusionKartRocket offers both single product and bulk product import tools, but both tools have plenty of improvements to be made.Order ProcessingNow we will see how we can process orders in KartRocket.Please note that I will not be reviewing order processing using Shiprocket as mentioned in the disclaimer in the beginning of this review.The screen for processing orders looks like thisThe following points are worth noting(v) The order status will auto-update if you use ship-rocket(x) You cannot export specific orders to CSV or excel(x) SKU for order is visible only after clicking a specific order and checking. This makes making picklists cumbersome(v) You can bulk print invoices and shipping labels but the bulk shipping labels and invoices have very little spacing in between, so you have to be careful while tearing themConclusionKartRocket has a descent order processing system with necessary features.Store DesignKartRocket provides quite a detailed level of customization on the store front. You can edit theme colors and various other settings. Here is an overview.Let’s see the what the individual options do(i) Templates – Set your theme(i) Home Page Slider – If you have a slider on the home page, then set the images for it(i) Logo – Upload your store logo(i) Theme Widgets – If theme supports specific widgets, you can customize them here(i) Standard Widgets – Customize standard widgets(i) Live Customization – Open the live view and lets you customize(i) Theme Settings – Lets you customize the theme(i) Image Dimensions – Lets you set how big your images should look in various parts of the storeConclusionKartRocket offers quite a good level of customization on the frontend levelBlogsKartRocket also allows you to start a blog directly on the store.However, I would not recommend starting a blog on the store itself.It is recommended that you install a blogging CMS like wordpress in a subdirectory so that the blog would be accessible as www.yourstore.com/blog.For help, contact the KartRocket support team.ConclusionKartRocket has a blog functionality, but it is extremely limitedCouponsKartRocket has the functionality of creating coupon codes so that you can use them for marketing purposes.Lets explore the various options availableThere are quite a lot of options available.Some of the points to note(v) You can select percentage discount or fixed discount(v) You can set minimum purchase price(v) You can select specific product or category for coupon(v) You can set coupon only for registered customers(v) You can specify a date range for the coupon(v) You can specify how many times a coupon can be used(x) You cannot create coupons in bulk(x) You cannot set particular user for a coupon(x) You cannot import coupons, this is useful when distributing physical coupons for promotionConclusionThe coupon system has plenty of features, but it can still be improvedProduct ReviewsIt’s not secret that product reviews are extremely important for an online store.Most customers will read a product review before making a purchase. This makes a good review system extremely important for an e-commerce store.Lets see how good is the KartRocket review system really is.Surprisingly, the review system is extremely poor.There are many problems here, let me list out a few.(x) There is no setting for a reminder email option for reviews(x) No verified customer reviews(x) There is no option to respond to customer reviews(x) Customer reviews can be edited easily by the store owner, thereby defeating the purpose(x) There is an option of adding new reviews manually from the backend, totally not trustworthy(x) There is no rich snippet support on reviewsConclusionKartRocket Review system is extremely poor and un-trustworthy and needs major improvements.SEO Related FeaturesA good SEO strategy can bring in regular traffic to an online store.For search engines to properly index your website, a good architecture is extremely important.I will try to cover most of on-page SEO elements and see where KartRocket holds up.Let’s review the KartRocket SEO features.When I go to the app section, I see 3 apps dedicated for SEO.I have the 3rd app activated on my store. Let’s see the app features.The app can bulk generate category page URLs, product URLs and other meta information at the click of a button.There are pros and cons of this.(x) The URLs become extremely easy to generate(x) The app does not redirect old URLs to new ones. If you change your URL structure, all old links return 404 errors. That means all the effort going into link building will be ruined if you change URL structure without manually setting up redirects.(x) While there is a redirect app, which helps you redirect old URL’s to new ones, there is an issue. If you bulk export all products to export URLs, the product who’s status is off will be missing from the export. You have to go into the product details to extract the URL manually and set up a redirect. This becomes extremely cumbersome when number of products go up.(x) There is no record of all 404 errors which show up. This can be very useful for redirecting old URL’s to category pages. This is great for SEO and UX as well. This cannot be extracted from the server logs either as there is no access.(x) Category page URLs are always present in the product URL making the product URL extremely long.(x) The SEO app is buggy and does not always generate the appropriate URLs.Here is an example.(x) In this, case the product SKU became the URL, even after the app setting is done at product name.(x) The unlimited scroll via Ajax is not paginated as per Google guidelines and many of your products will not be indexed because of that. That is bad for SEO.(x) There is absolutely no support for rich snippets. Not for products, not for reviews.KartRocket inserts a backlink to their site on all pages of your website. This is a poor and shady SEO practice.Duplicate ContentDuplicate content on KartRocket is such a big issue that I will dedicate some time to explain the issue in detail.Let us consider a scenario in which a product on your store in present in 3 categories.Store->Category 1->Product 1Store->Category 2->Product 1Store->Category 3->Product 1Search engines are not smart enough to understand this yet. They will scan your store and find the same product in 3 categories, then they will mark this as duplicate content i.e you are using the same content and repeating it on multiple areas of your website.The solution to this problem is via using a <ref canonical> tag. By using this tag, you tell the search engine about 1 copy of the product that you want to be indexed. The search engine will understand that the rest are copies of the same.The categories will look like this in that scenario.Store->Category 1->Product 1Store->Category 2->Product 1 [<ref canonical category 1 -> Product 1]Store->Category 2->Product 1 [<ref canonical category 1 > Product 1]This way the search engine will know that the original product is in category 1 and category 2 and category 3 are displaying the same product.Surprisingly, KartRocket does not implement canonical tags anywhere, this causes a ton of duplicate to be created on your website.To put this in perspective, let’s take a real life example.Let’s assume you are selling T-shirts online. You have a product, a red tshirt in 4 sizes (S, M, L, XL) with a funny graphic on it.Now the many ways the customer can look for the tshirt will be:Store -> Size M -> ProductStore -> Red Tshirt -> ProductStore ->Tshirt Category -> ProductStore -> Red Color -> ProductStore -> Funny -> ProductStore -> Sale -> ProductIn all these cases, the same product will be accessible by different URLs, thus creating duplicate content.The issue is exaggerated greatly by how KartRocket handles filtering of products. Let’s get into some examples.Here is the category page for Dressmyphone Moto E 2nd Generation Covers.Notice the sorting options and the page URL.Now I will sort products differently.Yikes! An entirely new URL! This means with every filtering that you apply, duplicate content is being created for every product. This is a gigantic problem as so much duplicate content can get you penalized.But wait, there’s more!If this much duplicate content wasn’t enough, there is another duplicate content issue that is probably the biggest. Its related to the product search.How does the product search create duplicate content? Let me show you how.Let’s say I am looking for Sony Xperia C3 covers on Dressmyphone. I type it into the search bar and get to this page.If you notice there is an entirely new URL created on which these products are shown.For the search engine this should be new content, but since its the same products this will increase the amount of duplicate content.Now think about this, how many words do you think the customer can type into the search that will show any kind of products?Probably unlimited.For every new search performed, there will be duplicate content created.To make the problem even worse, there are filtering options on the page that will create yet more URLs and all of those will make the duplicate content problem worse.To understand the duplicate content issue, read this article.To tackle this issue somewhat, read this official guide from Google.ConclusionKartRocket has a extremely poor SEO feature base and it needs drastic improvement.KartRocket APIAPI stands for Application Programmable Interface. In the simplest of words, its how 2 softwares can communicate with each other.KartRocket provides an API for doing things programatically that can help automate many of the day to day tasks.The API is available here. Lets see what it offers.The following API calls are availableSince going into each call and reviewing it will be another post in itself, I will just highlight the basic functionalities that are available.(v) You can add new products(v) You can add orders manually(v) You can fetch product data(v) You can fetch order information(v) You can update product information(v) You can update order information(x) API is extremely slow(x) API is very limited, you can only do basic updates, fetches(x) The API documentation should be more detailed(x) There are no hooks for detailed functionalityConclusionKartRocket does have an API but its extremely limited. You can get some amount of automation done via the API.PerformanceIn performance, I will be testing loading times and page optimizations done by KartRocket.I will use a service known as gtmetrix.com for this test.Let’s see how the test goes.As you can see, the page loading time is extremely poor, close to 4 seconds and the page size is around 1 MB. This is poor performance.Let’s see specific issues.(x) Around 600 KB of Javascript is loaded each time the page is loaded. This is poor optimization.(x) Javascript should be loaded at the end of the page, this will atleast double the website loading speed(x) Jquery Library is being locally loaded (170 Kb). This is just a waste of resources and bandwidth.ConclusionKartRocket Store has poor performance, but can be easily fixed.Missing Features and BugsWhile I have already mentioned all the basic missing features in particular sections of this KartRocket review, I will jot down the most important missing features here again.I will also list down the most common bugs that I have found while using this platform.I will divide these by categories as I have done this review.Missing FeaturesHere is a master list that jots down all the essential features that KartRocket does not have.KartRocket Missing FeaturesNo rich menu optionsNo option to push specific products to homepageNo option to bulk re-order productsNo ajax searchSearch is not loggedNo option cofigure mis-spellings for searchCOD fee is applied at the last step in checkoutNo option to see abandoned cartNo option to email abandoned cart customersNo rich snippet supportNo option for customers to opt-in for notifications for OOS productsNo option to customize user emailsNon Shiprocket customers will not be able to send tracking link in emailsNo option to put MRP and selling price while uploading single productNo category level tax implementationNo picklist creation optionNo advanced blogging featuresNo feature for Bulk coupon generationNo feature for coupon code importPoor review systemNo automatic redirection for old URLNo 404 loggingLong friendly URLAjax search is bad for indexingLots of duplicate content creationExtremely limited APISlow API performanceNo hooksExtremely slow store performancePoor on page Javascript performanceAffiliate Program is extremely limited3rd Party cannot develop pluginsKnown BugsI have found and reported plenty of bugs to the KartRocket team many times.Here is a list that jots down all of the ones I know of.KartRocket Known BugsProduct search always searches exact termsBulk import tool does not throw any errorsBulk import tool does not import all imagesBulk import tool does not support remote imagesBulk import sometimes messes with the cacheImages with same file names causes problemsMaster export does not export products with status offProduct reviews can be fully edited and changed from backendCustomer search using e-mail address does not workSEO tool does not regenerate URLs properly many timesKartRocket SupportWhile support is a subjective matter, I can share my personal experience with KartRocket support issues.I have had a low number of problems with KartRocket in the first place. For each issue, I raised a ticket via KartRocket support.The response times aren’t extremely great, but the issues have been resolved fairly quickly.It’s worth noting that I have had issues resolved much quickly if I contact my account manager via phone directly.ConclusionKartRocket support is good. For critical issues, you should contact your account manager for faster resolution.Everything ElseIn this section I would like to point an important consideration you should make when start an online store. I am specifically talking about choosing between a hosted solution vs a self hosted solution.The discussion comes down to Speed vs Flexibility. When you choose a hosted solution you can go live pretty faster (speed) but you lose all kinds of flexibility. Also, you are essentially locked in with CMS that the hosted solution provides.Consider this.If instead of KartRocket, if I used OpenCart to run my store. I would have had to spend some money to get started, but I would have much more flexibility to add features on the fly.If I wanted to get a better review system, all I had to do was find a compatible plugin and boom, the feature would be present.With KartRocket, this is not an option, even when KartRocket is based entirely on OpenCart.Even if I request a certain feature, there is no guarantee that this feature will be even present in KartRocket at all. Personally, I find that situation hard to be in.ConclusionKartRocket is a great solution for people with limited technical skills to get started. It is also a workable solution for someone who wants to validate their idea quickly and cheaply. However, for a serious e-commerce business, I wouldn’t advice KartRocket as a solution to go for. It might be useful to get started, but not when you want to seriously grow your business.Bonus TLDRNot everyone will read the entire article, and that’s ok.For the busy people, I will make a simple table of where KartRocket shines and where it needs to be shined.Where KartRocket ShinesKartRocket Positive PointsQuick and Easy Set UpAffordable PlansAutomated ShippingMany Themes AvailableFacebook LoginFree Payment Gateway IntegrationCOD and Mobile Number VerificationCustomizable Front EndBulk Order ProcessingWhere KartRocket Fails to ShineKartRocket Negative PointsPoor Top Menu OptionsLimited Product SearchBuggy Bulk ImportLimited Blogging PlatformPoor Product Review FeaturesNo Rich Snippet SupportExtremely Poor SEO FeaturesLimited and Slow APIPoor Store SpeedPS: This originally appeared here -> KartRocket Reviewed - Growing Commerce | 3000 word guideLet me know if anyone has specific questions.

View Our Customer Reviews

I love how documents can be reviewed and signed on the go. With CocoDoc, I open my mobile email and view the document for my signature. Then I can either draw my signature or type my initials. Alongside this, we no longer use paper so we saved a lot of costs and trees.

Justin Miller