Alternatives to AdonisJS logo

Alternatives to AdonisJS

Sails.js, NestJS, Laravel, FeathersJS, and LoopBack are the most popular alternatives and competitors to AdonisJS.
206
451
+ 1
122

What is AdonisJS and what are its top alternatives?

It is a Node.js Framework which is highly focused on developer ergonomics, stability and confidence.
AdonisJS is a tool in the Frameworks (Full Stack) category of a tech stack.

Top Alternatives to AdonisJS

  • Sails.js
    Sails.js

    Sails is designed to mimic the MVC pattern of frameworks like Ruby on Rails, but with support for the requirements of modern apps: data-driven APIs with scalable, service-oriented architecture. ...

  • NestJS
    NestJS

    Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming). Under the hood, Nest makes use of Express, but also, provides compatibility with a wide range of other libraries, like e.g. Fastify, allowing for easy use of the myriad third-party plugins which are available. ...

  • Laravel
    Laravel

    It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching. ...

  • FeathersJS
    FeathersJS

    Feathers is a real-time, micro-service web framework for NodeJS that gives you control over your data via RESTful resources, sockets and flexible plug-ins. ...

  • LoopBack
    LoopBack

    A highly-extensible, open-source Node.js framework that enables you to create dynamic end-to-end REST APIs with little or no coding. Connect to multiple data sources, write business logic in Node.js, glue on top of your existing services and data, connect using JS, iOS & Android SDKs. ...

  • Django
    Django

    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. ...

  • JavaScript
    JavaScript

    JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles. ...

  • Git
    Git

    Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. ...

AdonisJS alternatives & related posts

Sails.js logo

Sails.js

337
509
296
Realtime MVC Framework for Node.js
337
509
+ 1
296
PROS OF SAILS.JS
  • 49
    Data-driven apis
  • 47
    Waterline ORM
  • 37
    Mvc
  • 32
    Easy rest
  • 25
    Real-time
  • 21
    Open source
  • 19
    Service-oriented architecture
  • 18
    Scalable
  • 10
    Convension over configuration
  • 9
    Rails-like asset pipeline
  • 9
    Node machines and machinepacks
  • 7
    Easy route/controller generation
  • 6
    Ruby on Rails basic stuff for JS devs
  • 3
    CLI for scaffolding project pieces
  • 3
    WebSocket support
  • 1
    Supportive community
CONS OF SAILS.JS
  • 5
    Waterline ORM
  • 4
    Defaults to VueJS
  • 0
    Standard MVC

related Sails.js posts

Collins Ogbuzuru
Front-end dev at Evolve credit · | 19 upvotes · 18.4K views

Your tech stack is solid for building a real-time messaging project.

React and React Native are excellent choices for the frontend, especially if you want to have both web and mobile versions of your application share code.

ExpressJS is an unopinionated framework that affords you the flexibility to use it's features at your term, which is a good start. However, I would recommend you explore Sails.js as well. Sails.js is built on top of Express.js and it provides additional features out of the box, especially the Websocket integration that your project requires.

Don't forget to set up Graphql codegen, this would improve your dev experience (Add Typescript, if you can too).

I don't know much about databases but you might want to consider using NO-SQL. I used Firebase real-time db and aws dynamo db on a few of my personal projects and I love they're easy to work with and offer more flexibility for a chat application.

See more

We have an existing (Apis only) Rails backend, that by default follows the MVC pattern, (at peaks of 700 requests a second). I am tasked with making the same (read-heavy) application in any JavaScript framework. I was advised to follow the MVC structure. So I am considering these 3 ( Sails.js, LoopBack, NestJS). I get that sails is closest to rails, but that's not particularly a priority.

See more
NestJS logo

NestJS

2.4K
2.9K
326
A progressive Node.js framework for building efficient and scalable server-side applications by @kammysliwiec.
2.4K
2.9K
+ 1
326
PROS OF NESTJS
  • 54
    Powerful but super friendly to work with
  • 42
    Fast development
  • 40
    Easy to understand documentation
  • 36
    Angular style syntax for the backend
  • 32
    NodeJS ecosystem
  • 31
    Typescript
  • 27
    Its easy to understand since it follows angular syntax
  • 18
    Good architecture
  • 13
    Integrates with Narwhal Extensions
  • 12
    Typescript makes it well integrated in vscode
  • 8
    Graphql support easy
  • 7
    Agnosticism
  • 5
    Easily integrate with others external extensions
  • 1
    Official courses
CONS OF NESTJS
  • 10
    Difficult to debug
  • 10
    User base is small. Less help on Stackoverflow
  • 5
    Angular-like architecture
  • 3
    Updates with breaking changes
  • 3
    Javascript
  • 1
    Frontend in backend
  • 1
    Unstable

related NestJS posts

Simon Reymann
Senior Fullstack Developer at QUANTUSflow Software GmbH · | 27 upvotes · 4.8M views

Our whole Node.js backend stack consists of the following tools:

  • Lerna as a tool for multi package and multi repository management
  • npm as package manager
  • NestJS as Node.js framework
  • TypeScript as programming language
  • ExpressJS as web server
  • Swagger UI for visualizing and interacting with the API’s resources
  • Postman as a tool for API development
  • TypeORM as object relational mapping layer
  • JSON Web Token for access token management

The main reason we have chosen Node.js over PHP is related to the following artifacts:

  • Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
  • Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
  • A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
  • Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
See more
Jan Vlnas
Developer Advocate at Superface · | 12 upvotes · 323.7K views

Our framework of choice for backend at Superface is NestJS. We also use AppSignal for APM and error tracking. While AppSignal provides some basic integration for Node.js, getting the monitoring to work with Nest was a bit tricky. Check out our blog post on Integrating AppSignal APM with NestJS how we made it work.

See more
Laravel logo

Laravel

27.6K
23K
3.9K
A PHP Framework For Web Artisans
27.6K
23K
+ 1
3.9K
PROS OF LARAVEL
  • 553
    Clean architecture
  • 392
    Growing community
  • 370
    Composer friendly
  • 344
    Open source
  • 324
    The only framework to consider for php
  • 220
    Mvc
  • 210
    Quickly develop
  • 168
    Dependency injection
  • 156
    Application architecture
  • 143
    Embraces good community packages
  • 73
    Write less, do more
  • 71
    Orm (eloquent)
  • 66
    Restful routing
  • 57
    Database migrations & seeds
  • 55
    Artisan scaffolding and migrations
  • 41
    Great documentation
  • 40
    Awesome
  • 30
    Awsome, Powerfull, Fast and Rapid
  • 29
    Build Apps faster, easier and better
  • 28
    Eloquent ORM
  • 26
    Promotes elegant coding
  • 26
    Modern PHP
  • 26
    JSON friendly
  • 25
    Most easy for me
  • 24
    Easy to learn, scalability
  • 23
    Beautiful
  • 22
    Blade Template
  • 21
    Test-Driven
  • 15
    Security
  • 15
    Based on SOLID
  • 13
    Clean Documentation
  • 13
    Easy to attach Middleware
  • 13
    Cool
  • 12
    Simple
  • 12
    Convention over Configuration
  • 11
    Easy Request Validatin
  • 10
    Simpler
  • 10
    Fast
  • 10
    Easy to use
  • 9
    Get going quickly straight out of the box. BYOKDM
  • 9
    Its just wow
  • 8
    Laravel + Cassandra = Killer Framework
  • 8
    Simplistic , easy and faster
  • 8
    Friendly API
  • 7
    Less dependencies
  • 7
    Super easy and powerful
  • 6
    Great customer support
  • 6
    Its beautiful to code in
  • 5
    Speed
  • 5
    Eloquent
  • 5
    Composer
  • 5
    Minimum system requirements
  • 5
    Laravel Mix
  • 5
    Easy
  • 5
    The only "cons" is wrong! No static method just Facades
  • 5
    Fast and Clarify framework
  • 5
    Active Record
  • 5
    Php7
  • 4
    Ease of use
  • 4
    Laragon
  • 4
    Laravel casher
  • 4
    Easy views handling and great ORM
  • 4
    Laravel Forge and Envoy
  • 4
    Cashier with Braintree and Stripe
  • 3
    Laravel Passport
  • 3
    Laravel Spark
  • 3
    Intuitive usage
  • 3
    Laravel Horizon and Telescope
  • 3
    Laravel Nova
  • 3
    Rapid development
  • 2
    Laravel Vite
  • 2
    Scout
  • 2
    Deployment
  • 1
    Succint sintax
CONS OF LARAVEL
  • 54
    PHP
  • 33
    Too many dependency
  • 23
    Slower than the other two
  • 17
    A lot of static method calls for convenience
  • 15
    Too many include
  • 13
    Heavy
  • 9
    Bloated
  • 8
    Laravel
  • 7
    Confusing
  • 5
    Too underrated
  • 4
    Not fast with MongoDB
  • 1
    Slow and too much big
  • 1
    Not using SOLID principles
  • 1
    Difficult to learn

related Laravel posts

I need to build a web application plus android and IOS apps for an enterprise, like an e-commerce portal. It will have intensive use of MySQL to display thousands (40-50k) of live product information in an interactive table (searchable, filterable), live delivery tracking. It has to be secure, as it will handle information on customers, sales, inventory. Here is the technology stack: Backend: Laravel 7 Frondend: Vue.js, React or AngularJS?

Need help deciding technology stack. Thanks.

See more
Christopher Wray
Web Developer at Soltech LLC · | 15 upvotes · 173.5K views

This week, we finally released NurseryPeople.com. In the end, I chose to provision our server on DigitalOcean. So far, I am SO happy with that decision. Although setting everything up was a challenge, and I learned a lot, DigitalOceans blogs helped in so many ways. I was able to set up nginx and the Laravel web app pretty smoothly. I am also using Buddy for deploying changes made in git, which is super awesome. All I have to do in order to deploy is push my code to my private repo, and buddy transfers everything over to DigitalOcean. So far, we haven't had any downtime and DigitalOceans prices are quite fair for the power under the hood.

See more
FeathersJS logo

FeathersJS

164
341
70
Real-time, micro-service web framework for NodeJS
164
341
+ 1
70
PROS OF FEATHERSJS
  • 12
    Real-time
  • 7
    Choose any ORM
  • 7
    Datastore Agnostic
  • 6
    Flexible Plugins
  • 5
    Choose Socketio or Primus
  • 4
    Easy Rest
  • 4
    Isomorphic Services API
  • 4
    Open source
  • 3
    Scalable
  • 3
    Easy to use with Graphql
  • 3
    Documentation
  • 3
    Service-oriented architecture
  • 3
    Data-driven APIs
  • 3
    Uses express, will support other options soon
  • 3
    Advanced Composable Service Middleware called holds
CONS OF FEATHERSJS
    Be the first to leave a con

    related FeathersJS posts

    Quasar Framework FeathersJS Node.js Vue.js SendinBlue Zeit Now GitHub

    It was almost too easy to build a complete Feathers Rest API combined with Quasar SSR and reactive form that we are serving through an i-frame within our main site for serving our newsletter signup and opt-in page. Total time: 15 hrs. Check it out:

    https://quasar.dev/newsletter

    See more

    Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

    We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

    See more
    LoopBack logo

    LoopBack

    287
    556
    33
    Build modern API applications that require complex integrations
    287
    556
    + 1
    33
    PROS OF LOOPBACK
    • 11
      Need a nodejs ReST-API, DB, AAA, Swagger? Then loopback
    • 9
      Easy Database Migration
    • 6
      Code generator
    • 4
      The future of API's
    • 2
      GraphQL
    • 1
      Typescript
    CONS OF LOOPBACK
    • 7
      Community is slow
    • 1
      Backward compatibility

    related LoopBack posts

    Priit Kaasik
    CTO at Katana Cloud Inventory · | 8 upvotes · 420.3K views

    We undertook the task of building a manufacturing ERP for small branded manufacturers. We needed to build a lot, fast with a small team, and have clear focus on product delivery. We chose JavaScript / Node.js ( React + LoopBack full stack) , Heroku and Heroku Postgres (also Heroku Redis ) . This decision has guided us to picking other key technologies. It has granted us high pace of product delivery and service availability while operating with a small team.

    See more

    We have an existing (Apis only) Rails backend, that by default follows the MVC pattern, (at peaks of 700 requests a second). I am tasked with making the same (read-heavy) application in any JavaScript framework. I was advised to follow the MVC structure. So I am considering these 3 ( Sails.js, LoopBack, NestJS). I get that sails is closest to rails, but that's not particularly a priority.

    See more
    Django logo

    Django

    37.1K
    33.6K
    4.2K
    The Web framework for perfectionists with deadlines
    37.1K
    33.6K
    + 1
    4.2K
    PROS OF DJANGO
    • 671
      Rapid development
    • 487
      Open source
    • 424
      Great community
    • 379
      Easy to learn
    • 276
      Mvc
    • 232
      Beautiful code
    • 223
      Elegant
    • 206
      Free
    • 203
      Great packages
    • 194
      Great libraries
    • 79
      Comes with auth and crud admin panel
    • 79
      Restful
    • 78
      Powerful
    • 75
      Great documentation
    • 71
      Great for web
    • 57
      Python
    • 43
      Great orm
    • 41
      Great for api
    • 32
      All included
    • 29
      Fast
    • 25
      Web Apps
    • 23
      Easy setup
    • 23
      Clean
    • 21
      Used by top startups
    • 19
      Sexy
    • 19
      ORM
    • 15
      The Django community
    • 14
      Allows for very rapid development with great libraries
    • 14
      Convention over configuration
    • 11
      King of backend world
    • 10
      Full stack
    • 10
      Great MVC and templating engine
    • 8
      Fast prototyping
    • 8
      Mvt
    • 7
      Easy to develop end to end AI Models
    • 7
      Batteries included
    • 7
      Its elegant and practical
    • 6
      Have not found anything that it can't do
    • 6
      Very quick to get something up and running
    • 6
      Cross-Platform
    • 5
      Easy Structure , useful inbuilt library
    • 5
      Great peformance
    • 5
      Zero code burden to change databases
    • 5
      Python community
    • 4
      Map
    • 4
      Just the right level of abstraction
    • 4
      Easy to change database manager
    • 4
      Modular
    • 4
      Many libraries
    • 4
      Easy to use
    • 4
      Easy
    • 4
      Full-Text Search
    • 3
      Scaffold
    • 1
      Fastapi
    • 1
      Built in common security
    • 1
      Scalable
    • 1
      Great default admin panel
    • 1
      Node js
    • 1
      Gigante ta
    • 0
      Rails
    CONS OF DJANGO
    • 26
      Underpowered templating
    • 22
      Autoreload restarts whole server
    • 22
      Underpowered ORM
    • 15
      URL dispatcher ignores HTTP method
    • 10
      Internal subcomponents coupling
    • 8
      Not nodejs
    • 8
      Configuration hell
    • 7
      Admin
    • 5
      Not as clean and nice documentation like Laravel
    • 4
      Python
    • 3
      Not typed
    • 3
      Bloated admin panel included
    • 2
      Overwhelming folder structure
    • 2
      InEffective Multithreading
    • 1
      Not type safe

    related Django posts

    Dmitry Mukhin
    Engineer at Uploadcare · | 25 upvotes · 2.4M views

    Simple controls over complex technologies, as we put it, wouldn't be possible without neat UIs for our user areas including start page, dashboard, settings, and docs.

    Initially, there was Django. Back in 2011, considering our Python-centric approach, that was the best choice. Later, we realized we needed to iterate on our website more quickly. And this led us to detaching Django from our front end. That was when we decided to build an SPA.

    For building user interfaces, we're currently using React as it provided the fastest rendering back when we were building our toolkit. It’s worth mentioning Uploadcare is not a front-end-focused SPA: we aren’t running at high levels of complexity. If it were, we’d go with Ember.js.

    However, there's a chance we will shift to the faster Preact, with its motto of using as little code as possible, and because it makes more use of browser APIs. One of our future tasks for our front end is to configure our Webpack bundler to split up the code for different site sections. For styles, we use PostCSS along with its plugins such as cssnano which minifies all the code.

    All that allows us to provide a great user experience and quickly implement changes where they are needed with as little code as possible.

    See more

    Hey, so I developed a basic application with Python. But to use it, you need a python interpreter. I want to add a GUI to make it more appealing. What should I choose to develop a GUI? I have very basic skills in front end development (CSS, JavaScript). I am fluent in python. I'm looking for a tool that is easy to use and doesn't require too much code knowledge. I have recently tried out Flask, but it is kinda complicated. Should I stick with it, move to Django, or is there another nice framework to use?

    See more
    JavaScript logo

    JavaScript

    352.7K
    268.4K
    8.1K
    Lightweight, interpreted, object-oriented language with first-class functions
    352.7K
    268.4K
    + 1
    8.1K
    PROS OF JAVASCRIPT
    • 1.7K
      Can be used on frontend/backend
    • 1.5K
      It's everywhere
    • 1.2K
      Lots of great frameworks
    • 897
      Fast
    • 745
      Light weight
    • 425
      Flexible
    • 392
      You can't get a device today that doesn't run js
    • 286
      Non-blocking i/o
    • 237
      Ubiquitousness
    • 191
      Expressive
    • 55
      Extended functionality to web pages
    • 49
      Relatively easy language
    • 46
      Executed on the client side
    • 30
      Relatively fast to the end user
    • 25
      Pure Javascript
    • 21
      Functional programming
    • 15
      Async
    • 13
      Full-stack
    • 12
      Setup is easy
    • 12
      Future Language of The Web
    • 12
      Its everywhere
    • 11
      Because I love functions
    • 11
      JavaScript is the New PHP
    • 10
      Like it or not, JS is part of the web standard
    • 9
      Expansive community
    • 9
      Everyone use it
    • 9
      Can be used in backend, frontend and DB
    • 9
      Easy
    • 8
      Most Popular Language in the World
    • 8
      Powerful
    • 8
      Can be used both as frontend and backend as well
    • 8
      For the good parts
    • 8
      No need to use PHP
    • 8
      Easy to hire developers
    • 7
      Agile, packages simple to use
    • 7
      Love-hate relationship
    • 7
      Photoshop has 3 JS runtimes built in
    • 7
      Evolution of C
    • 7
      It's fun
    • 7
      Hard not to use
    • 7
      Versitile
    • 7
      Its fun and fast
    • 7
      Nice
    • 7
      Popularized Class-Less Architecture & Lambdas
    • 7
      Supports lambdas and closures
    • 6
      It let's me use Babel & Typescript
    • 6
      Can be used on frontend/backend/Mobile/create PRO Ui
    • 6
      1.6K Can be used on frontend/backend
    • 6
      Client side JS uses the visitors CPU to save Server Res
    • 6
      Easy to make something
    • 5
      Clojurescript
    • 5
      Promise relationship
    • 5
      Stockholm Syndrome
    • 5
      Function expressions are useful for callbacks
    • 5
      Scope manipulation
    • 5
      Everywhere
    • 5
      Client processing
    • 5
      What to add
    • 4
      Because it is so simple and lightweight
    • 4
      Only Programming language on browser
    • 1
      Test
    • 1
      Hard to learn
    • 1
      Test2
    • 1
      Not the best
    • 1
      Easy to understand
    • 1
      Subskill #4
    • 1
      Easy to learn
    • 0
      Hard 彤
    CONS OF JAVASCRIPT
    • 22
      A constant moving target, too much churn
    • 20
      Horribly inconsistent
    • 15
      Javascript is the New PHP
    • 9
      No ability to monitor memory utilitization
    • 8
      Shows Zero output in case of ANY error
    • 7
      Thinks strange results are better than errors
    • 6
      Can be ugly
    • 3
      No GitHub
    • 2
      Slow

    related JavaScript posts

    Zach Holman

    Oof. I have truly hated JavaScript for a long time. Like, for over twenty years now. Like, since the Clinton administration. It's always been a nightmare to deal with all of the aspects of that silly language.

    But wowza, things have changed. Tooling is just way, way better. I'm primarily web-oriented, and using React and Apollo together the past few years really opened my eyes to building rich apps. And I deeply apologize for using the phrase rich apps; I don't think I've ever said such Enterprisey words before.

    But yeah, things are different now. I still love Rails, and still use it for a lot of apps I build. But it's that silly rich apps phrase that's the problem. Users have way more comprehensive expectations than they did even five years ago, and the JS community does a good job at building tools and tech that tackle the problems of making heavy, complicated UI and frontend work.

    Obviously there's a lot of things happening here, so just saying "JavaScript isn't terrible" might encompass a huge amount of libraries and frameworks. But if you're like me, yeah, give things another shot- I'm somehow not hating on JavaScript anymore and... gulp... I kinda love it.

    See more
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber · | 44 upvotes · 10.9M views

    How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

    Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

    Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

    https://eng.uber.com/distributed-tracing/

    (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

    Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

    See more
    Git logo

    Git

    291.7K
    175K
    6.6K
    Fast, scalable, distributed revision control system
    291.7K
    175K
    + 1
    6.6K
    PROS OF GIT
    • 1.4K
      Distributed version control system
    • 1.1K
      Efficient branching and merging
    • 959
      Fast
    • 845
      Open source
    • 726
      Better than svn
    • 368
      Great command-line application
    • 306
      Simple
    • 291
      Free
    • 232
      Easy to use
    • 222
      Does not require server
    • 27
      Distributed
    • 22
      Small & Fast
    • 18
      Feature based workflow
    • 15
      Staging Area
    • 13
      Most wide-spread VSC
    • 11
      Role-based codelines
    • 11
      Disposable Experimentation
    • 7
      Frictionless Context Switching
    • 6
      Data Assurance
    • 5
      Efficient
    • 4
      Just awesome
    • 3
      Github integration
    • 3
      Easy branching and merging
    • 2
      Compatible
    • 2
      Flexible
    • 2
      Possible to lose history and commits
    • 1
      Rebase supported natively; reflog; access to plumbing
    • 1
      Light
    • 1
      Team Integration
    • 1
      Fast, scalable, distributed revision control system
    • 1
      Easy
    • 1
      Flexible, easy, Safe, and fast
    • 1
      CLI is great, but the GUI tools are awesome
    • 1
      It's what you do
    • 0
      Phinx
    CONS OF GIT
    • 16
      Hard to learn
    • 11
      Inconsistent command line interface
    • 9
      Easy to lose uncommitted work
    • 7
      Worst documentation ever possibly made
    • 5
      Awful merge handling
    • 3
      Unexistent preventive security flows
    • 3
      Rebase hell
    • 2
      When --force is disabled, cannot rebase
    • 2
      Ironically even die-hard supporters screw up badly
    • 1
      Doesn't scale for big data

    related Git posts

    Simon Reymann
    Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 9.7M views

    Our whole DevOps stack consists of the following tools:

    • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
    • Respectively Git as revision control system
    • SourceTree as Git GUI
    • Visual Studio Code as IDE
    • CircleCI for continuous integration (automatize development process)
    • Prettier / TSLint / ESLint as code linter
    • SonarQube as quality gate
    • Docker as container management (incl. Docker Compose for multi-container application management)
    • VirtualBox for operating system simulation tests
    • Kubernetes as cluster management for docker containers
    • Heroku for deploying in test environments
    • nginx as web server (preferably used as facade server in production environment)
    • SSLMate (using OpenSSL) for certificate management
    • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
    • PostgreSQL as preferred database system
    • Redis as preferred in-memory database/store (great for caching)

    The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

    • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
    • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
    • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
    • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
    • Scalability: All-in-one framework for distributed systems.
    • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
    See more
    Tymoteusz Paul
    Devops guy at X20X Development LTD · | 23 upvotes · 8.7M views

    Often enough I have to explain my way of going about setting up a CI/CD pipeline with multiple deployment platforms. Since I am a bit tired of yapping the same every single time, I've decided to write it up and share with the world this way, and send people to read it instead ;). I will explain it on "live-example" of how the Rome got built, basing that current methodology exists only of readme.md and wishes of good luck (as it usually is ;)).

    It always starts with an app, whatever it may be and reading the readmes available while Vagrant and VirtualBox is installing and updating. Following that is the first hurdle to go over - convert all the instruction/scripts into Ansible playbook(s), and only stopping when doing a clear vagrant up or vagrant reload we will have a fully working environment. As our Vagrant environment is now functional, it's time to break it! This is the moment to look for how things can be done better (too rigid/too lose versioning? Sloppy environment setup?) and replace them with the right way to do stuff, one that won't bite us in the backside. This is the point, and the best opportunity, to upcycle the existing way of doing dev environment to produce a proper, production-grade product.

    I should probably digress here for a moment and explain why. I firmly believe that the way you deploy production is the same way you should deploy develop, shy of few debugging-friendly setting. This way you avoid the discrepancy between how production work vs how development works, which almost always causes major pains in the back of the neck, and with use of proper tools should mean no more work for the developers. That's why we start with Vagrant as developer boxes should be as easy as vagrant up, but the meat of our product lies in Ansible which will do meat of the work and can be applied to almost anything: AWS, bare metal, docker, LXC, in open net, behind vpn - you name it.

    We must also give proper consideration to monitoring and logging hoovering at this point. My generic answer here is to grab Elasticsearch, Kibana, and Logstash. While for different use cases there may be better solutions, this one is well battle-tested, performs reasonably and is very easy to scale both vertically (within some limits) and horizontally. Logstash rules are easy to write and are well supported in maintenance through Ansible, which as I've mentioned earlier, are at the very core of things, and creating triggers/reports and alerts based on Elastic and Kibana is generally a breeze, including some quite complex aggregations.

    If we are happy with the state of the Ansible it's time to move on and put all those roles and playbooks to work. Namely, we need something to manage our CI/CD pipelines. For me, the choice is obvious: TeamCity. It's modern, robust and unlike most of the light-weight alternatives, it's transparent. What I mean by that is that it doesn't tell you how to do things, doesn't limit your ways to deploy, or test, or package for that matter. Instead, it provides a developer-friendly and rich playground for your pipelines. You can do most the same with Jenkins, but it has a quite dated look and feel to it, while also missing some key functionality that must be brought in via plugins (like quality REST API which comes built-in with TeamCity). It also comes with all the common-handy plugins like Slack or Apache Maven integration.

    The exact flow between CI and CD varies too greatly from one application to another to describe, so I will outline a few rules that guide me in it: 1. Make build steps as small as possible. This way when something breaks, we know exactly where, without needing to dig and root around. 2. All security credentials besides development environment must be sources from individual Vault instances. Keys to those containers should exist only on the CI/CD box and accessible by a few people (the less the better). This is pretty self-explanatory, as anything besides dev may contain sensitive data and, at times, be public-facing. Because of that appropriate security must be present. TeamCity shines in this department with excellent secrets-management. 3. Every part of the build chain shall consume and produce artifacts. If it creates nothing, it likely shouldn't be its own build. This way if any issue shows up with any environment or version, all developer has to do it is grab appropriate artifacts to reproduce the issue locally. 4. Deployment builds should be directly tied to specific Git branches/tags. This enables much easier tracking of what caused an issue, including automated identifying and tagging the author (nothing like automated regression testing!).

    Speaking of deployments, I generally try to keep it simple but also with a close eye on the wallet. Because of that, I am more than happy with AWS or another cloud provider, but also constantly peeking at the loads and do we get the value of what we are paying for. Often enough the pattern of use is not constantly erratic, but rather has a firm baseline which could be migrated away from the cloud and into bare metal boxes. That is another part where this approach strongly triumphs over the common Docker and CircleCI setup, where you are very much tied in to use cloud providers and getting out is expensive. Here to embrace bare-metal hosting all you need is a help of some container-based self-hosting software, my personal preference is with Proxmox and LXC. Following that all you must write are ansible scripts to manage hardware of Proxmox, similar way as you do for Amazon EC2 (ansible supports both greatly) and you are good to go. One does not exclude another, quite the opposite, as they can live in great synergy and cut your costs dramatically (the heavier your base load, the bigger the savings) while providing production-grade resiliency.

    See more