Skip to main content

300 - Web and Application

300 - Web and API Style Standards

  • World Wide Web - An information space where documents and other web resources are identified by Uniform Resource Locators (URLs), interlinked by hypertext links, and accessible via the Internet
    • Hypertext - A text displayed on a computer display or other electronic devices with references (hyperlinks) to other text that the reader can immediately access
    • URL - A standard that defines URLs, domains, IP addresses, the application/x-www-form-urlencoded format, and their API
    • URI - A unique sequence of characters that identifies a logical or physical resource
      • Ruby module URI - A module providing classes to handle Uniform Resource Identifiers (RFC2396)
    • HTML - The World Wide Web's core markup language
      • Server-sent events - A technology to enable servers to push data to web pages over HTTP or using dedicated server-push protocols
    • CSS - A simple mechanism for adding style (e.g., fonts, colors, spacing) to Web documents
    • Sass language - A stylesheet language that's compiled to CSS
  • HTTP - An application protocol for distributed, collaborative, hypermedia information systems
    • HTTP cookie - A small piece of data that a server sends to a user's web browser
    • JSON Merge Patch - A JSON format that describes changes to be made to a target JSON document
  • OpenAPI spec - A standard, language-agnostic interface to HTTP APIs
    • Redocly CLI - An open-source command-line tool that helps you lint, bundle, and preview OpenAPI definitions
  • CloudEvents - A specification for describing event data in a common way
  • ActivityPub - A decentralized social networking protocol based on the ActivityStreams 2.0 data format
  • WebRTC - A free and open-source project providing web browsers and mobile applications with real-time communication (RTC)
  • API styles
    • REST - A software architectural style that was created to guide the design and development of the architecture for the World Wide Web
    • SOAP - A messaging protocol specification for exchanging structured information in the implementation of web services
    • GraphQL - A query language for APIs and a runtime for fulfilling those queries with your existing data
      • URQL - The highly customizable and versatile GraphQL client
      • Apollo Server - An open-source, spec-compliant GraphQL server that's compatible with any GraphQL client
    • gRPC - A modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment
    • WebSockets - A technology that makes it possible to open a two-way interactive communication session between the user's browser and a server
    • Webhook - A method of augmenting or altering the behavior of a web page or web application with custom callbacks
    • json-rpc - A stateless, light-weight remote procedure call (RPC) protocol
    • MQTT - A lightweight, publish-subscribe, machine to machine network protocol for message queue/message queuing service
    • AMQP - An open standard application layer protocol for message-oriented middleware
  • Browsers
  • Client scripting spec
  • Rendering engines
  • Scripting engines
  • Profiler
    • Wappalyzer - A technology profiler that shows you what websites are built with

310 - Web Servers, Web Proxies, and Service Mesh

  • NGINX - A high-performance, scalable, and reliable web server, reverse proxy, and load balancer
  • Apache HTTP Server - A project to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows
  • Caddy - A powerful, extensible platform to serve your sites, services, and apps, written in Go
  • nodejs http-server - A simple static HTTP server
  • GitLab Pages - A feature that allows you to publish static websites directly from a repository in GitLab
  • Cloudflare Pages - A JAMstack platform for frontend developers to collaborate and deploy websites
  • Forward proxy and caching
    • Web cache - An information technology for the temporary storage (caching) of web documents, such as HTML pages and images, to reduce bandwidth usage, server load, and perceived lag
      • Content delivery network - A geographically distributed network of proxy servers and their data centers
      • Point of presence - An artificial demarcation point or interface point between communicating entities
    • Squid - A caching proxy for the Web supporting HTTP, HTTPS, FTP, and more
    • GoProxy - A library to create a customized HTTP/HTTPS proxy server using Go (aka Golang)
  • CDN providers
    • Cloudflare - A global network designed to make everything you connect to the Internet secure, private, fast, and reliable
    • Amazon CloudFront - A content delivery network (CDN) service built for high performance, security, and developer convenience
      • Lambda@Edge - A feature of Amazon CloudFront that lets you run code closer to users of your application
    • Google Cloud CDN - A content delivery network (CDN) that accelerates delivery of your web and video content
    • Azure Front Door - A modern cloud content delivery network (CDN) that provides a secure and scalable entry point for fast delivery of your global web applications and content
  • Reverse proxy
    • NGINX - An open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more
    • HAProxy - A free, very fast and reliable reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications
    • envoy - An open source edge and service proxy
    • traefik proxy - A leading modern open source reverse proxy and ingress controller
    • Amazon ALB - A load balancing option for the Elastic Load Balancing service that operates at the application layer
  • API gateways
    • Kong API gateway - A lightweight, fast, and flexible cloud-native API gateway
    • Azure API Management - A hybrid, multicloud management platform for APIs across all environments
    • Amazon API Gateway - A fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale
    • Google Cloud Apigee - The platform for developing and managing API services
  • Application hosting services
    • Azure App Service - An HTTP-based service for hosting web applications, REST APIs, and mobile back ends
    • AWS Elastic Beanstalk - An easy-to-use service for deploying and scaling web applications and services
    • Google Cloud App Engine - A fully managed, serverless platform for developing and hosting web applications at scale
  • Serverless computing - A cloud computing execution model in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers
    • AWS Lambda - A serverless, event-driven compute service that lets you run code for virtually any type of application or backend service without provisioning or managing servers
    • Azure Functions - An event-driven, serverless compute platform that helps you develop more efficiently using the programming language of your choice
    • Google Cloud Run Functions - A serverless execution environment for building and connecting cloud services
  • Service mesh
    • Hashicorp Consul - A service networking solution to connect and secure services across any runtime platform and public or private cloud
    • Istio - An open source service mesh that layers transparently onto existing distributed applications
      • Kiali - The service mesh observability and configuration tool for Istio
    • Linkerd - An ultralight, security-first service mesh for Kubernetes
    • traefik mesh - A straight-forward, easy to configure, and non-invasive service mesh

320 - Web Application Standards and Frameworks

  • Single-page application
  • JS/TS frameworks for backend
    • Express.js - A minimal and flexible Node.js web application framework
    • Koa - A new web framework designed by the team behind Express
    • Nest.js - A progressive Node.js framework for building efficient, reliable and scalable server-side applications
    • Hono - Fast, lightweight, built on Web Standards
    • tRPC - A tool that allows you to easily build & consume fully typesafe APIs without schemas or code generation
  • Full-stack web frameworks
    • Next.js - A React framework for building full-stack web applications
    • Nuxt.js - A free and open-source framework with an intuitive and extendable way to create type-safe, performant and production-grade full-stack web applications and websites with Vue.js
    • Astro - The web framework for content-driven website
    • Angular - A web framework that empowers developers to build fast, reliable applications
  • Go frameworks
    • Echo - High performance, extensible, minimalist Go web framework
    • Gin Web Framework - A web framework written in Go
    • Gorilla web toolkit - A helpful toolkit that provides useful, composable packages for writing HTTP-based applications
    • Yokai - A simple, modular and observable Go framework for backend applications
  • Python frameworks/servers
    • WSGI - The Web Server Gateway Interface
      • Gunicorn - A Python WSGI HTTP Server for UNIX
      • Flask - A lightweight WSGI web application framework
    • ASGI
      • Uvicorn - An ASGI web server implementation for Python
      • Hypercorn - An ASGI web server based on the sans-io hyper, h11, h2, and wsproto libraries and inspired by Gunicorn
      • FastAPI - A modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints
  • Ruby frameworks/servers
    • Rack - A modular Ruby web server interface
      • Puma - A fact, concurrent web server for Ruby & Rack
      • Sinatra - A DSL for quickly creating web applications in Ruby with minimal effort
  • Perl frameworks (reference)
    • Classic CGI
      • mod_cgi - A module for the execution of CGI scripts
      • CGI.pm - A module to handle Common Gateway Interface requests and responses
    • Fast CGI
  • Rust frameworks (reference)
    • Leptos - A cutting-edge Rust framework for the modern web
  • Java frameworks (reference)
    • Jakarta EE - A set of specifications that define Java APIs for enterprise software development
      • Apache Tomcat - An open-source web server and servlet container
    • Spring
      • Spring Boot - makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run"
  • .NET frameworks (reference)
  • JS/TS frameworks for frontend
    • React - The library for web and native user interfaces
      • JSX - A syntax extension for JavaScript that lets you write HTML-like markup inside a JavaScript file
        • MDX - allows you to use JSX in your markdown content
      • Material UI - An open-source React component library that implements Google's Material Design
      • Chakra UI - A component system for building products with speed
    • Vue.js - A JavaScript framework for building user interfaces
      • Vuetify - A no design skills required Open Source UI Library with beautifully handcrafted Vue Components
    • GWT - A development toolkit for building and optimizing complex browser-based applications
    • Require.js - A JavaScript file and module loader which is optimized for in-browser use
    • Tabulator - An easy to use, simple to code, fully featured, interactive JavaScript library for creating tables and data grids
  • State management
    • Redux - A JS library for predictable and maintainable global state management
    • Recoil - A state management library for React
  • CSS frameworks and libraries
    • Bootstrap - Powerful, extensible, and feature-packed frontend toolkit
    • Tailwind CSS - A utility-first CSS framework packed with classes
      • daisyUI - The most popular component library for Tailwind CSS
    • Emotion - A library designed for writing css styles with JavaScript
    • Linaria - A zero-runtime CSS in JS library
  • Fontend build tools
    • Percel - The zero configuration build tool
    • Vite - Next Generation Frontend Tooling
    • babel - A JavaScript compiler
    • Rspack - A high performance JavaScript bundler written in Rust
    • JSMin - A minification tool that removes comments and unnecessary whitespace from JavaScript files

330 - Web Automation and Test Tools

  • CLIs
    • cURL - A command line tool and library for transferring data with URLs
    • Wget - A free software package for retrieving files using HTTP, HTTPS, FTP and FTPS
    • curlie - The power of curl, the ease of use of httpie
    • hurl - A command line tool that runs HTTP requests defined in a simple plain text format
    • wuzz - An interactive cli tool for HTTP inspection
    • httptap - View the HTTP and HTTPS requests made by any linux program
  • Libraries
    • Ruby module Net - A collection of classes that implement client-side internet protocols
    • Python Requests - An elegant and simple HTTP library for Python, built for human beings
    • JS Axios - A promise-based HTTP Client for node.js and the browser
    • Go Resty - A simple HTTP and REST client library for Go
    • Go FastHTTP - A fast HTTP package for Go
    • Rust reqwest - An ergonomic, async HTTP client
  • Browser automation and test
    • Puppeteer - A Node.js library which provides a high-level API to control Chrome/Chromium over the DevTools Protocol
    • Playwright - A framework for Web Testing and Automation
    • WebDriver - A remote control interface that enables introspection and control of user agents
      • Selenium WebDriver - A tool that drives a browser natively, as a user would, either locally or on a remote machine
      • Selenium IDE - An open source record and playback test automation for the web
      • WebDriver BiDi - The BiDirectional WebDriver Protocol, a mechanism for remote control of user agents
  • Web scraping
    • Crawlee - A web scraping and browser automation library
    • BeautifulSoup - A Python library designed for quick turnaround projects like screen-scraping
    • Scrapy - An open source and collaborative framework for extracting the data you need from websites
    • Colly - A Golang framework for building web scrapers
    • Katana - A next-generation crawling and spidering framework
  • Classic web automation
    • Mechanize - A module that helps you automate interaction with a website
    • Mechanize (Ruby) - A ruby library that makes automated web interaction easy
  • Testing
    • Chrome for Testing
    • Karma - A test runner that fits all our needs
    • API test
      • Bruno - A Git-integrated, fully offline, and open-source API client
      • httpie cli - A simple yet powerful command-line HTTP and API testing client for the API era
      • hurl - A command line tool that runs HTTP requests defined in a simple plain text format
      • Postman/Newman
  • Debug
  • Test data generation

340 - CLI/TUI App Development

  • Bash
    • built-in getopts etc. - A set of commands that are part of the shell itself
    • tput - A command to initialize a terminal or query the terminfo database
    • dialog - A program that can be used to create nice user interfaces for shell scripts
    • Gum - A tool for glamorous shell scripts
    • FIGlet - A program for making large letters out of ordinary text
    • lolcat - A program that concatenates files, or standard input, to standard output and adds rainbow coloring
    • cfonts - A tool to print sexy fonts in your console
  • Perl
    • Getopt::Long - A module that implements an extended getopt function called GetOptions()
    • Term::ANSIColor - A module to colorize text using ANSI escape sequences
    • Text::ANSITable - A module to create a formatted table using ASCII characters and ANSI colors
  • Python
    • argparse - The module for parsing command-line arguments
    • getopt - The C-style parser for command line options
    • click - A Python package for creating beautiful command line interfaces in a composable way with as little code as necessary
    • Colorama - A simple cross-platform API for printing colored terminal text from Python
    • Typer - A library for building CLI applications that users will love using and developers will love creating
    • Asciimatics - A package that provides a cross-platform, full-screen terminal API for building text-based user interfaces
    • Python Prompt Toolkit - A library for building powerful interactive command line and terminal applications in Python
    • Urwid - A console user interface library for Python
    • Textual - A Rapid Application Development framework for Python, built by Textualize.io
      • Rich - A Python library for rich text and beautiful formatting in the terminal
  • Javascript
    • yargs - A library for building interactive command line tools by parsing arguments and generating an elegant user interface
    • minimist - A tool to parse argument options
    • chalk - A terminal string styling tool
    • cli-progress - An easy to use progress-bar for command-line/terminal applications
    • FIGLet.js - A FIG Driver written in JavaScript which aims to fully implement the FIGfont spec
    • gradient-string - A library for creating beautiful gradients in terminal output
  • Go
    • Fang - The CLI starter kit. A small, experimental library for batteries-included Cobra applications
    • Bubble Tea - A powerful little TUI framework
    • Huh - A simple, powerful, and elegant TUI library for building terminal forms and prompts
    • pflag - A drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags
    • color - A package for Go that lets you use colorized outputs in terms of ANSI escape sequences
    • Cobra - A framework for creating powerful modern CLI applications
    • cli - A simple, fast, and fun package for building command line apps in Go
    • viper - A complete configuration solution for Go applications
  • Ruby
    • OptionParser - A class for command-line option analysis
    • colorize - A gem for colorizing text using ANSI escape sequences
    • TTY - A suite of gems that provide a wide range of tools for building interactive command-line applications
  • Rust
    • Ratatui - A Rust library for cooking up delicious terminal user interfaces
    • R3BL - A suite of libraries for building modern terminal apps with Rust
    • Ansic - A modern, efficient and compile time ansi macro and utilities crate for Rust
  • C
    • ncurses - A programming library providing an application programming interface (API) that allows the programmer to write text-based user interfaces in a terminal-independent manner

350 - Binary and Image Processing

  • Compression and archiving
    • GNU Gzip - A popular data compression program
    • GNU tar - A program that provides the ability to create tar archives, as well as various other kinds of manipulation
    • Info-Zip - A set of open-source software for handling ZIP archives
    • P7ZIP - A port of 7za.exe for POSIX systems
    • Python Data Compression and Archiving libs - The modules that support data compression and the creation and reading of archives
    • Go compress libs - A package that defines a common interface to compression and decompression algorithms
    • Go archive libs - A package that defines a common interface for accessing archived file formats
    • JSZip - A javascript library for creating, reading and editing .zip files
    • Ruby module Zlib - A module that contains classes for compressing and decompressing streams, and for working with gzip-format files
    • zlib - A free, general-purpose, legally unencumbered lossless data-compression library for use on virtually any computer hardware and operating system
    • zlib-rs - A safer zlib
    • snappy - A compression/decompression library that aims for very high speeds and reasonable compression
  • Binary file processing
    • file (command) - A file type guesser
    • ELF format - A common standard file format for executable files, object code, shared libraries, and core dumps
    • hexdump - A filter which displays the specified files, or the standard input, in a user specified format
    • xxd - The well-known hex-dump-type utility
    • bed - A binary editor written in Go
    • fq - A tool inspired by jq that lets you poke at binary formats
    • exiftool - A command-line application and Perl library for reading and writing meta information in files
    • ImageMagick - A free, open-source software suite, used for editing and manipulating digital images
    • FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video
    • Native WebP for Go - A native WebP encoder written entirely in Go, with no dependencies on libwebp or other external libraries
  • PDF document processing
    • PDF - A file format developed by Adobe to present documents in a manner independent of application software, hardware, and operating systems
    • Ghostscript - A suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format page description languages
    • qpdf - A command-line tool and C++ library that performs content-preserving transformations on PDF files
    • pdftk server - A command-line tool for working with PDFs
    • pdfcpu - A PDF processor written in Go
    • PDF.js - A general-purpose, web standards-based platform for parsing and rendering PDFs
    • pypdf - A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files
    • Prawn PDF - A fast, nimble PDF generator for Ruby
  • Office document processing
  • Convert to text
    • MinerU - A high-quality tool for convert PDF to Markdown and JSON
    • markitdown - A lightweight Python utility for converting various files to Markdown for use with LLMs and related text analysis pipelines
    • xlsx2csv
    • docx2txt
    • pptx2md

360 - Mobile/Desktop App Development (WIP)

  • Android
  • iOS
  • GPS
  • QR code
  • Web-based UI
    • Electron - A framework for building desktop applications using JavaScript, HTML, and CSS
    • React Native - allows developers who know React to create native apps
      • Expo - A production-grade React Native Framework
    • Tauri - A toolkit that helps developers make applications for the major desktop platforms
  • Notification service
  • GUI/Widget toolkit
    • Tk - A graphical user interface toolkit
      • tkinter - The standard Python interface to the Tcl/Tk GUI toolkit
    • GTK
    • Gio - A library for writing cross-platform immediate mode GUI-s in Go
    • Fyne - An easy to learn toolkit for creating graphical apps for desktop, mobile and web
    • Slint - A declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps
  • Linux distros for desktop
    • Debian-based
    • Arch-based
      • Manjaro Linux - A user-friendly Linux distribution based on the independently developed Arch operating system
      • Mabox Linux - Fast, lightweight and functional Linux Desktop “relaxed” rolling-release, Manjaro based with Openbox Window Manager
  • Linux GUI systems
    • X.org - An open source implementation of the X Window System
    • Wayland - A replacement for the X11 window system protocol and architecture
    • GNOME
    • Xfce - A lightweight desktop environment for UNIX-like operating systems
    • openbox - A highly configurable, next generation window manager
  • Android on Linux
    • Waydroid - A container-based approach to boot a full Android system on regular GNU/Linux systems running Wayland based desktop environments
  • Windows administration
  • Windows tools
    • AutoHotKey - A free, open-source scripting language for Windows that allows users to easily create small to complex scripts
    • Clavier+ - Allows to trigger actions with keyboard shortcuts
    • WinSSHTerm - A tabbed SSH solution for Windows, combining PuTTY, WinSCP and VcXsrv

370 - Internet of Things (WIP)