├── .vscode └── settings.json ├── LICENSE └── README.md /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.colorCustomizations": { 3 | "activityBar.activeBackground": "#65c89b", 4 | "activityBar.background": "#65c89b", 5 | "activityBar.foreground": "#15202b", 6 | "activityBar.inactiveForeground": "#15202b99", 7 | "activityBarBadge.background": "#945bc4", 8 | "activityBarBadge.foreground": "#e7e7e7", 9 | "commandCenter.border": "#15202b99", 10 | "sash.hoverBorder": "#65c89b", 11 | "statusBar.background": "#42b883", 12 | "statusBar.foreground": "#15202b", 13 | "statusBarItem.hoverBackground": "#359268", 14 | "statusBarItem.remoteBackground": "#42b883", 15 | "statusBarItem.remoteForeground": "#15202b", 16 | "titleBar.activeBackground": "#42b883", 17 | "titleBar.activeForeground": "#15202b", 18 | "titleBar.inactiveBackground": "#42b88399", 19 | "titleBar.inactiveForeground": "#15202b99" 20 | }, 21 | "peacock.color": "#42b883" 22 | } 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tech Stack Battle 2 | 3 | Tech Stack Battle (Perbandingan Tech Stack). 4 | 5 | - [x] Casual discussion. 6 | - [x] Only cover the technologies and tools. 7 | - [x] Pros and cons, what suits best or usual cases. 8 | - [x] Not about the core concepts. 9 | - computer science, programming, software architecture, infrastructure, system design, OOP, FP, async, concurrency, DBMS, SQL, NoSQL, DSL, etc 10 | - [x] Would try to not only about the web. 11 | - [x] Let's discuss together, correction if there's something wrong or missing. 12 | 13 | ## Contribute 14 | 15 | Want to contribute or update things? [Fork this repo](https://github.com/catamyst-community/techstack-battle/fork) and open a [Pull Request](https://github.com/catamyst-community/techstack-battle/compare). 16 | 17 | ## CodePolitan x Catamyst 18 | 19 | Bootcamp "Menguasai Frontend Web Development": 20 | 21 | ## Table of Contents 22 | 23 | - [Tech Stack Battle](#tech-stack-battle) 24 | - [Contribute](#contribute) 25 | - [Table of Contents](#table-of-contents) 26 | - [References](#references) 27 | - [Ecosystem](#ecosystem) 28 | - [Operating System](#operating-system) 29 | - [Tooling](#tooling) 30 | - [Documentation](#documentation) 31 | - [Web Runtime](#web-runtime) 32 | - [Web Frontend](#web-frontend) 33 | - [Web Backend](#web-backend) 34 | - [Web Full Stack or Hybrid](#web-full-stack-or-hybrid) 35 | - [Web Tooling, State Management](#web-tooling-state-management) 36 | - [Web Bundler, Transpiler, Tool](#web-bundler-transpiler-tool) 37 | - [Web API](#web-api) 38 | - [Web Testing](#web-testing) 39 | - [Web Deployment](#web-deployment) 40 | - [Database](#database) 41 | - [Database ORM](#database-orm) 42 | - [Database/Backend as a Service](#databasebackend-as-a-service) 43 | - [CMS (Content Management System)](#cms-content-management-system) 44 | - [Mobile Android](#mobile-android) 45 | - [Mobile iOS](#mobile-ios) 46 | - [Mobile Windows Phone](#mobile-windows-phone) 47 | - [Desktop (Mac/Linux/Windows)](#desktop-maclinuxwindows) 48 | - [IoT](#iot) 49 | - [Other Things on Language/Platform](#other-things-on-languageplatform) 50 | - [JavaScript](#javascript) 51 | - [PHP](#php) 52 | - [Java](#java) 53 | - [Kotlin](#kotlin) 54 | - [Scala](#scala) 55 | - [Python](#python) 56 | - [Golang](#golang) 57 | - [Haskell](#haskell) 58 | - [Rust](#rust) 59 | - [Elixir](#elixir) 60 | - [C](#c) 61 | - [C++](#c-1) 62 | - [C\#](#c-2) 63 | - [Objective-C](#objective-c) 64 | - [OCaml](#ocaml) 65 | - [ReScript](#rescript) 66 | - [Prolog](#prolog) 67 | - [R](#r) 68 | - [Misc](#misc) 69 | - [DevOps](#devops) 70 | - [QA](#qa) 71 | - [Blockchain](#blockchain) 72 | 73 | ## References 74 | 75 | - Catamyst Stack: 76 | - Frontend Stack: 77 | 78 | ## Ecosystem 79 | 80 | ### Operating System 81 | 82 | - Apple 83 | - macOS 84 | - iOS 85 | - Microsoft 86 | - Windows 87 | - Windows Phone 88 | - Linux 89 | - Android 90 | - Debian 91 | - Ubuntu 92 | - Kubuntu 93 | - Xubuntu 94 | - Linux Mint 95 | - elementary OS 96 | - Fedora 97 | - RedHat 98 | - CentOS 99 | - OpenSUSE 100 | - Arch 101 | - Manjaro 102 | - [Zorin OS](https://zorin.com/os) - NEW? 103 | - [NixOS](https://nixos.org) - HYPE 104 | 105 | ### Tooling 106 | 107 | - Code Editor 108 | - Microsoft VS Code 109 | - VSCodium 110 | - Monaco Editor 111 | - JetBrains 112 | - Fleet 113 | - IntelliJ IDEA 114 | - WebStorm 115 | - PhpStorm 116 | - ... 117 | - Sublime Text 118 | - Vim 119 | - Neovim 120 | - Emacs 121 | - nano 122 | - Atom - HONORABLE MENTION DED 123 | - Brackets - DED 124 | - Notepad++ - ZOMBIE 125 | - ... 126 | - Online Code Editor 127 | - CodePen 128 | - CodeSandbox 129 | - StackBlitz 130 | - Glitch 131 | - GitHub Codespaces 132 | - JS Bin 133 | - JSFidle 134 | - Replit 135 | - ... 136 | - Terminal 137 | - Hyper 138 | - iTerm 139 | - Warp 140 | - PowerShell 141 | - Shell 142 | - sh 143 | - bash 144 | - zsh 145 | - fish 146 | - Git 147 | - GitHub 148 | - GitLab 149 | - Atlassian Bitbucket 150 | - Gitea 151 | - ... 152 | - Project/Product Management 153 | - Linear 154 | - Atlassian Jira 155 | - Trello 156 | - Asana 157 | - Basecamp 158 | - ... 159 | 160 | ### Documentation 161 | 162 | - Markdown 163 | - MDX 164 | - reStructuredText (RST) 165 | - Textile 166 | - AsciiDoc 167 | - LaTeX 168 | - Mermaid.js 169 | - Pandoc 170 | 171 | ### Web Runtime 172 | 173 | - Node.js 174 | - Deno 175 | - Bun 176 | - Cloudflare Workers (CW) 177 | - Vercel Edge Functions 178 | - AWS Lambda 179 | - PHP 180 | - Python 181 | - Ruby 182 | 183 | ### Web Frontend 184 | 185 | - HTML 186 | - CSS 187 | - Sass 188 | - Stylus - DED? 189 | - Less - ZOMBIE 190 | - Tailwind CSS 191 | - Tailwind UI 192 | - daisyUI 193 | - UnoCSS 194 | - Master CSS 195 | - Bootstrap 196 | - Bulma 197 | - Foundation Framework 198 | - Foundation for Emails 199 | - Semantic UI 200 | - UIkit 201 | - Pure CSS 202 | - JavaScript 203 | - TypeScript 204 | - npm / yarn / pnpm 205 | - JS Library 206 | - jQuery - HONORABLE DED 207 | - Zepto 208 | - React 209 | - Routing 210 | - React Router 211 | - wouter 212 | - Data fetching 213 | - SWR 214 | - TanStack React Query 215 | - urql / URQL 216 | - Apollo GraphQL Client 217 | - UI components 218 | - Ariakit 219 | - Headless UI 220 | - Radix UI 221 | - CSS-in-JS 222 | - styled-components 223 | - emotion 224 | - stitches 225 | - Design system 226 | - MUI 227 | - Chakra UI 228 | - Ant Design 229 | - Preact 230 | - Vue 231 | - Routing 232 | - Vue Router 233 | - Headless UI 234 | - Design system 235 | - Vuetify 236 | - Angular 237 | - Svelte 238 | - SolidJS 239 | - Lit 240 | - Qwik 241 | 242 | ### Web API Client 243 | 244 | - cURL 245 | - HTTPie 246 | - Postman 247 | - Insomnia 248 | - Hoppscotch 249 | 250 | ### Web Backend -> REST API / GraphQL / Microframework 251 | 252 | - Node.js 253 | - Express 254 | - Feathers 255 | - NestJS 256 | - Hapi 257 | - Fastify 258 | - Koa 259 | - Restify 260 | - GraphQL Yoga 261 | - Pothos GraphQL Schema 262 | - Nexus.js - DED 263 | - PHP 264 | - Symfony 265 | - Slim Framework 266 | - CakePHP 267 | - Flight 268 | - Java 269 | - Micronaut 270 | - Spark Java 271 | - Ktor 272 | - Javalin 273 | - ... 274 | - Kotlin 275 | - Ktor 276 | - Javalin 277 | - Python 278 | - FastAPI 279 | - Flask 280 | - Tornado 281 | - ... 282 | - Ruby 283 | - Sinatra 284 | - ... 285 | - Golang 286 | - Gin 287 | - Fiber 288 | - Echo 289 | - Chi 290 | - Beego 291 | - HttpRouter 292 | - Revel 293 | - ... 294 | - Haskell 295 | - Yesod Web Framework 296 | - Snap 297 | - Spock 298 | - Rust 299 | - Rocket 300 | - Actix 301 | - Yew 302 | - Salvo 303 | - Elixir 304 | - Phoenix 305 | - Erlang 306 | - C 307 | - C++ 308 | - C# 309 | - Objective-C 310 | - Swift 311 | - Vapor 312 | - Perfect 313 | 314 | ### Web Full Stack or Hybrid or misc 315 | 316 | - JavaScript/TypeScript/Node.js/Deno 317 | - React 318 | - Next.js 319 | - Remix 320 | - Gatsby 321 | - RedwoodJS 322 | - Astro 323 | - Fresh 324 | - Meteor - DED? 325 | - Vue 326 | - Nuxt 327 | - Svelte 328 | - SvelteKit 329 | - Solid 330 | - SolidStart 331 | - PHP 332 | - Laravel 333 | - Code Igniter 334 | - Ruby 335 | - Rails 336 | - Python 337 | - Django 338 | - Java 339 | - Play 340 | - Spring 341 | - Spring Boot 342 | - Groovy 343 | - Grails 344 | - Scala 345 | - Play 346 | - C# 347 | - .NET / ASP.NET Core 348 | - Xamarin 349 | - Blazor 350 | - Golang 351 | - Hugo 352 | 353 | ### Web Tooling, State Management 354 | 355 | - Redux 356 | - RTK / Redux Toolkit 357 | - Jotai 358 | - Zustand 359 | - Recoil 360 | - XState 361 | - Stately 362 | - Pinia 363 | 364 | ### Web Bundler, Transpiler, Tool 365 | 366 | - Webpack 367 | - Turbopack - NEW 368 | - ESBuild 369 | - Vite 370 | - Parcel 371 | - Rollup 372 | - Gulp - DED 373 | - Grunt - DED 374 | - Yeoman - DED 375 | - Babel 376 | - SWC 377 | - Terser 378 | 379 | ### Web API 380 | 381 | - REST API 382 | - GraphQL 383 | - Apollo GraphQL 384 | - WebSocket 385 | - Socket.IO 386 | - tRPC 387 | - gRPC 388 | 389 | ### Web API Documentation / Schema 390 | 391 | - Swagger 392 | - API Blueprint 393 | - GraphQL 394 | - GraphiQL 395 | - Stellate / GraphCDN 396 | - Apigee 397 | 398 | ### Web Testing 399 | 400 | - Vitest 401 | - Jest 402 | - testing-library 403 | - MSW (Mock Service Worker) 404 | - Cypress 405 | - Playwright 406 | - Selenium WebDriver - AVOID 407 | - Mocha - DED 408 | - Chai - DED 409 | - Sinon - DED 410 | - Jasmine - DED 411 | - Cucumber 412 | - Cucumber.js 413 | 414 | ### Web Library 415 | 416 | - Map 417 | - Mapbox 418 | - react-mapbox-gl 419 | - Google Maps 420 | - WebGL / 3D 421 | - Three.js 422 | - React Three Fiber 423 | - Babylon.js 424 | - 2D visualization 425 | - D3.js 426 | - Vega 427 | - Python 428 | - Jupyter/Notebook 429 | - ... 430 | 431 | ### Web Deployment 432 | 433 | - Baremetal Server 434 | - VPS (Virtual Private Server) 435 | - Digital Ocean 436 | - Linode 437 | - Amazon Lightsail 438 | - IDCloudHost 439 | - Hostinger 440 | - DewaWeb 441 | - IaaS (Infrastructure as a Service) / Cloud Computing / Cloud Native 442 | - Google Cloud Platform (GCP) 443 | - Amazon Web Services (AWS) 444 | - Microsoft Azure 445 | - Alibaba Cloud 446 | - IBM Cloud 447 | - PaaS (Platform as a Service) 448 | - Vercel 449 | - Netlify 450 | - Railway.app 451 | - Heroku - HONORABLE 452 | - Fly.io 453 | - Render.com 454 | - Deno Deploy 455 | - CI/CD 456 | - GitHub Actions 457 | - Circle CI 458 | - Jenkins 459 | - Travis 460 | - Drone CI? 461 | 462 | ### Database 463 | 464 | - SQL vs NoSQL 465 | - SQLite 466 | - MySQL 467 | - MariaDB 468 | - PlanetScale 469 | - PostgreSQL 470 | - Supabase 471 | - Microsoft SQL Server 472 | - MongoDB 473 | - MongoDB Atlas 474 | - CockroachDB 475 | - Redis 476 | - Apache CouchDB 477 | - RxDB 478 | 479 | ### Database ORM 480 | 481 | - Node.js 482 | - Prisma ORM - MySQL/PostgreSQL/MongoDB 483 | - TypeORM 484 | - Sequelize 485 | - Knex.js 486 | - Bookshelf.js 487 | - Mongoose 488 | - Java 489 | - Hibernate 490 | - Python 491 | - SQLAlchemy 492 | - PonyORM 493 | - Ruby 494 | - ActiveRecord 495 | 496 | ### Database/Backend as a Service 497 | 498 | - Firebase 499 | - Supabase 500 | - Strapi 501 | - Nhost 502 | - Kontenbase 503 | 504 | ### Background Workers 505 | 506 | - Celery 507 | - Sidekiq 508 | - RabbitMQ 509 | 510 | ### CMS (Content Management System) 511 | 512 | - Headless WordPress 513 | - Hygraph (GraphCMS) 514 | - Payload CMS 515 | - ButterCMS 516 | - Storyblok 517 | 518 | https://bejamas.io/discovery/headless-cms 519 | 520 | ### Mobile Android 521 | 522 | - Java 523 | - Kotlin 524 | - Node.js 525 | - React Native 526 | - Ionic 527 | - NativeScript 528 | - Apache Cordova 529 | - Dart 530 | - Flutter 531 | 532 | ### Mobile iOS 533 | 534 | - Objective-C 535 | - Swift 536 | - Node.js 537 | - React Native 538 | 539 | ### Mobile Windows Phone 540 | 541 | - Windows Store 542 | 543 | ### Desktop (Mac/Linux/Windows) 544 | 545 | - JavaScript 546 | - Electron 547 | - Tauri 548 | - NW.js 549 | 550 | ### IoT 551 | 552 | - Node.js 553 | - Johnny-Five 554 | - NodeBots 555 | 556 | ## Other Things on Language/Platform 557 | 558 | ### JavaScript 559 | 560 | - npm / yarn / pnpm 561 | - TypeScript 562 | - Dart 563 | - Elm 564 | - CoffeeScript - DED 565 | 566 | ### PHP 567 | 568 | - Composer 569 | 570 | ### Java 571 | 572 | - Maven 573 | - Gradle 574 | - ... 575 | 576 | ### Kotlin 577 | 578 | - ... 579 | 580 | ### Scala 581 | 582 | - sbt 583 | - Apache Spark 584 | - ... 585 | 586 | ### Python 587 | 588 | - PyPi 589 | - ... 590 | 591 | ### Golang 592 | 593 | - ... 594 | 595 | ### Haskell 596 | 597 | - ... 598 | 599 | ### Rust 600 | 601 | - ... 602 | 603 | ### Elixir 604 | 605 | - ... 606 | 607 | ### C 608 | 609 | - ... 610 | 611 | ### C++ 612 | 613 | - ... 614 | 615 | ### C\# 616 | 617 | - ... 618 | 619 | ### Objective-C 620 | 621 | - ... 622 | 623 | ### Swift 624 | 625 | - ... 626 | 627 | ### OCaml 628 | 629 | - ... 630 | 631 | ### ReScript 632 | 633 | - ... 634 | 635 | ### Prolog 636 | 637 | - ... 638 | 639 | ### R 640 | 641 | - ... 642 | 643 | ## Game 644 | 645 | - C# 646 | - Unity 647 | 648 | ### Infra/DevOps 649 | 650 | - Docker 651 | - Kubernetes 652 | - Terraform 653 | - Ansible 654 | - Chef 655 | - Puppet 656 | 657 | ### QA 658 | 659 | - ... 660 | 661 | ### Blockchain 662 | 663 | - ... 664 | 665 | --------------------------------------------------------------------------------