Stackness

DevOps & Infrastructure tools

Most used tools

  1. #1

    Platform for building, shipping, and running containerized apps

    6 users
  2. #2

    Advanced open-source relational database system

    5 users
  3. #3

    Platform for version control and collaboration using Git

    4 users
  4. #4

    CI/CD platform integrated with GitHub repositories

    4 users
  5. #5

    Infrastructure as code tool for provisioning cloud resources

    4 users
  6. #6

    Open-source container orchestration platform

    3 users
  7. #7

    Distributed version control system for tracking code changes

    3 users
  8. #8

    Platform for frontend frameworks and static sites

    3 users
  9. #9

    In-memory data structure store used as database and cache

    3 users
  10. #10

    Open-source monitoring system with time series database

    3 users
  11. #11

    Amazon's comprehensive cloud computing platform

    2 users
  12. #12

    Microsoft's cloud computing platform and services

    2 users
  13. #13

    Cloud infrastructure provider for developers

    2 users
  14. #14

    Open-source Firebase alternative with Postgres

    2 users
  15. #15

    Edge-hosted distributed database based on libSQL

    2 users
  16. #16

    Fast, multi-platform web server with automatic HTTPS

    2 users
  17. #17

    Open-source analytics and monitoring platform

    2 users
  18. #18

    Monitoring and analytics platform for cloud-scale apps

    2 users
  19. #19

    Application monitoring and error tracking platform

    2 users
  20. #20

    Vulnerability and misconfiguration scanner for containers and code

    2 users
  21. #21

    Complete DevOps platform with built-in CI/CD

    1 user
  22. #22

    Platform for running full-stack apps close to users

    1 user
  23. #23

    Infrastructure platform for deploying apps instantly

    1 user
  24. #24

    Cloud platform for building and running apps and sites

    1 user
  25. #25

    European cloud hosting and dedicated server provider

    1 user
  26. #26

    Document-oriented NoSQL database for modern apps

    1 user
  27. #27

    Declarative GitOps continuous delivery for Kubernetes

    1 user
  28. #28

    Microsoft's relational database engine

    1 user
  29. #29

    Enterprise relational database from Oracle

    1 user
  30. #30

    Community-developed fork of MySQL

    1 user
  31. #31

    Wide-column distributed database built for scale

    1 user
  32. #32

    Distributed event streaming platform

    1 user
  33. #33

    Message broker for queues and routing

    1 user
  34. #34

    Distributed engine for large-scale data processing

    1 user
  35. #35

    Hosted continuous integration service

    1 user
  36. #36

    The web server that ran the early web

    1 user
  37. #37

    GitHub from the command line: pull requests, issues, and releases

    1 user
  38. #38

    Google's suite of cloud computing services

    0 users
  39. #39

    Platform for deploying and hosting modern web projects

    0 users
  40. #40

    Web performance and security company with CDN and DNS

    0 users
  41. #41

    Open-source relational database management system

    0 users
  42. #42

    Self-contained, serverless, zero-configuration SQL database

    0 users
  43. #43

    Serverless MySQL platform with branching workflows

    0 users
  44. #44

    Serverless Postgres with autoscaling and branching

    0 users
  45. #45

    High-performance HTTP server and reverse proxy

    0 users
  46. #46

    Infrastructure as code using familiar programming languages

    0 users
  47. #47

    Simple IT automation and configuration management

    0 users
  48. #48

    Continuous integration and delivery platform

    0 users
  49. #49

    Open-source automation server for CI/CD

    0 users
  50. #50

    Package manager for Kubernetes applications

    0 users

Rising this month

  • Vercel 2 added in the last 30 days, 67% of its 3 users
  • Redis 2 added in the last 30 days, 67% of its 3 users
  • PostgreSQL 3 added in the last 30 days, 60% of its 5 users
  • Docker 3 added in the last 30 days, 50% of its 6 users
  • GitHub 2 added in the last 30 days, 50% of its 4 users
  • GitHub Actions 2 added in the last 30 days, 50% of its 4 users
  • Terraform 2 added in the last 30 days, 50% of its 4 users
  • Kubernetes 1 added in the last 30 days, 33% of its 3 users
  • Git 1 added in the last 30 days, 33% of its 3 users
  • Prometheus 1 added in the last 30 days, 33% of its 3 users

Often paired with

Moves in DevOps & Infrastructure

I used to commit without looking. I'd stage changes, write a message, and push. Then I'd discover I'd left in a pdb breakpoint, or staged a credentials file, or bundled someone else's work into my branch. After the third time I had to force push to undo a bad commit, I started actually reading what I was about to ship. Now I run git diff --cached before every commit. It takes maybe a second per commit, and I catch the thing that will break the build or get called out in review about one commit per week. Sometimes it's a debug print I forgot. Sometimes it's a line count that's way off from what I intended, which usually means I've accidentally pulled in unrelated changes. The command is straightforward: stage what you think belongs, then git diff --cached to see the stat line and the full diff. If something looks wrong, unstage it with git reset and fix it. Only then git commit. I also use git add -p when I'm touching multiple things, which forces me to review line by line as I stage. It does not work when you're in a hurry and you skip the check anyway. And it obviously does not catch logic errors, just the obvious mechanical mistakes. But if you actually do it, you will catch stray files and oversized diffs before they land in the repository. ```bash $ git diff --cached --stat internal/handler/move.go | 18 +++++++++--- internal/handler/move_test.go | 42 ++++++++++++++++++++++ .env.local | 3 +++ 3 files changed, 60 insertions(+), 3 deletions(-) $ git restore --staged .env.local ```

94

I used to keep prod secrets in encrypted files checked into git. This meant every deploy required decryption, every env had its own schema, and one careless moment leaked everything. The cognitive load was constant. I moved to the pattern where only env var names live in version control. I commit a .env.example that lists what keys must exist, nothing more. All actual values come from the runtime environment. For local dev I use direnv to load from a .env file that git ignores. For production, Vercel handles injection directly in the UI. Running direnv allow in a project directory loads the .env automatically whenever you cd into it. The.env.example file stays lean: API_KEY=, DATABASE_URL=, AUTH_SECRET=. If someone forks the repo, they see the shape of what they need without seeing actual values. A leaked .env.example is just a checklist. This breaks down in teams that refuse to use direnv or need secrets in CI/CD systems that don't integrate cleanly. If your pipeline expects files instead of environment variables, you end up bolting on an extra layer anyway. But for anything touching Docker or serverless platforms, this approach removes a whole category of mistakes.

83

I used to commit whatever was staged, which sounds efficient until you realize that efficiency in the wrong direction just means you commit faster. I'd push a branch with three test files still in there, or a package-lock.json file I never meant to touch, or worse: a five hundred line refactor when I'd sworn I was only fixing the bug. The commit would land, someone would ask why that one change was in there, and I'd have to squint at GitHub and pretend I had a reason. So now I run `git diff --stat` before every single commit. It takes about one second. I read through the stat line, check the file count, verify the numbers make sense for what I thought I was doing, and then I commit. That's it. The tool is just git. The discipline is knowing that one second now saves five minutes of explaining later. The concrete detail is the stat line itself. `git diff --stat` shows you file names and the number of added and deleted lines in a tiny ASCII chart. If I see a node_modules change or a lockfile in there, I know I'm about to make a mistake. If I see a file I don't recognize, I stop and figure out why it's there. If the numbers don't match my intent, I unstage and re-sort what I'm actually committing. The caveat is that this only works if you're committing conscious changes. If you're in the middle of a refactor where you're genuinely touching forty files at once, the stat line won't save you. You still need to have structured your work so that you know what belongs together. This is a safety rail, not a strategy. ```bash $ git diff --cached --stat internal/handler/move.go | 18 +++++++++--- internal/handler/move_test.go | 42 ++++++++++++++++++++++ .env.local | 3 +++ 3 files changed, 60 insertions(+), 3 deletions(-) $ git restore --staged .env.local ```

64

Before I adopted conventional commits, my git log was a graveyard of "fix stuff", "updates", and "wip". When it came time to cut a release, I'd manually sift through months of commits trying to figure out what actually changed for users. Worse, when I needed to bisect a regression, reading commit messages from six months ago felt like archaeological work because nobody had bothered to say whether a commit was a breaking change, a bug fix, or just a refactor. I started structuring every commit as type(scope): subject where type is one of feat, fix, refactor, docs, chore, or perf. The scope is optional but specific: auth, api, cli. This took maybe two weeks to internalize as muscle memory. Now when I'm in the middle of a bisect and land on a commit, I can immediately tell whether it was a behavioral change or a code cleanup without reading the body. The real payoff arrives when GitHub Actions runs after a merge to main. A simple script parses commit types, groups them, and generates release notes automatically. I've set up a workflow that counts feat commits for minor versions, fix commits for patches, and any breaking change in the commit footer for major versions. No more sitting in a release meeting trying to remember what we shipped. The caveat is that this only works if your team actually follows the convention, and if you're rebasing frequently in a chaotic codebase, you'll spend time cleaning up commit messages anyway. Squash merging can also obscure individual commits, so you lose the benefit during bisect. It's less powerful than a proper changelog file, but it beats starting from nothing. ```bash $ git log --oneline -4 9cfc5db fix(auth): reject expired refresh tokens 4c43ff2 feat(feed): cursor paginate the home feed 7fa7e00 chore(deps): bump ent to 0.14 b3bc5e2 docs(readme): document the staging runbook ```

63

Reaching for managed functions and hosted services before provisioning a server, and paying per request instead of per hour.

63

by StacknessDevOps & Infrastructurebackdated

One repository for many projects, with shared tooling and atomic cross-project changes. Google and Facebook's internal practice reached everyone else through a generation of build tools.

63

Adoption history

Docker

History
Collected from public datasets outside Stackness, not from stacks on this site. Each series is scaled to its own peak because the units do not compare. Data sources
Mentions, monthly

Hacker News mentions mentions: 75 mentions (2013) to 873 mentions (2026)

20132016201920232026

Imported from Hacker News mentions

Questions asked, monthly

Stack Exchange data explorer questions asked: 1 questions (2010) to 11 questions (2026)

20102016201920232026

Imported from Stack Exchange data explorer

Usage share, yearly

Stack Overflow developer survey usage share: 31.24 % of respondents (2019) to 71.79 % of respondents (2025)

20192021202220242025

Imported from Stack Overflow developer survey

Pageviews, monthly

Wikipedia pageviews pageviews: 46,752 views (2015) to 30,961 views (2026)

20152018202120232026

Imported from Wikipedia pageviews

PostgreSQL

History
Collected from public datasets outside Stackness, not from stacks on this site. Each series is scaled to its own peak because the units do not compare. Data sources
Mentions, monthly

Hacker News mentions mentions: 2 mentions (2007) to 771 mentions (2026)

20072012201620212026

Imported from Hacker News mentions

Questions asked, monthly

Stack Exchange data explorer questions asked: 11 questions (2008) to 16 questions (2026)

20082013201720222026

Imported from Stack Exchange data explorer

Usage share, yearly

Stack Overflow developer survey usage share: 26.53 % of respondents (2017) to 56.86 % of respondents (2025)

20172019202120232025

Imported from Stack Overflow developer survey

Pageviews, monthly

Wikipedia pageviews pageviews: 32,055 views (2015) to 28,086 views (2026)

20152018202120232026

Imported from Wikipedia pageviews

GitHub

History
Collected from public datasets outside Stackness, not from stacks on this site. Each series is scaled to its own peak because the units do not compare. Data sources
Mentions, monthly

Hacker News mentions mentions: 3 mentions (2008) to 9,668 mentions (2026)

20082012201720212026

Imported from Hacker News mentions

Questions asked, monthly

Stack Exchange data explorer questions asked: 1 questions (2008) to 5 questions (2026)

20082013201720222026

Imported from Stack Exchange data explorer

Usage share, yearly

Stack Overflow developer survey usage share: 82.8 % of respondents (2020) to 81.78 % of respondents (2025)

2020202320242025

Imported from Stack Overflow developer survey

Pageviews, monthly

Wikipedia pageviews pageviews: 59,230 views (2015) to 116,991 views (2026)

20152018202120232026

Imported from Wikipedia pageviews