├── .github ├── pull_request_template.md └── workflows │ ├── data-validate.yml │ └── populate-readme.yml ├── .gitignore ├── .node-version ├── .npmrc ├── contribution-guide.md ├── netlify.toml ├── package-lock.json ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public └── default.png ├── readme.md ├── remix.config.js ├── scripts ├── data-validate.js ├── flags.js ├── masterData.js ├── multiple-emojis.mjs ├── populate-readme.js ├── readme-template.md └── utils.js ├── server.ts ├── src ├── components │ ├── BackToTop.js │ ├── FavIcon.js │ ├── Person.js │ ├── Topics.js │ ├── header.js │ └── layout.js ├── data.js ├── entry.client.tsx ├── entry.server.tsx ├── fonts │ ├── fira_mono-regular-webfont.woff │ ├── fira_mono-regular-webfont.woff2 │ ├── fira_mono-regular_italic-webfont.woff │ └── fira_mono-regular_italic-webfont.woff2 ├── http │ └── get-index │ │ ├── index.js │ │ ├── package-lock.json │ │ └── package.json ├── images │ ├── android.png │ ├── apple.svg │ ├── flip-phone.png │ ├── gatsby-astronaut.png │ ├── gatsby-icon.png │ ├── iphone.png │ ├── linux.png │ ├── twitter-card.png │ ├── windows.svg │ └── windowsphone.png ├── pages │ └── 404.js ├── root.tsx ├── routes │ ├── index.tsx │ └── like │ │ └── $tag.tsx ├── styles.css └── util │ ├── icons.js │ └── stats.ts └── tsconfig.json /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 38 | -------------------------------------------------------------------------------- /.github/workflows/data-validate.yml: -------------------------------------------------------------------------------- 1 | name: Validate data.js 2 | 3 | on: 4 | pull_request: 5 | paths: src/data.js 6 | 7 | env: 8 | CI: true 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v1 15 | - uses: actions/setup-node@v1 16 | with: 17 | node-version: 16.x 18 | 19 | - name: Cache/Restore node modules 20 | uses: actions/cache@v1 21 | with: 22 | path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS 23 | key: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }} 24 | 25 | - name: Install Dependencies 26 | run: npm install 27 | 28 | - name: Validate data.js 29 | run: node ./scripts/data-validate.js 30 | env: 31 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 32 | -------------------------------------------------------------------------------- /.github/workflows/populate-readme.yml: -------------------------------------------------------------------------------- 1 | name: Populate readme.md from master and lint src/data.js 2 | 3 | on: 4 | push: 5 | branches: master 6 | paths: 7 | - src/data.js 8 | - scripts/readme-template.md 9 | 10 | env: 11 | CI: true 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v1 18 | - uses: actions/setup-node@v1 19 | with: 20 | node-version: 16.x 21 | 22 | - name: Cache/Restore node modules 23 | uses: actions/cache@v1 24 | with: 25 | path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS 26 | key: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }} 27 | 28 | - name: Install Dependencies 29 | run: npm install 30 | 31 | - name: Lint src/data.js 32 | run: | 33 | npx eslint --fix src/data.js 34 | git add src/data.js 35 | 36 | - name: Populate readme.md from master 37 | run: | 38 | node ./scripts/populate-readme.js 39 | mv generated-readme.md readme.md 40 | git add readme.md 41 | git config --local user.email "action@github.com" 42 | git config --local user.name "GitHub Action" 43 | # commit only if any changes 44 | if [ ! -z "$(git status --porcelain)" ]; then 45 | git commit -m "chore: generate \`readme.md\`, lint \`src/data.js\`" 46 | fi 47 | 48 | - name: Push changes 49 | uses: ad-m/github-push-action@master 50 | with: 51 | github_token: ${{ secrets.GITHUB_TOKEN }} 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | # Logs 3 | logs 4 | *.log 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | 9 | # Runtime data 10 | pids 11 | *.pid 12 | *.seed 13 | *.pid.lock 14 | 15 | # Directory for instrumented libs generated by jscoverage/JSCover 16 | lib-cov 17 | 18 | # Coverage directory used by tools like istanbul 19 | coverage 20 | 21 | # nyc test coverage 22 | .nyc_output 23 | 24 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 25 | .grunt 26 | 27 | # Bower dependency directory (https://bower.io/) 28 | bower_components 29 | 30 | # node-waf configuration 31 | .lock-wscript 32 | 33 | # Compiled binary addons (http://nodejs.org/api/addons.html) 34 | build/Release 35 | 36 | # Dependency directories 37 | node_modules/ 38 | jspm_packages/ 39 | 40 | # Typescript v1 declaration files 41 | typings/ 42 | 43 | # Optional npm cache directory 44 | .npm 45 | 46 | # Optional eslint cache 47 | .eslintcache 48 | 49 | # Optional REPL history 50 | .node_repl_history 51 | 52 | # Output of 'npm pack' 53 | *.tgz 54 | 55 | # dotenv environment variable files 56 | .env* 57 | 58 | .cache/ 59 | 60 | # Mac files 61 | .DS_Store 62 | 63 | # VS Code workspace settings 64 | .vscode/ 65 | 66 | # vim workspace settings 67 | .vim/ 68 | 69 | # Yarn 70 | yarn-error.log 71 | .pnp/ 72 | .pnp.js 73 | # Yarn Integrity file 74 | .yarn-integrity 75 | 76 | haters/ 77 | 78 | .idea/ 79 | .history/ 80 | 81 | # Local Netlify folder 82 | .netlify 83 | -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 16.13.1 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | fund=false 2 | audit=false 3 | legacy-peer-deps=true 4 | shamefully-hoist=true 5 | -------------------------------------------------------------------------------- /contribution-guide.md: -------------------------------------------------------------------------------- 1 | # Contributions to uses.dev 2 | 3 | ## Steps 4 | 1) Fork this repo 5 | 2) Add yourself to `/src/data.js` 6 | 3) When requesting a PR please read carefully. 7 | 4) Be nice to maintainers 8 | 9 | ## PR Guidelines 10 | - Should be updated with the latest main or master branch. 11 | - PR Title should be the name or handle of the person being added or update being made. 12 | - A bad PR title `update data.js` 13 | - A good PR Title `Adding Blake Campbell` 14 | 15 | ## What's a Uses Page? 16 | 17 | A /uses page lists a developer's setup, gear, software, and configs (what they *use*). It's a great reference for those looking to add to their library of tools or reconfigure ones they already use. 18 | 19 | **The URL MUST follow the format of use|uses|using|setup|environment at the end.** 20 | 21 | ### What Should I Include? 22 | 23 | Include the hardware you use, such as your computer and other related equipment. Include your preferred terminal, text editors, tools, frameworks, and other related software you use. If you can, include configurations for software (such as fonts and themes). The more you have on your /uses page, the more interesting it'll be to those who view it - just keep it on-topic! 24 | 25 | ## Adding Yourself 26 | 27 | * Ensure you are linking to a /uses page, **not just your website** 28 | * Ensure your data is formatted like other entries 29 | * Do not add yourself to the end of the array (add yourself somewhere random instead) 30 | * Ensure this PR has a title in the following format 31 | * ✅ Add Your Name 32 | * ✅ Add @twitterusername 33 | * ✅ Add @mastodonusername@instance.url 34 | * ❌ Add myself 35 | * ❌ Adding myself! 36 | * ❌ Add Your Name @twitter @github 37 | 38 | ## Code Modifications 39 | 40 | * Ensure the code submitted is formatted similarly to existing code 41 | * Ensure variable, method, function, and component names are clear and concise 42 | 43 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "remix build" 3 | publish = "public" 4 | 5 | [dev] 6 | command = "remix watch" 7 | port = 3000 8 | autoLaunch = false 9 | 10 | [[headers]] 11 | for = "/build/*" 12 | [headers.values] 13 | "Cache-Control" = "public, max-age=31536000, s-maxage=31536000" 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "uses", 3 | "description": "What do you uses", 4 | "version": "7.7.7", 5 | "author": "Wes Bos", 6 | "eslintConfig": { 7 | "extends": [ 8 | "wesbos/typescript" 9 | ] 10 | }, 11 | "engines": { 12 | "node": ">= 16" 13 | }, 14 | "dependencies": { 15 | "@actions/core": "^1.10.0", 16 | "@actions/exec": "^1.1.1", 17 | "@actions/github": "^5.1.1", 18 | "@babel/core": "^7.21.0", 19 | "@babel/preset-react": "^7.18.6", 20 | "@netlify/edge-functions": "^2.0.0", 21 | "@netlify/functions": "^1.4.0", 22 | "@netlify/remix-edge-adapter": "^1.0.0", 23 | "@remix-run/dev": "^1.13.0", 24 | "@remix-run/netlify": "^1.13.0", 25 | "@remix-run/node": "^1.13.0", 26 | "@remix-run/react": "^1.13.0", 27 | "@remix-run/serve": "^1.13.0", 28 | "@remix-run/server-runtime": "^1.13.0", 29 | "@types/node": "^18.14.0", 30 | "@types/react": "^18.0.28", 31 | "@types/react-dom": "^18.0.11", 32 | "country-emoji": "^1.5.6", 33 | "isbot": "^3.6.6", 34 | "joi": "^17.8.1", 35 | "netlify-cli": "^13.0.0", 36 | "normalize.css": "^8.0.1", 37 | "prop-types": "^15.8.1", 38 | "react": "^18.2.0", 39 | "react-dom": "^18.2.0", 40 | "react-helmet": "^6.1.0", 41 | "react-is": "^18.2.0", 42 | "styled-components": "5.3.6", 43 | "typescript": "^4.9.5" 44 | }, 45 | "scripts": { 46 | "build": "netlify build", 47 | "dev": "NODE_ENV=development netlify dev", 48 | "readme": "node ./scripts/populate-readme.js" 49 | }, 50 | "devDependencies": { 51 | "@types/styled-components": "^5.1.26", 52 | "eslint": "^8.34.0", 53 | "eslint-config-wesbos": "^3.2.3", 54 | "husky": "^8.0.3", 55 | "lint-staged": "^13.1.2", 56 | "postcss": "^8.4.21", 57 | "postcss-nesting": "^11.2.1", 58 | "prettier": "^2.8.4" 59 | }, 60 | "lint-staged": { 61 | "src/data.js": [ 62 | "eslint --fix", 63 | "git add" 64 | ] 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | const postcssNesting = require("postcss-nesting"); 2 | 3 | module.exports = { 4 | plugins: [postcssNesting()], 5 | }; 6 | -------------------------------------------------------------------------------- /public/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/public/default.png -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # → Visit [uses.tech](https://uses.tech) for a good time 2 | 3 | ## Please read [Contribution Guide](https://github.com/wesbos/awesome-uses/blob/master/contribution-guide.md) before submitting a PR. 4 | A list of `/uses` pages detailing developer setups, gear, software and configs. 5 | 6 | Add your own `/uses` page in [data.js](https://github.com/wesbos/awesome-uses/blob/master/src/data.js). 7 | 8 | This readme is auto-generated from the data.js file, so please don't PR this file. 9 | 10 | ``` 11 | ▄████████ ▄█ █▄ ▄████████ ▄████████ ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ 12 | ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ 13 | ███ ███ ███ ███ ███ █▀ ███ █▀ ███ ███ ███ ███ ███ ███ █▀ 14 | ███ ███ ███ ███ ▄███▄▄▄ ███ ███ ███ ███ ███ ███ ▄███▄▄▄ 15 | ▀███████████ ███ ███ ▀▀███▀▀▀ ▀███████████ ███ ███ ███ ███ ███ ▀▀███▀▀▀ 16 | ███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ █▄ 17 | ███ ███ ███ ▄█▄ ███ ███ ███ ▄█ ███ ███ ███ ███ ███ ███ ███ ███ 18 | ███ █▀ ▀███▀███▀ ██████████ ▄████████▀ ▀██████▀ ▀█ ███ █▀ ██████████ 19 | 20 | ███ █▄ ▄████████ ▄████████ ▄████████ 21 | ███ ███ ███ ███ ███ ███ ███ ███ 22 | ███ ███ ███ █▀ ███ █▀ ███ █▀ 23 | ███ ███ ███ ▄███▄▄▄ ███ 24 | ███ ███ ▀███████████ ▀▀███▀▀▀ ▀███████████ 25 | ███ ███ ███ ███ █▄ ███ 26 | ███ ███ ▄█ ███ ███ ███ ▄█ ███ 27 | ████████▀ ▄████████▀ ██████████ ▄████████▀ 28 | 29 | ``` 30 | 31 | # Awesome Uses ![Awesome][awesome-badge] 32 | 33 | * [Christian Hain](https://www.christianhain.com/uses/) — Internet power-user and creator specializing in browser-based experiences. 34 | * [Iago Bruno](https://iagobruno.is-a.dev/uses) — Full-stack developer with ascending in back-end. 35 | * [Rachel Cantor](https://rachel.fyi/uses) — Hiya! I am a Trusted Tester and Frontend Engineer. 36 | * [Joseph Horace](https://basicutils.com/uses) — Speeding through development with precision. 37 | * [Bhautik Bavadiya AKA yesbhautik](https://yesbhautik.co.in/uses) — Crafting the future, Today. 38 | * [Mark Schmeiser](https://yadl.info/en/uses) — Software architect, web developer and engineer 39 | * [Tural Asgarov](https://tural.pro/uses) — Software Engineer/Developer Educator/Content Creator 40 | * [Lubna](https://lubna.dev/uses) — Front-end Developer, Technical Lead, CSS Connoisseur, Design Systems Advocate 41 | * [Toby Nieboer](https://tcn33.com/uses) — Finding awesome humans for Ferocia. Post-technical. 42 | * [Thohirah Husaini](https://thohyr.co/uses) — Software Engineer/Artist 43 | * [James Harding](https://jameshard.ing/uses) — Airline Pilot and Software Engineer 44 | * [Luke Davis](https://lukealexdavis.co.uk/uses/) — I'm a technical SEO, music producer, and blogger based in the UK. 45 | * [Charles Harwood](https://charlesharwood.dev/uses) — Aussie Staff Software Engineer, Dad, World's okayest guitarist 46 | * [Scott Willsey](https://scottwillsey.com/uses/) — Podcaster, Blogger, Mac Nerd 47 | * [Prinz Piuz](https://prinzpiuz.in/uses/) — Nerd, Web Developer, Software Engineer 48 | * [K Gopal Krishna](https://kayg.org/uses) — Devops and Storage Engineer 49 | * [Mike Simmonds](https://mike.id/uses) — A UK-based, Front-end Software Engineer. 50 | * [Simon Depelchin](https://simondepelchin.be/uses) — Freelance PHP/JS developer. 51 | * [Alphan Günaydın](https://ialphan.com/uses) — Principal Developer 52 | * [Carlos D. Álvaro](https://cdalvaro.io/uses) — Senior Software Engineer, Apple fan and sports lover 53 | * [Abdujabbar Bozdar](https://yabozdar.com/uses/) — C Programmer, Systems Engineer 54 | * [Jakob Greenfeld](https://jakobgreenfeld.com/uses) — Founder 55 | * [Bino Kochumol Varghese](https://binovarghese.com/uses/) — Developer. Writer. 56 | * [John Hammond](https://mathsquirrel.com/posts/2024/01/uses/) — Teaching Professor and Nerd 57 | * [Daniel Rotter](https://danielrotter.at/uses) — Senior Fullstack Developer at Yummy Publishing and organizer of the VlbgWebDev Meetup 58 | * [Adam Chamberlin](https://adamchamberlin.info/uses) — Web developer and consumate athlete from the UK. 59 | * [Jon Seager](https://jnsgr.uk/uses) — Husband, father, leader, software engineer, geek 60 | * [earendelmir](https://earendelmir.xyz/uses/) — Computer engineer dreaming of living a hobbit life. 61 | * [Sebastian Herrmann](https://herrherrmann.net/uses/) — Web developer, musician, and hobby photographer 62 | * [Dinesh Haribabu](https://dineshharibabu.in/uses) — Frontend Engineer and tech enthusiast 63 | * [Krishna Sahu](https://sahu.framer.website/uses) — Frontend Tech Lead 64 | * [Preshit Deorukhkar](https://nuclearbits.com/uses) — Tech Enthusiast & Consultant 65 | * [Sudan Chapagain](https://sudanchapagain.com.np/uses) — Student 66 | * [Tim Benniks](https://timbenniks.dev/uses) — Developer relations, speaker, content creator 67 | * [Damian Cyrus](https://damiancyrus.com/uses) — Full Stack Developer, Front-end Software Engineer, Tech Lead, DevDad. 68 | * [Allan Deutsch](https://allandeutsch.com/uses) — Builds things on the internet. 69 | * [Gaurav Kesh Roushan](https://gauravkesh.github.io/uses/) — Fullstack Developer specializing in web development with experience in backend, frontend, and cloud technologies 70 | * [James Auble](https://jamesauble.com/uses) — Full Stack Developer 71 | * [Andrew Bus](https://andrewbus.com/uses) — Senior Lead Software Engineer 72 | * [Ronny Coste](https://ronnycoste.com/uses) — Creative Developer, Photographer, Homelab Admin, and Ham Radio enthusiast 73 | * [Matt Obee](https://mattobee.com/uses) — Design technologist specialising in accessibility. 74 | * [Mariusz Szubryt](https://szubryt.net/uses) — Frontend-oriented Product Engineer 75 | * [Md Fazley Rabbi](https://fazleyrabbi.xyz/uses/) — Web Developer based on bangladesh who loves tech and gadgets 76 | * [Colin Ramsay](https://colinramsay.co.uk/uses) — Director and software developer at Go Tripod in Cornwall 77 | * [Matthieu Bozec](https://matthieu.bozec.org/uses) — Full Stack developer at 4h04 78 | * [Frank Adler](https://adfr.io/uses) — Father, Astrophotographer, Frontend Engineer 79 | * [Chris Funderburg](https://chris.funderburg.me/uses) — Consultant Platform / DevSecOps Engineer. A Texan living in England. 80 | * [Dennis Sauvé](https://gist.github.com/dengsauve/e344ef7d8bd0d194b602e8b2d4490f98) — DevOps Engineer w/Dev roots in the Pacific North West! 81 | * [Jana](https://janasundar.dev/uses) — Full Stack Developer & Javascript Enthusiast 82 | * [Daniel Flanagan](https://lyte.dev/uses) — Developer, platform engineer, and homelab administrator 83 | * [Akif Al Hakim](https://akif.my.id/uses) — Frontend Developer. 84 | * [Kalwabed Rizki](https://www.kalwabed.com/uses/) — Fullstack engineer, speaker, instructor. 85 | * [Eric T Grubaugh](https://stoic.software/uses) — SuiteScript Coach 86 | * [James O'Neill](https://www.jamesoneill.eu/uses/) — Full Stack Developer. 87 | * [Hwee-Boon Yar](https://hboon.com/uses/) — iOS/macOS app Developer. 88 | * [Jonas Hietala](https://www.jonashietala.se/uses/) — Writer, developer and wannabe code monkey. 89 | * [Marshall Bowers](https://maxdeviant.com/uses/) — Conjurer of code. Devourer of art. Pursuer of æsthetics. 90 | * [Simon Gagnon](https://simoncrypta.dev/uses/) — Makes software and coffee 91 | * [Sho Koike](https://putcut.net/uses) — Software Engineer, Gamer, Podcaster 92 | * [Michal Mazur](https://cybershu.eu/uses.html) — Backend Software Engineer, Blogger, Digital Nomad, Technical Generalist 93 | * [Khafizi Noh](https://mkfizi.dev/uses) — Full-stack web developer based in Cyberjaya, Malaysia. 94 | * [Theodoros Ploumis](https://www.theodorosploumis.com/en/uses) — Full-stack Drupal developer and open-source evangelist based on Greece 95 | * [Dietrich Wambach](https://dietrichw.gitlab.io/blogfolio/uses) — Full Stack, Embedded, SRE, Python, Linux, Runner, Yoyoer 96 | * [Angel Cruz](https://angelcruz.dev/uses) — SR Backend (PHP / Laravel / WordPress) developer. 97 | * [Mina Markham](https://mina.codes/uses) — Engineer, designer, and design systems enthusiast. 98 | * [Saiful Alam Rakib](https://msar.me/uses) — Laravel and React developer and Technology enthusiast 99 | * [Sophie Koonin](https://localghost.dev/uses) — Web developer, conference speaker, dog botherer 100 | * [Brandon Lim](https://justbrandonlim.com/uses) — Software Engineer based in Singapore 101 | * [Tim Bachmann](https://tiim.ch/pages/uses) — Software Engineer from Switzerland, currently working on one of my way too many side projects. 102 | * [Neil Gupta](https://www.neil.gg/uses) — Designed in California. Assembled in Chicago. I like to build things. 103 | * [Neil Grogan](https://www.neilgrogan.com/uses) — Software Engineering Manager in Telco Domain - based in middle of Ireland! 104 | * [Jose Munoz](https://www.josemunozmatos.com/uses) — Product Designer from Puerto Rico 105 | * [Ibrahim Nurul Huda](https://www.sarbeh.com/uses) — creates visual narratives on web development, design, and Sharia studies. 106 | * [uncenter](https://www.uncenter.dev/uses) — Open source software developer, geography nerd, and high school student. 107 | * [Ignatius Bagus](https://mauss.dev/uses) — Software Alchemist 108 | * [Bob Reus](https://bobre.us/uses) — DevOps Engineer, eBook producer, Freediver, Buddhist 109 | * [Donavon West](https://donavon.com/uses) — Spread Love {...❤️} 110 | * [Noah](https://mazepin.ch/uses) — Swiss + Sysamdin 111 | * [Jesse Stilwell](https://stilwell.dev/uses) — DevOps Engineer and Hobbyist Web Developer 112 | * [Raymond Luong](https://www.raymondluong.com/uses/) — Front End Platform + Design Systems Engineer 113 | * [Luka Harambasic](https://harambasic.de/uses) — German/Croatian product manager from Copenhagen (Denmark) with a deep interest in web development. 114 | * [Justin Mahar](https://justinmahar.com/uses/) — Extremely bald Software Architect & Content Creator 115 | * [Syofyan Zuhad](https://syofyan-profile.vercel.app/uses/) — Full Stack Software Engineer 🇮🇩 116 | * [Zach Patrick](https://zachpatrick.com/uses) — JavaScript and PHP developer 117 | * [Adler Medrado](https://adlermedrado.com.br/uses/) — Computer Programmer - Programming is not only a skill but my passion. 118 | * [Zilvinas Kucinskas](https://www.ziku.dev/uses/) — Full Stack Ruby on Rails Engineer and Entrepreneur 119 | * [Carlos Alexandro Becker](https://carlosbecker.com/uses) — A site reliability engineer, from Brazil 120 | * [Andy Carolan](https://www.andycarolan.com/uses/) — Illustrator, Graphic Designer, No Code, Remote 121 | * [Jeremiah Lee](https://www.jeremiahlee.com/uses/) — Web Developer, Digital Rights Activist, Macro-optimist 122 | * [Alex O'Reilly](https://alekzandriia.com/uses/) — Scientist turned Web developer from the Great White North. 123 | * [Martin Bean](https://martinbean.dev/uses) — Web developer and software engineer. 124 | * [Jaime Creixems](https://webjac.com/uses) — Design Leader, Advisor and Mentor. 125 | * [Dominic Ruggiero](https://userexe.me/uses) — Student and idiot 126 | * [Lucas Mancini](https://lucasmancini.au/uses) — Software Development Engineer, specializing in Frontend 127 | * [Lars Magnus Klavenes](https://larsmagnus.co/uses) — Frontend engineer, designer and manager supercharging the web 128 | * [Maicol Santos](https://maicolsantos.github.io/#/uses) — Front End Developer. 129 | * [Carretta Riccardo](https://carrettariccardo.dev/uses/) — Software Developer & UX/UI Designer 130 | * [Christian Babin](https://hexcat.dev/uses) — Flutter developer, tech enthusiast, and web manager creating elegant digital solutions. 131 | * [Antonio Sarcevic](https://sarcevic.dev/uses) — excited by ui development 132 | * [Josh Medeski](https://www.joshmedeski.com/uses/) — Full-stack developer and content creator. 133 | * [Simon Rogers](https://midnite.uk/uses) — Software Engineer 134 | * [Allan Im](https://allanim.com/uses) — Software Engineer 135 | * [Vijay Goswami](https://vijaygoswami.in/uses) — Full Stack Developer from Agra, Uttar Pradesh 136 | * [Edimar Calebe Castanho](https://blog.calebe.dev.br/uses.html) — A passionate embedded systems developer from Brazil 137 | * [Ihtisham Khan](https://iihtisham.com/uses.html) — Full-Stack Web Developer | Tech Enthusiast 138 | * [Robb Knight](https://rknight.me/uses) — Developer, Podcaster, Lego Builder, Cat Owner 139 | * [Riley](https://riley-uses.netlify.app/) — Software Developer 140 | * [Ryan Freeman](https://ryanfreeman.dev/uses) — Full-stack software engineer from Dublin, Ireland 141 | * [Ivan Malopinsky](https://imsky.co/uses) — Entrepreneur, engineer 142 | * [Murendeni Mukwevho](https://mukwevhom.xyz/uses) — Software Developer breaking the bias in South Africa 143 | * [Márk Mihályi](https://markmihalyi.hu/uses) — Full-Stack Engineer from Hungary 144 | * [Vít Baisa](https://vit.baisa.cz/uses) — Software engineer who likes removing code 145 | * [Declan Chidlow](https://vale.rocks/uses) — Frontend developer, designer, dabbler, and user of the information superhighway. 146 | * [Kendry Grullón](https://kengru.do/uses) — Software engineer interested in art 147 | * [Marko Bajlovic](https://marko.tech/uses) — Multidisciplinary creative and developer; forever learning. 148 | * [Michael Amore](https://codewithlove.blog/uses) — Technologist, software creator, wannabe hacker. Father. Dog Lover. 149 | * [voitech](https://voitech.lol/uses/) — English teacher, IT specialist, programming instructor, cyber security educator, personal knowledge management consultant 150 | * [Seirdy](https://seirdy.one/about/uses/) — I write about and develop software to promote user autonomy. 151 | * [Ruslan Osipov](https://ruslan.rocks/uses) — Full Stack Developer, SEO Enthusiast, Entrepreneur, work @ REA Group 152 | * [H. Kamran](https://hkamran.com/uses) — Hello world! I'm a developer who writes articles on things that interest me or I find useful, and takes photos! 153 | * [Catalin Ciubotaru](https://catalincodes.com/uses) — Frontend Developer, writes stuff, sometimes makes sense. 154 | * [Daniel Roe](https://roe.dev/uses) — Nuxt architect and open source lover 155 | * [Alberto Ventafridda](https://halb.it/uses/) — Developer, hacker. Passionate about cyber security, web development and distributed systems. 156 | * [Vikash Patel](https://vk4s.github.io/uses/) — Engineer, Programmer, Web Developer 157 | * [Devika Bhapkar](https://github.com/devikabhapkar/uses) — Student,Content creator 158 | * [Shariq Raza Qadri](https://cosmicqbit.dev/uses) — DevOps & Cloud Engineer 159 | * [John Floren](https://jfloren.net/uses) — Programmer and hobbyist electronics designer interested in computing history. 160 | * [Stijn Elskens](https://www.stijnelskens.com/uses) — Frontend Web Developer based in Leuven, BE. 161 | * [Rico van Zelst](https://rico.sh/uses) — Full Stack Developer passionate about creating innovative web solutions. 162 | * [Daine Mawer](https://www.dainemawer.com/uses) — Experienced Front-end Developer based in Cape Town, South Africa. 163 | * [Tobias Sjösten](https://www.seastone.io/uses/) — Jack of most software trades, master of a few 164 | * [Nick Reutlinger](https://nickreutlinger.de/uses) — Web Developer with Javascript and SvelteKit 165 | * [Rebecca Owen](https://beccais.online/uses/) — Indie iOS developer, software engineer, cat Mum, human Mum. Rarely in that order! 166 | * [Gavin Pereira](https://gavinpereira.in/uses) — Graphic designer & frontend developer from Goa, India 167 | * [Tim Mouskhelichvili](https://timmousk.com/uses/) — Freelance Developer & Consultant from Montreal, Canada 168 | * [Jayden Garridan Bridges](https://foreverliketh.is/docs/assortments/uses/) — Teacher. Web Developer. 169 | * [Vladimir Vo](https://vldmr.website/uses) — Frontend developer with passion for great product design 170 | * [Joseph Shambrook](https://josephshambrook.dev/uses) — Front-end developer based in Edinburgh, UK 171 | * [Andy Cetnarskyj](https://www.just-andy.uk/uses) — Design Systems Designer from Edinburgh, UK 172 | * [Arvin Zhao](https://isarvin.com/uses) — An introverted geek with great passion. 173 | * [Akash Rajpurohit](https://akashrajpurohit.com/uses) — Software Engineer 174 | * [Marko Kaartinen](https://markok.dev/uses) — Web developer / entrepreneur / geek from Kuopio Finland who makes pizza and burgers at freetime. Also some gaming and well of course personal projects. 175 | * [Bala Hantsi](https://github.com/bhantsi/uses) — Software developer, full stack developer (in training), lately focused on frontend. Enjoy traveling and gaming. 176 | * [Lasha Tatulashvili](https://lashatatu.dev/uses) — Frontend DEV from Tbilisi, Georgia 177 | * [Renan Moura](https://renanmf.com/uses) — Posts for anyone looking to go deeper into Python and find practical ways to apply it in the fields of Web Development, Data Science and Machine Learning 178 | * [David Vidmar](https://vidmar.net/uses) — Technology realist obsessed with digital challenges. IT manager, developer, software architect, technology evangelist and marketing manager. 179 | * [Lazar Miseljic](https://fuzzylogic.ltd/uses) — Front end, but doesn't mind taking a look round the back 180 | * [Marco Heine](https://marcoheine.com/uses/) — Web developer from southern germany who loves to make fast and accessible websites and write about it. 181 | * [Eduar Bastidas](https://mreduar.dev/uses/) — Full Stack Web Developer 182 | * [Albert Zhang](https://www.albertaz.com/uses) — Developer, Designer, Artist, Podcaster, Sports enthusiast. 183 | * [Bumhan "B" Yu](https://bald.design/uses) — "B" as in bald. Designer who writes code—with backgrounds in psychology and linguistics 184 | * [Yassine Bridi](https://yasbr.com/uses) — Developer, Designer, Creator 185 | * [Matt Burns](https://iammattburns.dev/uses) — Full Stack Developer, Lego Builder, Beer Drinker, UK 186 | * [Tom Gooden](https://tomgooden.net/uses) — Born at a very young age. Front-end developer - UX/UI designer. 🐙 187 | * [Marc-André Bombeck](https://bombeck.io/uses) — IT-Project-Manager, Network-Administrator from Germany 188 | * [Ben Lau](https://benlau.net/uses/) — Frontend web developer. From Melbourne, Australia. Now in Berlin, Germany. 189 | * [Manuel Coiai](https://github.com/viralk/uses) — Creative front-end developer living in Pisa, Italy 190 | * [Tim Leland](https://timleland.com/uses) — Full-Stack developer and Blogger. 191 | * [Randall Wilk](https://randallwilk.dev/uses) — Full-Stack Laravel Developer. 192 | * [Reinhart Previano Koentjoro](https://reinhart1010.id/uses) — The first "IT superhero" in Indonesia who transformed to Shift this world. 193 | * [Melanie Kat](https://melkat.blog/p/uses) — Silly front-end engineer (she/her) 194 | * [Dale Larroder](https://www.dalelarroder.com/uses) — Software Engineer, React, TypeScript and Mechanical Keyboards! 195 | * [Salma Alam-Naylor](https://whitep4nth3r.com/uses) — I write code for your entertainment. 196 | * [Luke Oliff](https://lukeocodes.dev/uses) — I am a seasoned Developer Experience Engineer with a rich background in Software Development. 197 | * [Bill Sullivan](https://billsullivan.name/uses/) — Engineering Manager, Senior Engineer, Novice Streamer, and Occasional Entrepreneur 198 | * [Amit Dhamu](https://amitd.co/uses) — Software Engineer, Formula 1 Addict, Tech Junkie, Hip-Hop Head 199 | * [Dominik Gallitzendörfer](https://nharox.com/uses) — Front‑end developer with a focus on UI/UX. Loves CSS and is addicted to Tetris. 200 | * [Andrei Hudovich](https://hudovich.dev/uses/) — Freelance Front-end Engineer, Web Enthusiast, Cat Lover. 201 | * [Andrej Gajdos](https://andrejgajdos.com/uses/) — Startup CTO | Tech Lead | Software Architect | Dev 202 | * [Emmanuel Gautier](https://www.emmanuelgautier.com/uses) — Solution Architect & Fullstack Developer living in France. Tech enthusiast and Data Lover. 203 | * [Mahesh Rijal](https://maheshrijal.com/uses) — Human, Troubleshooter, Amateur Swimmer, Reader 204 | * [Alan Redzepagic](https://alanred.me/uses) — Front-end development, web native, tech enthusiast 205 | * [MITSUBOSHI Yuya](https://github.com/MITSUBOSHI/uses) — Software Engineer 206 | * [Vega Deftwing](https://opguides.info/posts/uses/) — Furry forging firmware from frustration 207 | * [Oscar Marion](https://www.oscarmarion.dev/uses) — French front-end engineer based in Brussels. 208 | * [Amr Diab](https://www.amrdiab.dev/uses) — Web Developer, open-source enthusiast, gamer, and lifelong learner. 209 | * [Thiago Avelino](https://avelino.run/uses) — 🧙‍♂️ Open Source Engineer at prestd, GitHub Star - 🏊‍♂️🚴‍♂️🏃‍♂️ Triathlete (IRONMAN distance) - 🌱 ᴘʟᴀɴᴛ-ʙᴀsᴇᴅ 210 | * [Dean Lofts](https://loftwah.github.io/uses) — Loftwah The Beatsmiff, Hip Hop Producer, Graphics, Socials, Video and Web 211 | * [Himank Barve](https://hbarve1.com/uses) — Full Stack JavaScript Developer, Open Source Enthusiast 212 | * [Matthew Tao](https://www.matthewtao.com/uses) — Computer Science student who loves CSS. Focuses on the little things that make a website delightful. 213 | * [William Chin](https://yourdigitalaid.com/uses/) — Web Developer, Product Manager, Digital Marketer, always trying to learn more. 214 | * [Marcin Dyguda](https://www.dyguda.com/uses/) — Head of Engineering, Entrepreneur-wannabe, product leader and team builder at heart 215 | * [Angélique Weger](https://angeliqueweger.com/uses) — engineering manager :: adjunct prof :: always learning 216 | * [Seagyn Davis](https://www.seagyndavis.com/uses) — Full stack human. Hobby runner. Mainly a husband and dad. 217 | * [Marc-Antoine Dion](https://marcantoinedion.com/uses) — Full Stack. Rookie cyclist. Part time blogger at @thewannabeceo. 218 | * [Simon Smale](https://github.com/SSmale/uses) — Full Stack Developer and beginner digital gardener 219 | * [Amolith](https://secluded.site/uses/) — Musician, developer, sysadmin, co-host of the Linux Lads, small business owner, and founder of not-for-profit NixNet 220 | * [Aleksey Razbakov](https://razbakov.com/uses/) — Indie Hacker. Web Developer. Salsa Dancer. 221 | * [Ayush Gupta](https://ayushgupta.tech/uses/) — React & React Native developer, passionate photographer, technical writer and occasionaly designer. 222 | * [Alvin Bryan](https://alvin.codes/uses) — Loves coding maps, graphics and games. 223 | * [S. M. Abdul Aziz](https://www.sayemon10.com/uses) — designer <=> developer 224 | * [Taisuke Mino](https://taisukemino.com/uses/) — Crypto Entrepreneur 225 | * [Shawn D'silva](https://www.shawndsilva.com/uses) — Full Stack Web Developer, Designer and Embedded Systems enthusiast 226 | * [Sreetam Das](https://sreetamdas.com/uses) — Software Developer from India. 💜 React, TypeScript and Mechanical Keyboards! 227 | * [Maxim Villivald](https://villivald.com/uses) — Web Developer, IT Student 👨‍💻, Blogger & part time Tram Driver 🚃. 228 | * [Matt Holovach](https://www.coloradoseodesign.com/uses.php) — Loves SEO, improving coding skills and good food 229 | * [Bradley Shellnut](https://bradleyshellnut.com/uses) — Fullstack software engineer who loves learning new things. Also music 🎶, hiking ⛰️, and cocktails 🍸. 230 | * [Justin De Leon](https://jusdeleon.vercel.app/uses) — Coding, video games, and pizza 🍕 231 | * [Sascha Diercks](https://saschadiercks.de/uses/) — Building Solutions as Lead Frontend Developer • Designer & Maker of useful Things too • Into Design-Systems and Web-Performance 232 | * [Jordi Ollé Ballesté](https://jordi-olle.com/uses) — Full Stack Dev, mountain lover, minimalism embracer 233 | * [Joshua Rose](https://jrgiant.tech/uses) — Loves Christ, loves family, loves programming, full stack dev 234 | * [Victor Pierre Alves](https://victorpierre.dev/uses) — Senior Software Engineer. I mostly code in Go these days. I live in Canada. 235 | * [Christian Tietze](https://christiantietze.de/uses) — Mac app dev, Zettelkasten zealot, tinkerer and writer 236 | * [Diego Costa](https://diegocosta.me/uses) — Engineering Manager and Full-stack software engineer 237 | * [Jeremiah Boby](https://jerbob.me/uses) — Python developer specialising in web tech 238 | * [Haryel Gillet](https://peaceful-leavitt-25b1d3.netlify.app/uses) — FullStack Developer focused on Backend 239 | * [Stefan Zweifel](https://stefanzweifel.dev/uses/) — Full Stack Developer trying to make the web a better place. Working mostly with Laravel and Tailwind CSS. 240 | * [Christopher Kruse](https://www.ballpointcarrot.net/uses/) — lifelong tech nerd, DevOps and Tools builder, dad, and choral singer 241 | * [Rowe Morehouse](https://rowe-morehouse.github.io/resume/uses/) — Growth · Product · Software Project Management · Frontend Dev · Design · Technical Writing · Sales 242 | * [Erik Hedin](https://www.erikhedin.com/uses/) — Full-stack Web Developer 243 | * [Alyssa Holland](https://www.alyssaholland.com/uses/) — Frontend developer with a passion for learning! Writes about programming and productivity tips. 244 | * [Andrew Gilliland](https://www.andrewgilliland.dev/uses/) — Web Developer, Co-Organizer Pensacola Devs, Certified Personal Trainer, Yacht Rocker, and Brand Ambassador for Blockbuster Video 245 | * [Adi Purnomo](https://github.com/medival/uses/) — Front End Developer x Network Engineer 246 | * [Matt James](https://mattfrankjames.com/uses/) — Senior Front-end Software Engineer & Web Design Teacher 247 | * [Patrik Trefil](https://patriktrefil.com/uses/) — Developer from Europe, Linux and open-source fan 248 | * [Marty Romero](http://martyromero.me/uses/) — Front-end UI developer 249 | * [Michael Kitzman](https://www.michaelkitzman.com/uses) — Frontend Engineer who loves sports 🏈 🏀 ⚽ , music 🎸, design 🎨 and hot sauce ❤️‍🔥. 250 | * [Philip Boardman](https://brd.mn/uses/) — Software Engineering Manager, Full Stack Developer 251 | * [Martín Morales](https://mrtnmrls.com/uses/) — Android Mobile Developer, Mechatronic Engineer 252 | * [Sheila Leon](https://sheilaleon.tech/uses/) — Self-taught Front-end Dev, Designer & Product Manager 253 | * [Bram Smulders](https://bram.is/using) — Front-end UI developer 254 | * [Rubén Sospedra](https://sospedra.me/uses) — JavaScript Software Engineer, speaker, and trainer 255 | * [Juan Villela](https://cleverlaziness.xyz/uses/) — I like websites. Occasionally, I make them. 256 | * [Zack Apiratitham](https://vatthikorn.com/uses) — Software developer, nerd, unapologetically Asian, 🇹🇭 “alien” living in 🇺🇸. My name is actually not Zack. 257 | * [Jeromey Balderrama](https://balderromey.com/uses/) — Web Developer, Designer, Photographer, Drummer 258 | * [Hamish Williams](https://hamishw.com/uses) — Multidisciplinary designer + developer. 259 | * [Dennis Mathenge](https://creativehubspace.com/uses) — Web Developer 260 | * [Jan Lavička](https://janlavicka.com/uses) — Creator, full-stack software developer, and indie hacker. 261 | * [Ali Alaa](https://www.alialaa.dev/uses) — Front-end web developer & online learning content creator. 262 | * [Devansh Bajaj](https://devanshbajaj.dev/uses) — 21 | M | Front End | Web Developer | Freelancer | Android enthusiast 263 | * [Ivan Muratov](https://binakot.github.io/resume/uses) — SOFTWARE DEVELOPER. TECHNICAL TEAM LEADER. CHIEF TECHNICAL OFFICER. 264 | * [Carlos Longarela](https://github.com/CarlosLongarela/uses/) — I enjoy solving problems and creating new stuff. WordPress lover and developer. Standards enthusiast 265 | * [Monespiseth Ly](https://pisethx.com/uses) — Frontend Developer, JavaScript Enthusiast 266 | * [Christian Oliff](https://christianoliff.com/uses/) — Front-end web developer person. 267 | * [Mauro Reis Vieira](https://mauroreisvieira.com/uses/) — Front End Developer, fully focused on JavaScript, React and Tailwind CSS 268 | * [Caneco](https://caneco.dev/uses) — Fullstack Developer at #Medicare 269 | * [Thomas Sambruni](https://www.tsambruni.dev/uses) — Cloud Data Engineer 270 | * [John Irle](https://johnirle.com/blog/uses) — Graduate Student, Intern Developer at Charter and Go 271 | * [Prashant Bhapkar](https://github.com/Prashant-Bhapkar/uses) — Developer, Entrepreneur, Content Creator 272 | * [Diana García](https://dianaeli.netlify.app/uses) — Diana likes to code, to teach and to game 273 | * [Kieran Osgood](https://osgood.dev/uses/) — Full stack developer. Curiosity in all. 274 | * [Adam DeHaven](https://www.adamdehaven.com/uses/) — Full-Stack Software Engineer, UX Designer, runner, and cyclist based in Louisville, KY 275 | * [Nicolas M. Pardo](https://nikodermus.media/uses) — JavaScript Developer and teacher at debakatas.com 276 | * [Niko Heikkilä](https://nikoheikkila.fi/uses/) — Software Craftsman and Open-Source Advocate at Futurice 277 | * [Satyam Lachhwani](https://portfolio-satyam.now.sh/uses) — Web developer - Exploring ways to find out what's good for me. 278 | * [Matt Gregg](https://codegregg.com/uses) — Front end software engineer. Baker. Woodworker. Musician. Nerd. 279 | * [François Vantomme](https://code.strigo.cc/uses/) — Software craftsman 280 | * [Camille Hodoul](https://camillehdl.dev/uses/) — Remote fullstack developer, mostly Javascript & PHP 281 | * [Diogo Ferreira](https://diogoferreira.pt/uses) — Linux System Administrator and DevOps aficionado. Sometimes I write on the internet. 282 | * [Swapnil Agarwal](https://swapnil.net/uses/) — Software Developer turned Product Manager turned Product Designer | INFP | Avid Reader 283 | * [Zlatan Stajic](https://www.zlatanstajic.com/uses) — M.Sc. in Computer Science. Working as Software Developer. Creator of libraryfy.com. 284 | * [Guillaume Briday](https://guillaumebriday.fr/uses) — Senior Full Stack developer and DevOps 285 | * [Brian Hamburg](https://burgbits.com/uses) — Web Developer, Designer, and Musician 286 | * [Emanuele Bartolesi](https://www.emanuelebartolesi.com/uses) — Microsoft 365 Architect. Microsoft MVP & GitHub Star ⭐ 287 | * [Patrick Lee](https://patricklee.nyc/uses) — Software Engineer, Engineering Manager, and Productivity tool nerd 288 | * [Ajmal Afif](https://ajmalafif.com/uses) — Digital designer 289 | * [Erik Kroes](https://www.erikkroes.nl/uses) — Photographer and creative in the world of accessibility 290 | * [Ben Myers](https://benmyers.dev/uses/) — Web developer. Accessibility advocate. Human T-rex. 291 | * [Christian Goben](https://christiangoben.com/uses) — Software engineer, problem solver, automation sorcerer. On an endless pursuit for good coffee. 292 | * [Alex Duval](https://www.alexduval.fr/uses) — Fullstack Dev, Teacher, Freeride skier 293 | * [Dave Redfern](https://daveredfern.com/uses) — I design and develop user‑centered experiences that deliver measurable returns. 294 | * [Caro Appleby](https://caro.fyi/uses) — Indie programmer, textile artist, musician, endlessly curious 295 | * [Trevor Morris](https://www.trovster.com/about/uses) — I am a movie-loving, mountain-bike-riding web developer from the UK. 296 | * [Nick Morris](http://nickmorris.name/uses) — I am a music-loving, dog having, skiing, software engineer from California living in NYC. 297 | * [Gianluca Fabrizi](https://gianlucafabrizi.dev/uses/) — Fullstack Developer, DevOps, maker/tinkerer 298 | * [Dylan Sheffer](https://www.dylansheffer.com/posts/uses/) — Web Developer. A11y Advocate. Tea Enthusiast. 299 | * [Matías Hernández](https://github.com/matiasfh/uses) — Frontend Engineer, Podcaster, Father, Calisthenic Athlete 300 | * [Sean Coker](https://sean.is/using) — Creator & Thinker. Sometimes simultaneously. 301 | * [Michael Bonner](https://michaelbonner.dev/uses) — Full stack JavaScript and PHP developer in Salt Lake City, USA 302 | * [Mark Nenadov](https://github.com/MarkNenadov/uses) — Full stack developer in the deep south of Canada (LaSalle, Ontario) 303 | * [Filip Kalousek](https://blog.filipkalousek.cz/uses/setup) — Frontend Developer & Idea Maker 304 | * [Agu Valeriani](https://agustinvaleriani.com/uses) — Software developer, previously more full stack, lately focused on frontend. Enjoy traveling and gaming. 305 | * [R74n](https://r74n.com/uses) — Web developer with many elaborate projects 306 | * [Dennis Muensterer](https://muensterer.tech/uses) — Inherently lazy and striving to do less. 307 | * [Yash Singh](https://www.yashsingh.us/uses) — Fullstack web software developer 308 | * [Celso Palmeira Neto](https://celsoneto.com.br/uses) — Software Engineer focused on Backend development 309 | * [Gabor Gyure](https://www.gaborgyure.com/uses) — Fullstack developer with lots of love for industry and engineering in Europe. In love with boardsports, the semantic and accessible web 310 | * [Ben Brougher](https://benbrougher.tech/uses) — Full stack enterprise web devloper from the Pacific Northwest. 311 | * [Diogo Moreira](https://diogomoreira.dev/uses) — Professor, Software Engineer and Researcher. 312 | * [Philip Van Raalte](https://philvr.ca/uses) — Full Stack Developer that loves music 313 | * [Vincent Lejtzén](https://lejtzendesign.se/uses) — Front end developer with love for design, user experience and SEO. 314 | * [Jakub Soboczyński](https://jakubsoboczynski.pl/uses) — Frontend Developer, who actively explores other technologies and paths, including backend development, and contributes to open-source projects like Raycast, while also having a passion for automation and electronic music, particularly dark techno. 315 | * [Ian Emnace](https://ig.emnace.org/uses.html) — Web developer. Unix citizen. 316 | * [Yves Engetschwiler](http://bee-interactive.ch/uses) — Developer, cms enthusiast, bicycle traveler, content creator, Independent at Bee Interactive 317 | * [Sapan Bodiwala](https://sapanbodiwala.com/uses) — Full Stack Software Engineer 318 | * [Neil Italia](https://blog.neilitalia.dev/uses/) — UI/UX Designer + Front-End Developer Unicorn Combo 319 | * [Felix Yeboah Jefferson](https://jeffson.netlify.app/uses) — Fullstack Developer, UI Designer & a Nomad 320 | * [Anubhav Srivastava](https://theanubhav.com/uses) — Web Developer. Occasional blogger. Part time open source contributor 321 | * [Alexander Christiaan Jacob](https://alexanderchristiaanjacob.com/uses) — A guy that does things, and thinks that having a reason for doing so is largely overrated. 322 | * [Ruben Janssen](https://rubenjanssen.me/uses) — Front-end Developer, Gadget G33k, Guild Lead 323 | * [Nikola Đuza](https://pragmaticpineapple.com/uses) — Nikola helps developers improve their productivity by sharing pragmatic advice & applicable knowledge on JavaScript and Ruby. 324 | * [Josh Collinsworth](https://joshcollinsworth.com/uses) — Front end dev in love with all things Vue, Svelte, CSS, and WordPress. Works in Ruby on Rails. 325 | * [Amodu Kehinde](https://amodukehinde.vercel.app/uses/) — MERN Stack Developer 326 | * [Manassarn "Noom" Manoonchai](https://garden.narze.live/uses) — Coding, Productivity, Technologies, macOS, Keyboard 327 | * [Ayoub Sousali](https://www.sousali.com/blog/uses/) — Software Developer 328 | * [Jordan Haines](https://jordanairwave.co.uk/uses.html) — Full Stack Web Developer 329 | * [Josh Corbett](https://toastyblog.com/uses) — Developer by day, gamer by night. 330 | * [Jay Tyrrell](https://jaytyrrell.co/uses/) — Full Stack Developer 331 | * [Eva Dee](https://includejs.dev/uses) — Web Developer. Note-taker. Trying to Do Good. 332 | * [Nikita Karamov](https://www.kytta.dev/uses) — A π-shaped Python & JavaScript developer who loves minimalism and linguistics 333 | * [Elio Struyf](https://www.eliostruyf.com/uses) — Engineering Lead / Office Development MVP / Public Speaker 334 | * [Matteo Scarpa alias Fundor333](https://fundor333.com/uses) — Backend Pythonista with a Photocamera and a cup of tea 335 | * [Jakub T. Jankiewicz](https://jakub.jankiewicz.org/uses/) — Front-End Developer, Blogger, Teacher, Mentor, and Open Source programmer 336 | * [Lucas Schumacher](https://aceto.dev/uses) — Fullstack Developer, IoT & DIY Enthusiast 337 | * [Christian Lohr](https://blog.bytewerk.io/uses/) — Passionate Software Engineer & Life Long Learner 338 | * [Kristof Zerbe](https://kiko.io/uses) — Passionate software developer for almost 30 years and currently a tech-savvy IT manager 339 | * [Jonas Jore](https://github.com/JonasJore/dotfiles/blob/master/uses-tech.md) — Fullstack Developer, Problemsolving, coffee and fancy terminaltricks! 340 | * [Marko Haberl](https://marko-haberl.com/uses) — Fullstack Developer 341 | * [Marcus Virginia](https://marcusv.me/uses) — Software engineer specializing in web tech, amateur designer, & frequent flyer 🛩️. 342 | * [sheep](https://sheepdev.xyz/uses) — software engineer from zagreb, croatia 343 | * [Mario Sanchez Carrion](https://mariosanchez.org/uses/) — Junior Web Developer Based in Miami, FL 344 | * [Anthony Del Rosario](https://adelrosarioh.me/uses) — Experienced Full Stack Software Engineer & Computers Lover 345 | * [Sythe Veenje](https://sythe.nl/uses) — Freelance Developer & Designer 346 | * [Christopher Talke](https://talke.dev/uses) — ICT Professional / Fullstack Web Developer and Skateboarder 347 | * [Ammar Alakkad](https://ammar.codes/uses/) — Sr. Frontend Engineer 348 | * [Marko Denic](https://markodenic.com/uses/) — Web Developer 349 | * [Oleg Perchyk](https://himynameisoleg.com/uses) — Web developer - also ride bmx and cook alot. :wq 350 | * [Dhananjay Porwal](https://github.com/DhananjayPorwal/Grey-Test/blob/gh-pages/dhananjayporwal_uses.md) — Self taught Cyber Security Analyst, Graphic Designer and Front-end Developer 351 | * [Robert Michalski](https://robert-michalski.com/uses/) — Full Stack Developer going serverless 352 | * [First Kanisorn Sutham](https://heyfirst.co/uses) — Full Stack Software Engineer, Runner, Coffeeholic 353 | * [Henrik Nyh](https://henrik.nyh.se/uses) — Swedish web developer in Yorkshire, UK. 354 | * [Manoj Barman](https://manojbarman.in/uses) — Working hardly, or Hardly working.. 355 | * [Monica Powell](https://www.aboutmonica.com/uses/) — Hi! I'm a product engineer who is passionate about making open-source more accessible and community building 356 | * [Hideki Jinnai](https://github.com/dekisr/uses) — Lifelong Learner 357 | * [NaveenSingh](https://naveensingh.dev/uses/) — Full Stack Developer from India, Coimbatore 🇮🇳 358 | * [Raul Melo](https://raulmelo.dev/uses) — Developer, writer in my spare time, open-source contributor. Believes the only way to transform lives is through education. 359 | * [Ryan Harris](https://ryanharris.dev/uses) — dev @ fauna. organizer @ reactadelphia. streamer @ twitch.tv/ryan_c_harris. member of @thelivecoders. 360 | * [Axel Larsson](https://axellarsson.com/blog/what-i-use/) — Full-stack developer 361 | * [Laura Zumbakyte](https://desinni.dev/uses) — Front-end engineer, and a healthy lifestyle enthusiast. 362 | * [Chris Hufnagel](https://chrishufnagel.com/uses/) — Front End Developer & Designer 363 | * [Jeff Szuc](https://jeffszuc.com/uses) — UX Designer, Frontend Developer, Lifelong Learner. 364 | * [Maxim Zubarev](https://maximzubarev.com/uses) — Enthusiast with an opinion. I use things, press buttons, and sometimes go to places. 365 | * [Andrew Nguyen Vo](https://awnvo.com/uses) — Lover of code, coffee, and karaoke 366 | * [Jitendra Nirnejak](https://nirnejak.com/uses) — Developer, Designer and Blogger 367 | * [Elijah Rwothoromo](https://rwothoromo.wordpress.com/2020/05/29/uses/) — Software Developer, Poet, code and play! 368 | * [davidak](https://davidak.de/uses/) — Creating Free Software, with a focus on QA. 369 | * [Sudhanshu Bajaj](https://www.sudhanshubajaj.com/uses/) — Code. Travel. Sleep. Repeat. Magento Developer 370 | * [Jack Jackson](https://blog.scubbo.org/uses/) — I make things to help people do things 371 | * [Enea Xharja](https://eneaxharja.com/uses) — Web Developer 372 | * [Dhanish Gajjar](https://dhanishgajjar.com/uses) — Developer 373 | * [Ricardo Morais](https://ricardomorais.dev/uses) — Senior Front-end Developer, Software Engineer @ Nextbitt 374 | * [Aditya Thebe](https://www.adityathebe.com/uses) — 💻 Full Stack Developer with an interest in bitcoins and blockchain. 375 | * [Travis Luong](https://www.travisluong.com/uses) — Full Stack Developer 376 | * [Michal Kolacek](https://michalkolacek.xyz/uses) — Analytics Engineer 377 | * [Alex Zmn](https://www.monolog.dev/uses/) — Product Owner by day, dabbling in JavaScript, Rust and self-hosting by night. 378 | * [Anh Thang Bui](https://anhthang.org/uses/) — Software Engineer who passionate about building web applications and sites using Node & JS frameworks. 379 | * [Habib Hinn](https://habibhinn.com/uses) — Pricipal Engineer & Senior Frontend Engineer 380 | * [Jibin Thomas](https://jibin.tech/uses) — Front-End Developer & Casual Blogger. CSS, Javascript & React 381 | * [Michael Rolfsen](https://boldandfriendly.de/uses) — Designer and Front-of-the-Front-End Dev. I suck at guitar. 382 | * [Michael Read](https://www.michaelcread.com/uses) — Full Stack Web Developer. 383 | * [Simon Aronsson](https://simme.dev/uses) — Developer Advocate, Cloud and DevOps Aficionado, Full-stack Developer 384 | * [João Pescada](https://joaopescada.com/uses) — Technologist and Consultant for web apps 385 | * [Saurabh Sharma](https://itsjzt.com/uses) — Full stack web developer making e-commerce websites and SaaS 386 | * [Wes Bos](https://wesbos.com/uses) — Maker of this site. Web Developer, Tutorial Maker, Syntax.fm Podcaster, BBQ Lover 387 | * [Frugence Fidel](https://frugencefidel.com/uses) — I'm 🇹🇿 React Developer 388 | * [Aaron Conway](https://aaronconway.co.uk/uses) — Developer who can design. A designer who can develop. One or the other! (also a podcaster @ thethirdwheel.fm) 389 | * [Matt Stein](https://mattstein.com/uses) — Middle-end web designer-developer-writer. 390 | * [Mohammed Sohail](https://www.msohail.dev/uses) — A full stack web developer developing web applications in Laravel/PHP alongside Next.js, Livewire and Inertia. 391 | * [Ximena Vila Ferral](https://ximenavf.com/uses/) — 💻 🎨 A Mexican born, Texas based designer and developer. 392 | * [Daryl Sun](https://blog.darylsun.page/uses) — I play with software and videogames. Sometimes I write things. 393 | * [Julian Stark](https://julianstark.de/uses) — WordPress Web Developer & Entrepreneur 394 | * [Aris Ripandi](https://ripandis.com/uses) — Software engineer & educator. Open Source enthusiast. 395 | * [Edgaras Benediktavicius](https://edgaras.com/uses) — Hyper curious maker for the Web. Designer and Developer. 396 | * [Shubham Battoo](https://shubhambattoo.in/uses) — Software Engineer focused on Web Technologies from India. 397 | * [Mykolas Krupauskas](https://mkrup.com/uses) — A passionate software developer that helps people create value with technology. 398 | * [João Vitor Zaniolo](https://jvzaniolo.vercel.app/uses/) — Front-end developer, gamer and tech enthusiast. 399 | * [Arturo De la Garza](https://arturodelagarza.com/uses) — Full-stack web developer, avid learner, loves to play video games and board games 400 | * [Ali Şen](https://alisen.me/uses) — Full Stack Developer 401 | * [James Atkinson](https://www.jamesatkinson.me/uses) — Designer and front-end developer, based in the UK. 402 | * [Danny Solivan](https://solivan.dev/blog/uses) — Test engineer. Web developer on the side. 403 | * [Aaron Uurman](https://aaronuurman.com/uses) — Back end developer who likes to develop front end on free time 🤷‍♂️. And I also blog. 404 | * [Steve Della Valentina](https://sdv.im/uses) — Frontend engineer into blogging and digital gardening. 405 | * [Joanna Hosking](https://joannahosking.com/uses) — Web developer, dog mom, football fanatic living in UK 406 | * [Alex Pamphilon](https://apamphilon.com/uses) — Web & mobile app developer, specialising in front-end development. 407 | * [Andrew Byrd](https://www.andrewbyrd.dev/uses/) — Web dev. Girl Dad. Bodybuilder. Gamer. 408 | * [Devin Sharpe](https://devsharpe.io/uses) — Full Stack Web Developer, Typescript Enthusiast & Proud Cat Dad 409 | * [Zachary Kai](https://zacharykai.net/uses) — Offbeat, queer, 20-something, curiosity enthusiast, and traveler. 410 | * [Prakhil TP](https://www.notion.so/Things-Prakhil-uses-e995e61834c242f1b739be9f8819fb0c) — Team lead, Experienced full-stack engineer & non-stop learner. :wq 411 | * [Ryan Filler](https://ryanfiller.com/uses) — Front-End Developer & Designer. Interested in performance, privacy, accessibility, and sustainability. 412 | * [Maxence Poutord](https://www.maxpou.fr/uses) — Software engineer, digital nomad, public speaker and remote worker 413 | * [Johan Hammar](https://www.johanhammar.se/uses) — Software Engineer from Sweden 414 | * [Kevin Gimbel](https://kevingimbel.de/uses) — DevOps Engineer who loves Rust + web dev 415 | * [James Peilow](https://jamespeilow.com/uses) — Front-end Developer, Switch owner, coffee and beer drinker 416 | * [Bob Orchard](https://boborchard.com/uses) — Semi-stack developer with a design background. Woodworker. Maker. 417 | * [Tim Eaton](https://www.timeaton.dev/uses/) — Laravel full-stack developer based in Paris 418 | * [Lucas Becker](https://github.com/runxel/uses) — Real architect who also happens to write code. 419 | * [Martín M.](https://uses.skydiver.dev/) — Dad & Developer (former skydiver) 420 | * [Jamie Bowman](https://www.mrjamiebowman.com/uses) — Full Stack Developer, DevOps, Infrastructure as Code, Penetration Testing, Blogger 421 | * [William Rodriguez](https://williamrodriguez.com/uses) — Full-Stack Developer. TALL Stack Advocate. Less is more. 422 | * [Nathanaël Cherrier](https://mindsers.blog/fr/uses) — Full Stack JavaScript and Swift Developer, Software Caftsman, from Reunion Island based in Lyon, France 423 | * [Keith Donegan](https://www.keithdonegan.com/uses/) — Irish WordPress developer, based in London, UK. 424 | * [Jang Rush](https://mmap.page/uses/) — markdown aficionado who suffers from unix porn addiction (*/*) 425 | * [John SJ Anderson](https://genehack.org/uses) — information technology executive, conference speaker, and Open Source software developer and community organizer from Salem, Oregon, USA. 426 | * [Makon Cline](https://makoncline.com/uses) — Engineer, Developer, Home Cook. I like to make useful things and share them with others. 427 | * [Nich Secord](https://secord.io/uses) — Full Stack Developer from the Redmond, WA area. Best skier on the mountain. Pretty good in general. 428 | * [Sebastien Elet](https://www.notion.so/Dev-environment-ec11cb5bd0594c16a3c6338e6aa4f5b9) — Full stack javascript developer which also loves ops and automation 429 | * [Marcel Hauri](http://marcelhauri.ch/uses/) — Father, husband, software developer and lecturer in application development. 430 | * [Mitchell Hanberg](https://mitchellhanberg.com/uses) — Full Stack Developer who loves working with Elixir, Ruby and JS. 431 | * [Drake Bott](https://drake.dev/uses) — Web Developer from Colorado 432 | * [Michael Herman](https://mherman.org/about#uses) — Full-stack web developer. Software architect. Educator. Entrepreneur. Lover of Docker, Radiohead, running, and reading well-crafted project READMEs. 433 | * [Daniel Flege](https://danielflege.com/uses/) — Web Developer & Podcaster 🖥🎙 Loves Rails and Front End Stuff. My three girls are the {CSS} to my 👨‍👩‍👧‍👧 434 | * [Alok Prateek](https://alokprateek.in/uses) — Alok Prateek is a multi-talented human with over 11+ years of experiences in wide range of design disciplines. 435 | * [Dwayne Harris](https://dwayne.xyz/uses) — Freelance web and app developer in NYC with over 15 years of professional experience. 436 | * [Guru Das Srinagesh](https://gurudas.dev/uses/) — Linux kernel developer 437 | * [Michael Burkhardt](https://mihobu.lol/uses) — cloud data architect, part-time university professor, tinkerer and hobbyist 438 | * [Cory Dramsfeldt](https://coryd.dev/uses) — Web developer based in Southern California with over 10 years of professional experience. 439 | * [Kendall Morgan](https://kendallmorgan.com/uses) — Software engineer by day. Hip-hop, coffee, and street photography aficionado by night. 440 | * [Kenny Robinson](https://thealmostengineer.com/uses) — Web developer that builds software to improve business processes 441 | * [Manuel Fernandez](https://github.com/teamhanded/uses) — Security Engineer 442 | * [Bojan Bedrač](https://www.improvebadcode.com/uses) — Coding the future, one line of code at a time. 443 | * [Yannick Le Roux](https://yannickleroux.com/uses) — Second career web dev, French living in San Diego, retired DJ. 444 | * [Eric Raslich](https://ericraslich.com/uses) — Boat captain, web developer, marine biologist, solving science and communication problems with web technologies. 445 | * [Sagar Soni](https://sagarsoni.dev/uses/) — Full Stack JS, PHP and WordPress Developer in day. Android & Linux enthusiast by night 446 | * [Paulo Regina](https://pauloregina.com/uses.html) — Full Stack Web Developer 447 | * [Alex Mufatti](https://codeandrun.it/uses) — Code and Run 448 | * [Varatep Buranintu](https://www.varatech.io/uses/) — Full Stack Software Engineer, IBM Edge UI Lead, Bridging the gap between humans and computers with beautiful experiences. 449 | * [Anwar Hussain](https://gist.github.com/getanwar/daa9cb57428fd56255b1759fef2754f0) — Web Developer and No-Code Maker 450 | * [Matt Litzinger](https://mlitzinger.com/uses/) — Web Developer 451 | * [Nathan Knowler](https://knowler.dev/uses) — Developer focused on making the Web accessible, beautiful, and fun. 452 | * [Jarema](https://jarema.me/uses) — Undergraduate student, developer, and activist. 453 | * [Asur Bernardo](https://asur.dev/uses/) — Back end developer with no aesthetic sense. Full stack with reservations. Open-source enthusiast. Continuous learner! 454 | * [Lazar Nikolov](https://nikolovlazar.com/uses) — Full-Stack Engineer, DevRel, Live Streamer, Course Creator, Open Source Advocate. P.S. Check out nikolovlazar.com/gear to see the hardware that I use. 455 | * [Vinoth Chellamuthu](https://ecevinoth.github.io/#uses) — Data Engineer 456 | * [Joff Tiquez](https://jofftiquez.dev/uses) — Web Developer 457 | * [Roberto Vázquez González](https://robertovg.com/uses/) — Javascript Engineer (10+ years experience) && CorkerSpace Co-founder, 💛js (^es6),🏄‍🧘‍🎸. 458 | * [Joe Maffei](https://joemaffei.dev/uses/) — Software engineer with a passion for Web Application Development. 459 | * [Jelle Smeets](https://blog.jellesmeets.nl/uses) — Engineering manager & blogger 460 | * [Lauri Elias](https://indoorsman.ee/uses) — Full stack developer who dreams of only ever working with Django 461 | * [Rene Gens](https://renegens.com/uses) — android engineer, project manager, teacher, aspiring designer and author 462 | * [Matthew Scholta](https://mattscholta.com/uses) — Passionate about quality code written for humans, unlocking developer productivity, and creating a delightful user experience. 463 | * [John Smith](https://solrevdev.com/uses/) — full-time carer formally head of infrastructure and operations, senior full-stack #dotnetcore #aspnetcore #vuejs developer and software engineer https://solrevdev.com 464 | * [Chris Collins](https://chriscollins.me/uses) — I design and build digital products, hike and take photos. 465 | * [Rostyslav Ugryniuk](https://ugross.dev/uses) — Front-end Developer, Snowboarder, and Traveler. 466 | * [Alexis Janvier](https://alexisjanvier.net/uses/) — Web Developer, Open Source Contributor, Community Organizer, Proud Dad, Grateful Lover. 467 | * [Sumanth](https://mynameissumanth.netlify.app/uses.html) — Student. Learning web development 468 | * [Christian Leo-Pernold](https://mazedlx.net/uses) — Dad. Husband. BBQ Enthusiast. Full-Stack-Developer. 469 | * [Danilo Barion Nogueira](https://danilobarion1986.github.io/uses) — Father, developer, blog writer, classical guitar player and searching for the meaning of life! 470 | * [Chris Otto](https://chrisotto.dev/uses/) — Software engineer. I enjoy JavaScript, DevOps and Testing. 471 | * [James Quick](https://jamesqquick.com/uses) — Developer Advocate Engineer at @auth0 and content creator 472 | * [Vishwasa Navada K](https://vishwas.tech/uses) — Geek. Open source Enthusiast. Occasional blogger, photographer and traveler. 473 | * [Silvestar Bistrović](https://www.silvestar.codes/uses/) — Fearless web engineer, CSS developer, JAMstack enthusiast, and WordPress theme specialist. 474 | * [Adam Schwartz](https://adamschwartz.co/uses/) — Software developer, designer, film music composer 475 | * [Daryn St. Pierre](https://daryn.codes/uses) — Front-end developer, designer, CodePen tinkerer, LEGO enthusiast. Building VueJS applications (for a living) and eating pizza (for fun). 476 | * [Chris Lagasse](https://chrislagasse.com/uses) — Diversified programmer with emphasis in PHP, Javascript, Node.js, Vue, API integrations... cyclist, dad, lover of craft beer. 477 | * [Christoph Miksche](https://blog.m5e.de/uses/) — Startup Founder and Full-Stack-Developer with a passion for finance. 478 | * [Toon Claes](https://iotcl.com/uses/) — Class developer with passion for Git and Emacs 479 | * [Sergey Lysenko](https://soulwish.info/uses/) — Front-end developer, guitar player, MTB rider, snowboarder, runner. 480 | * [Shreyas Minocha](https://shreyasminocha.me/uses) — web. foss. privacy. archival. accessibility. 481 | * [Andrei Racasan](https://www.andreiracasan.com/setup) — Full Stack Developer with a passion for finding pragmatic solutions to technical challenges. 482 | * [Sergey Panteleev](https://sergeypanteleev.com/en/uses) — PHP 8.2 Release Manager 483 | * [Shajan Jacob](https://shajanjacob.com/uses) — Software Engineer, extroverted introvert, storyteller and a maker. 484 | * [Alexandre Ferreira](https://www.alexjorgef.com/about/uses) — Full-stack developer, open-source enthusiast 485 | * [Marco Poletto](https://poletto.dev/uses/) — Engineering Manager @ Laiye, Frontend Developer, UI engineer, Mentor 486 | * [Tim Teege](https://www.teesche.com/uses/) — Web Studio CEO, Former Frontend Dev, Blogger, Ultrarunner 487 | * [Mark Horsell](https://markhorsell.com/uses) — Software Developer - Front-end mostly, back-end and native sometimes. 488 | * [Elmar Klausmeier](https://eklausmeier.goip.de/aux/uses) — Developer and blogger, data center management 489 | * [Joel M. Turner](https://joelmturner.com/uses) — Mostly Front-End Dev, some back end 490 | * [Matt Jennings](https://mattjennings.io/uses) — web dev, hockey | tradebreaker.io 491 | * [Michael Wagner](https://www.michaelwagner.cc/en/uses) — CS student, creative and aspiring full-stack developer 492 | * [Jake Jarvis](https://jarv.is/uses/) — Front-End Web Developer, Teacher, Cat Dad, World Wide Web Surfer 🏄 493 | * [Ángel Guerra](https://angelguerra.me/uses/) — Father. Partner. Human. Kickboxer. Ninja. 494 | * [Robin Bakker](https://robinbakker.nl/uses) — Web Developer 495 | * [Alessia Bellisario](https://aless.co/uses) — Web engineer, mechanical keyboard builder, plotter art maker. 496 | * [AriaieBOY](https://ariaieboy.ir/uses/) — Web Developer that loves creating and sharing 497 | * [Russell McWhae](https://russellmcwhae.ca/uses) — Backcountry skier, photographer, designer, and web developer from Canada 498 | * [Karl Koch](https://www.kejk.tech/uses) — Product designer, frontend developer and musician. Building HomeHero and making other things. 499 | * [Praveen Kumar Purushothaman](https://blog.praveen.science/my-personal-development-environment/) — Cook, Cat Lover, Front End Architect, Full Stack Web Developer Evangelist & Cloud Computing Consultant. 500 | * [Gaya Kessler](https://theclevernode.com/uses) — Freelance web developer specialising in JavaScript 501 | * [Eivind Lindbråten](https://madebymist.com/uses) — One-man studio handcrafting apps and websites 502 | * [Matthew Ernisse](https://www.going-flying.com/~mernisse/uses/) — Recovering Systems Engineer now Solutions Engineer. 503 | * [Diego López](https://codingpotions.com/uses) — Frontend developer making thins with Vue & Nuxt. Gamer and beer lover 504 | * [Dave Mullen Jnr](https://davemullenjnr.co.uk/uses) — Designer, photographer, developer, multi-instrumentalist, chess player, aspiring minimalist, environmentally friendly. 505 | * [Tiffany White](https://tiffanywhite.dev/uses/) — Frontend dev, blogger, podcaster, herder of cats 506 | * [Kent C. Dodds](https://kentcdodds.com/uses) — JavaScript Software Engineer, speaker, and trainer 507 | * [Riley Shaw](https://rileyjshaw.com/uses) — Programmer, interface designer, noisemaker, mender. 508 | * [Nathan Smith](https://nathan-smith.org/uses) — Full stack dev, cat dad, dungeon master. 509 | * [Thê (Alexander) Quach](https://the-quach.com/uses/) — An aspiring financial data analyst, seeking new projects and opportunities 510 | * [Joshua Ryan Velasquez](https://joshua-afk.github.io/uses) — Web Developer, Designer, Vimmer, Typist, Calisthenics, Mortal. 511 | * [Glenn Reyes](https://glennreyes.com/uses) — Independent Software Engineer, trainer & speaker. Into sports & music. 512 | * [Jean Tinland](https://www.jeantinland.com/en/uses/) — Front-end developer. Working with CSS, React, Next.js. I implement responsive, accessible, backward-compatible interfaces. 513 | * [Yash Dave](https://amorpheuz.dev/uses/) — Web Developer who ❤s Gatsby & React. Ocassional blogger & Open Source Contributor! 514 | * [Adam Jahnke](https://adamyonk.com/uses) — Caffiend, motorcyclist, climber, recovering perfectionist. I love to make the complex simple. 515 | * [Andrew Healey](https://healeycodes.com/uses) — Software Engineer, Writer, Learner! 516 | * [Gyan Prakash Karn](https://karngyan.com/uses/) — Software Engineer, Tinkerer, Absurdist. 517 | * [Scott Tolinski](https://scotttolinski.com/uses) — Web Developer, Tutorial Maker, Podcaster, Bboy 518 | * [Tony Lockhart](https://tlockhart.github.io/portfolio/#uses) — Full Stack Developer, Designer, and Instructor 519 | * [Wojciech M. Wnuk](https://lanius.dev/uses) — Magento developer, Linux and FOSS enthusiast. 520 | * [Leonardo Melo](https://www.leomeloxp.dev/uses) — Full stack web developer. Typescript lover, always learning new stuff. 521 | * [Gabriel Wilkes](https://azul.technology/uses/) — Full-stack developer who loves learning new things, American 10 years in Japan, soon back to the US 522 | * [Rémi Weng](https://creativedesignsguru.com/uses/) — A Full Stack JS developer using React, Next JS and Tailwind CSS. Netlify, Serverless and AWS for the backend. 523 | * [Sal Ferrarello](https://salferrarello.com/uses/) — Web Developer specializing in WordPress. Loves Git and Neovim. Good at metaphors and asking dumb questions. 524 | * [Brian Morrison II](https://brianmorrison.me/uses/) — Full stack developer, content creator, husband, father of 3 boys, lifter of weights, Destiny 2/Stadia gamer 525 | * [Tim Downey](https://downey.io/uses/) — Software Engineer - Distributed Systems, Cloud Platforms, and Web 🙃 526 | * [Josiah Wiebe](https://jwie.be/uses/) — Designer & developer, lifelong learner. 527 | * [Muhammad Oka](https://muhammadoka.dev/uses/) — Computer Science student, Cyber Security enthusiast. 528 | * [Benjamin Lannon](https://lannonbr.com/uses/) — Web Developer, Open Source Contributor, Livestreamer 529 | * [Dmytro Litvinov](https://dmytrolitvinov.com/uses/) — Full Stack Python developer from 🇺🇦 530 | * [Braden Watkins](https://bradenwatkins.dev/uses) — Student, Full Stack Developer, Lover of all things analog 531 | * [Jed Fonner](https://jedfonner.com/uses) — Engineering VP and father who still manages to crank out a couple side projects each year. Loves Svelte and Javascript. 532 | * [Steve Abraham](https://steveabraham.com/uses) — IT guy, previously full stack web developer 533 | * [Salisa Cheawcharnthong](https://www.sgennrw.xyz/uses) — Software Engineer 534 | * [Tom (ttntm)](https://ttntm.me/uses) — Web developer from Austria 535 | * [Vincent Ollivier](https://vinc.cc/uses) — Remote Full Stack Developer 536 | * [Achhunna Mali](https://achhunna.com/uses) — Software engineer and aspiring surfer 537 | * [Jorge Baumann](https://baumannzone.dev/uses) — JavaScript FullStack Developer - Content Creator 538 | * [Moncef AOUDIA](https://www.maoudia.com/uses) — Software developer - Open-source enthusiast/maintainer 539 | * [Adrian Marin](https://adrianthedev.com/uses) — Product-Minded Software Engineer, Digital nomad, no-nonsense enjoyer of life, friends and family. 540 | * [Iain Schmitt](https://iainschmitt.com/uses) — Minneapolis based software engineer and Apache ZooKeeper apologist who owns too many keyboards 541 | * [Jahir Fiquitiva](https://jahir.dev/uses) — Passionate and Creative Full Stack Developer 542 | * [José Hernández](https://josehernandez.tech/uses) — Mobile and Web Developer 543 | * [Christophe Querton](https://kertof.com/what-i-use) — Software Engineer, xoogler, co-founder of @accelery. Full-stack, technical debt collector. Lover of the Outdoors, BBQ, sailing. 544 | * [Adil Haddaoui](https://adilhaddaoui.com/uses) — Full stack Developer 545 | * [Vlad Holubiev](https://vladholubiev.com/uses) — Sr. Director of Technology at Shelf 546 | * [Jorge Ruvalcaba](https://jorgearuv.dev/uses) — Software Engineer & Aspiring Entrepreneur who does things. Frontend at Vest 547 | * [Michael Knepprath](https://mknepprath.com/uses) — Pokémon-obsessed Software Engineer & Designer. Twitter bots are my jam. 548 | * [Matt TK Taylor](https://tk.gg/uses) — Product Manager in news & media 549 | * [Nico Bachner](https://nicobachner.com/uses) — Student. Developer. Entrepreneur. 550 | * [Brad Garropy](https://bradgarropy.com/uses) — Senior Frontend Developer at Stripe, into lifting and country music. 551 | * [Jeff Mair](https://jeffmair.net/uses) — Contract/Freelance Web Developer, .NET Programmer, Dad, Korean Learner 552 | * [Jeremy Collins](https://jeremycollins.net/uses) — Full-stack developer always seeking to learn more. Web and mobile technology enthusiast. 553 | * [Michael Kutz](https://miku86.com/uses/) — JavaScript developer, mentor, blogger at miku86.com and dev.to/miku86 554 | * [Bruno Brito](https://brunobrito.pt/uses) — Freelance Web Developer, Content Creator, Digital Marketing teacher 555 | * [Roy Tang](https://roytang.net/about/uses/) — Programmer, engineer, scientist, critic, gamer, dreamer, and kid-at-heart. 556 | * [Sahilpreet Singh](https://github.com/preetsahil/uses) — MERN stack developer, Leaning Devops, Web Enthusiast. 557 | * [Thomas Jensen](https://blog.cavelab.dev/uses/) — I like electronics and computers — and my wife and three kids. 558 | * [David Perkins](https://prkns.me/uses) — Dad, Designer, Developer, Dave, Keyboard enthusiast 559 | * [Aaron Dunphy](https://aarondunphy.com/uses) — Full Stack Developer, Coffee Lover and Photo Taker 560 | * [Jan Durkaj](https://jandurkaj.dev/uses) — Web developer, adventurer, and amateur photographer 561 | * [Cory Forsythe](https://coryforsythe.com/uses) — Software Manager, Cloud Architect, Python and JS guy 562 | * [Tom MacWright](https://macwright.com/uses) — Founder, writer, programmer 563 | * [Duncan Bain](https://duncanbain.dev/uses/) — Mechanical Engineer learning to code! 564 | * [Jason Raimondi](https://jasonraimondi.com/uses) — Full Stack Developer 565 | * [Marco Kamner](https://blog.marco.ninja/uses) — Pragmatic DevOps Engineer & Indie Hacker 566 | * [Glyn Normington](https://underlap.org/uses) — Retired software developer, ex-visiting lecturer, IETF editor. 567 | * [Thomas Hunter II](https://thomashunter.name/uses) — Node.js developer with a thing for distributed systems. Co-organizer of NodeSchool SF. Game developer. 568 | * [Martin Marcucci](https://www.marku.me/page/uses/) — Computer Engineer, Professor. Full-stack Go/React, Kubernetes homelaber. Less gamer and more dad 👪. 569 | * [Andrew McCombe](https://www.euperia.com/uses) — Experienced full stack web developer with a passion for testing. 570 | * [Smakosh](https://smakosh.com/the-tech-tools-I-use) — Full stack JavaScript Developer, blogger and speaker. 571 | * [Eihab Khan](https://eihabkhan.com/uses) — Front End Engineer & UI/UX Designer 572 | * [Mahmoud Ashraf](http://mahmoudashraf.dev/uses) — Front-End Developer, sometimes do backend stuff. 573 | * [Charlie Say](https://www.charliesay.xyz/uses) — Another bald Full Stack developer from Manchester UK 574 | * [Pouria Ezzati](https://pouria.dev/uses) — Web developer. Digs music, football and a e s t h e t i c s 575 | * [Simeon Griggs](https://www.simeongriggs.dev/uses) — Full stack developer and part time Cyclist in Newcastle upon Tyne, UK 576 | * [Stuart McColl](https://stuartmccoll.github.io/uses/) — Software developer, DevOps enthusiast. 577 | * [Jonathan Suh](https://jonsuh.com/uses) — Designer, Developer, Sneakerhead 578 | * [George Campbell](https://gibr.net/uses) — Full stack engineer at Netflix 579 | * [Sowren Sen](https://sowrensen.dev/uses) — Software Engineer 580 | * [Keith Wagner](https://kpwags.com/uses) — Experienced full stack developer. Always trying to learn new and better ways of doing things. 581 | * [Sebastian Remm](https://www.sebibasti.dev/uses) — Coding at 04am in the morning 582 | * [Stephen Bunn](https://bunn.io/uses/) — Software engineer, coffee drinker, amateur photographer, occasional blogger 583 | * [Chuck Munson](https://www.breadandrosesweb.com/uses/) — Web developer, blogger, writer, journalist, photographer, librarian, Minecraft addict, cooking show fanatic 584 | * [David O'Trakoun](https://www.davidosomething.com/uses/) — Software Engineer 585 | * [Dean Harris](https://deanacus.com/uses/) — Front End Developer. Husband. Skateboarder. Occasional blogger 586 | * [Michael Hoffmann](https://www.mokkapps.de/uses) — Freelance Software Engineer 587 | * [Mike Hart](https://gist.github.com/boilemmashem/4764c911726d8c1599e2c39a4003626a) — Front-end dev with a design background, IoT, tabletop RPGs, painting, and mixing them together. 588 | * [Jeremy Ross](https://jereross.com/uses/) — Nova Scotia-based WordPress Developer who enjoys tech a bit too much 589 | * [Colin Morris](https://vonexplaino.com/blog/posts/page/uses.html) — Steampunker, solution architect and web developer. Mad science works for all cases. 590 | * [Austin Gil](https://austingil.com/uses/) — 📝 Writing about code and stuff at http://austingil.com; 🛠 Building Vuetensils & Particles CSS; 🎙 Hosting @theFnCall; 🐶 Loving http://instagr.am/nuggetthemighty 591 | * [Michael Le](https://www.michael1e.com/uses/) — Software Engineer 592 | * [Imran Nazar](https://imrannazar.com/uses) — Frontend developer with an eye for retrocomputing, author of Coffeepot Control Protocol for Teapots (RFC 7168) 593 | * [Kilian Valkhof](https://kilianvalkhof.com/using/) — User experience developer 594 | * [Spencer Aung](https://spenceraung.me/blog/uses) — Frontend Developer from Myanmar. Live in Seoul. Love cats and octopuses 595 | * [Dale French](https://dalefrench.dev/uses) — Full Stack Developer from South Africa. Skateboarder. Front End Enthusiast. 596 | * [Jordan Elver](https://elver.me/uses/) — Full Stack developer who loves Ruby, Elixir, and Rust. 597 | * [Russell John](https://russelljohn.net/uses/) — Professional Linux system administrator and highly experienced webmaster. 598 | * [Liam Richardson](https://discoliam.com/uses/) — User Interface developer focusing on Performance, A11y and CSS 599 | * [Serghei Cebotari](https://sergheicebotari.com/uses) — Software Developer specializing in building highly interactive web applications 600 | * [Timothy Miller](https://timothymiller.dev/uses) — Web Designer/Developer for hire. Wears lots of hats. 601 | * [Caleb Ukle](https://calebukle.com/uses) — I'm a software developer, technology enthusiast, and simply enjoy learning new things. 602 | * [Ricardo Boss](https://ricardoboss.de/uses) — Web native, born to code. 603 | * [Vincent Ramdhanie](https://vincentramdhanie.com/uses) — Software Developer, Lecturer, Technical Writer and Mentor 604 | * [Amir R Muntasser](https://arkm.xyz/uses/) — Web Developer, #vuenicorn wizard, Oxford comma enthusiast, and inventor of the ol' razzle dazzle. 605 | * [Pavel Melnik](https://theopract.gitlab.io/pavel-dev/uses/) — Web developer, Technology enthusiast, Energy Management System expert 606 | * [Miguel Ángel Durán](https://midu.dev/uses) — Front end passionate, Web Performance freak, casual speaker, podcast host, and gamer. 607 | * [David Llop](https://davidllop.com/uses) — Full stack developer from Girona. Open Source contributor. Always Learning. 608 | * [Alba Silvente](https://dawntraoz.com/uses) — Front-end developer, Vue & Tailwind CSS lover. Hip Hop & Afro house dancer. 609 | * [Karel De Smet](https://kareldesmet.be/uses) — Test Engineer at work. Developer in my spare time. Loves analyzing, debugging and delivering software. 610 | * [Alberto Fortes](https://albertofortes.com/uses/) — Senior Front-end developer with strong aesthetic sense. Building cool websites and apps as Front-end Team lead at Avallain. 611 | * [Josh Manders](https://joshmanders.com/uses/) — Indie Maker & Entrepreneur 612 | * [Laurie Barth](https://laurieontech.com/uses/) — Software Engineer and Educator 613 | * [Joe Previte](https://joeprevite.com/uses) — Developer Advocate on the Open Source Team at Facebook 614 | * [Harry Wolff](https://hswolff.com/uses/) — Front-end engineer and YouTuber 615 | * [Amir Ghaffari](https://amirghaffari.com/uses/) — full-stack web developer 616 | * [James Mills](https://jamesmills.co.uk/uses) — Work with PHP & Laravel at @clicksco in Dubai. Pleased to be part of the Laravel community. 617 | * [Brian Mitchell](https://brianm.me/uses) — Frontend software engineer and co-organizer of JavaScriptMN. Occasionally a lighting designer. 618 | * [Mohammad Dohadwala](https://dohad.dev/blog/uses) — Hi, I am a Full Stack Javascript Web Developer from Dubai. 619 | * [Manuel Savino](https://manuels.dev/uses) — Frontend Web Developer 620 | * [Terry Godier](https://terrygodier.com/uses) — A developer and marketer of fine internet products. 621 | * [Erno Salo](https://endormi.io/uses/) — Full Stack Developer and Open Source Contributor 622 | * [James Brooks](https://james.brooks.page/uses/) — Software Developer at Laravel and Podcaster 623 | * [Eugene Oliveros](https://jinyuz.dev/uses) — A Software Developer. A lazy software developer. 624 | * [Mike Barkmin](https://www.barkmin.eu/uses/) — I'm a passionate developer and researcher at the University of Duisburg-Essen at the chair of Computer Science Education. 625 | * [Hugo Di Francesco](https://codewithhugo.com/uses) — JavaScript developer, blogger at codewithhugo.com, co-author of 'Professional JavaScript' with Packt. 626 | * [Steve Heyes](https://steveheyes.co.uk/uses) — I like to use tech to build awesome things that makes peoples lives better 627 | * [Earl Siachongco](https://elpachongco.github.io/uses) — Building websites 628 | * [Galen Cuthbertson](https://galen.me/uses) — I build tools & tools to help understand human culture. 629 | * [Chris Jones](https://chrisjones.io/uses) — Full-time full-stack web developer. Part-time hiker, explorer, photographer. 630 | * [Diego Vazquez](https://gist.github.com/diurivj/78ca931c4b20dca1e1e13982fa9c309d) — Young guy who loves code. Full Stack Web Developer. Lead Teacher @ Ironhack 631 | * [Rafael Quintanilha](https://rafaelquintanilha.com/about#uses) — Software Engineer. Blogs about Web Development, Front-end, React, UI/UX, Accessibility. 632 | * [Jenna Pederson](https://jennapederson.com/uses) — Technical entrepreneur with a passion for community and equity-building 633 | * [Ben Leivian](https://benleivian.com/uses) — A “seasoned” full-stack developer & visual designer 🍔 634 | * [Danny de Vries](https://dandevri.es/uses) — Indie maker building products for the web and lecturer @CMDamsterdam 635 | * [David Petringa](https://david.dukesnuz.com/uses) — A web developer who very much likes working with Laravel and Vuejs. My side Hustle is blogging. 636 | * [Stephen Senkomago Musoke](https://ssmusoke.com/uses) — Software Engineer, eHealth Technologist, PHP Lover by night, Muganda, Goat Meat for Life, Coffee Drinker 637 | * [Jérémy Mouzin](https://jeremymouzin.com/uses) — Software Engineer, Tutorial Maker, Entrepreneur, Blogger 638 | * [John Cranston](https://pursuitofloot.gg/uses) — Part lead front-ender, Part vidya-streamer, All cat dad. 639 | * [Thorsten Hans](https://thorsten-hans.com/uses/) — Cloud-Native software developer from Germany. 640 | * [Iñigo Ochoa](https://inigochoa.me/uses/) — Backend developer and amateur basketball coach. 641 | * [Tony Mannino](http://spaghet.me/uses/) — Full-Stack developer 642 | * [Victor Kropp](https://victor.kropp.name/uses) — Software Engineer, Team Lead, Husband, Father, and Triathlete 643 | * [Scott Spence](https://scottspence.com/uses) — Developer, Svelte, GraphQL 644 | * [Marc Littlemore](https://marclittlemore.com/uses/) — Senior Engineering Manager @ Netlify, Node.js fan, course creator, entrepreneur, ex-videogame developer, public speaker, and sepsis survivor. 645 | * [Danielle Mayabb](https://danielle-m.dev/uses) — Full-stack developer, Accessibility Engineer, Information Architect, Generalist 646 | * [Georgi Yanev](https://gyanev.com/uses/) — Software Engineer, FPV Drone Pilot, Blogger, YouTuber 647 | * [Varun Raj Manoharan](https://varunraj.in/uses/) — Co Founder - Skcript, Typescript Ninja, I cook web apps, Google Developer Expert - Firebase 648 | * [Jason Scheirer](https://jasonscheirer.com/uses/) — Software Engineer, Systems Enthusiast. I can probably solve that problem quickly. 649 | * [Frédéric Harper](https://fred.dev/uses) — Developer Advocate with a knack for public speaking & making videos 650 | * [Mark Tse](https://neverendingqs.com/uses/) — A back-end developer who likes to dabble in the front-end. 651 | * [Karl Horky](https://github.com/karlhorky/uses/blob/master/readme.md) — Founder, Teacher at https://upleveled.io 652 | * [Zoran Panev](https://gist.github.com/8f08557764711afbf82b75ac0ce61e79.git) — Web developer 653 | * [Marcos Mendes](https://marcosmendes.eu:2053/uses) — Technical Support Engineer, Systems Administrator, Fullstack Developer, Raspberry Pi tinker 654 | * [Steven van Loef](https://steven.vanloef.com/uses) — Web Developer, App Developer 655 | * [Brendon van Zanten](https://brendonvanzanten.com/uses) — Web Developer 656 | * [Richard Zilahi](https://gist.github.com/zilahir/4aaf5907999ea53711b2d554d22b0f3f) — Full stack developer, pug enthusiast, dying for pizza 657 | * [Duncan McClean](https://duncanmcclean.com/uses) — Web Developer from Glasgow, Scotland. Laravel, Statamic & Tailwind CSS 658 | * [Matthew Rebehn](https://mattaz.com/uses) — Proud Dad and Developer 659 | * [Terry Dontje](https://gist.github.com/tddontje/50e88b03eb56cbe5705ed2c7354d8f54) — Backend developer with a HPC parallel computing background. BBQ Lover and homebrewer. 660 | * [Isaac Weber](https://www.webdevike.com/uses) — Full stack, GraphQL enthusiast 661 | * [Jim Fang](https://airfusion.dev/uses) — Developer, Tech enthusiast, Student. 662 | * [Isaac Wyatt](https://isaacwyatt.com/uses) — Built Growth Systems @ Google, HashiCorp, New Relic etc. | Strat & Ops + Code 663 | * [Andrew Zeller](https://zeller.io/uses) — Frontend engineer and designer | SF Bay Area | Drone enthusiast 664 | * [Thomas Tuvignon](https://thomastuvignon.com/en/uses) — Front-end developer and occasional designer. 665 | * [MG Santos](https://fullybearded.com/uses/) — Full-stack (and fully bearded) developer who loves bots, automations and building stuff 666 | * [Daniel Van Cuylenburg](https://danielvanc.com/uses) — Front-end Web Developer. Love all things CSS, ReactJS, GatsbyJS, NodeJS and U.I design 667 | * [Jorge Cortés](https://jorgecortes.dev/uses) — An easygoing web developer, full-stack web developer tutor, and musician from Hermosillo, Sonora, México. 668 | * [Chiamaka Ikeanyi](https://chiamakaikeanyi.dev/uses) — Software Engineer, Technical Writer, Poet 669 | * [Francis Sunday](https://hakaselogs.me/2020-01-10/what-i-use) — Software Engineer | Gopher | Hacker 670 | * [Jared Clifton-Lee](https://jared.clifton-lee.com/uses) — Engineer of code; manager of people; trainer of cats 671 | * [James Kemp](https://www.jameskemp.dev/uses/) — Web Developer, Blogger, Freelancer 672 | * [Fanis Hatzidakis](https://fanis.hatzidakis.org/uses) — Head of Technology based in Cyprus 673 | * [Hugh He](https://plushugh.com/uses) — FOSS Developer, Student 674 | * [Tom Hazledine](https://tomhazledine.com/uses) — Data visualisation tinkerer and JS enthusiast. Podcaster. Nerd. 675 | * [Jeremy Lanssiers](https://www.jeremylanssiers.com/uses/) — Full-stack developer-thinker-tinkerer. Preacher for the GNU/Linux Church. 676 | * [Jacopo DP.](https://shish.cat/uses/) — Student and PHP, Javascript developer. Learning cybersecurity 677 | * [Dávid Lévai](https://davidlevai.com/uses) — Building production-ready apps, Freelancing as a Software Dev 678 | * [Tom VanAntwerp](https://tomvanantwerp.com/uses) — Professional web developer, hobbyist fermenter 679 | * [Nick Janetakis](https://nickjanetakis.com/uses) — Freelance Web Developer, Web App Deployment, Tutorials, Technical death metal enthusiast 680 | * [Stefan Judis](https://www.stefanjudis.com/uses) — Web Developer, writer and speaker 681 | * [Kaleigh Scruggs](https://klgh.dev/uses) — Software Engineer who loves her senior dogs, baking, being outside and reading. Probably doing all those at once. 682 | * [Ste Grainer](https://stegrainer.com/uses) — Designer, Developer 683 | * [Jorge Calle](https://jorgecalle.co/uses) — Hello world! I am a Software Engineer and a Javascript developer from Sahagún (CO) 684 | * [Camilo Romero](https://camiloromero.dev/uses) — Full Snack Web Developer (Yeah...snack) that uses Javascript almost everywhere. 685 | * [Rhys Botfield](https://rhysbotfield.co.uk/uses) — Full-stack PHP, JS, and DevOps developer, agency director, and open-source contributor 686 | * [Quentin Laffont](https://uses.qlaffont.com) — Full Stack JS Developer, Tournament Organiser, Video-Game lover 687 | * [Quan Tong](https://quantonganh.com/uses) — Software Engineer, DevOps Engineer, Traveller, Street photography lover 688 | * [Adrián Alcorta Puente](https://ardi.land/uses) — Frontend developer. I love mountains, Game Boys and Post-rock music. 689 | * [Erv Walter](https://ewal.dev/uses) — Father, Husband, Web Developer, Board Game Addict 690 | * [Juanito Fatas](https://juanitofatas.com/uses) — Program Tinker 🧙🏼‍♂️ 691 | * [Krzysztof Żuraw](https://krzysztofzuraw.com/uses) — Developer, nerd, co-organizer, chemex lover 692 | * [Dieter Stinglhamber](https://www.dieter.dev/uses) — I write in PHP, JS, HTML and CSS. I can talk to databases and make servers do stuff. 693 | * [Julio Lozovei](https://jlozovei.dev/uses) — Front-end bugs developer, writer/speaker and amateur musician from Brazil 🤘 694 | * [David Leuliette](https://davidl.fr/uses) — Freelance React Native developer and bootcamp instructor specializing in cross-platform application. 695 | * [Dave Berning](https://daveberning.io/uses/) — Developer, author, rocker, Nintendo enthusiast. I also co-organize the CodePen Cincinnati Meetups. 696 | * [Jan-Lukas Else](https://jlelse.blog/uses/) — Software Developer & Blogger 697 | * [Doce Fernandes](https://doceazedo.com/uses) — Fullstack developer focused on frontend, Svelte evangelist and live coder 698 | * [Justin Poehnelt](https://justin.poehnelt.com/uses) — Software Engineer. Developer Relations. Ultrarunner. 699 | * [Jovylle B](https://jovylle.com/uses) — A Web Developer from the Philippines. 700 | * [Will Presley](https://willpresley.com/uses/) — Professional Web Dev & SysAdmin from Ohio, USA 701 | * [Silvestre Vivo](https://silvestrevivo.github.io/uses) — Full Stack developer, before architect and flamenco guitar player. 702 | * [Kyle Platt](https://kyleplatt.com/uses) — Senior Software Engineer, Multi Startup Founder, Building Projects in Public 703 | * [Eric Oyanadel](https://www.oyanadel.com/uses/) — Artist - Developer - Musician 704 | * [Abdessalam Benharira](https://abdessalam-benharira.me/uses) — JavaScript developer, UX/UI design and tech enthusiast 705 | * [David Dias](https://thedaviddias.com/uses/) — Front-End Developer, UX/UI enthusiast, podcaster and content creator! 706 | * [Thomas Large](https://tomlarge.dev/uses) — My name is Tom! I write code 707 | * [Mike Walsh](https://www.elmikewalsh.com/uses/) — Front-End Designer, Developer & Translator in Villarrica, Chile 708 | * [Amit Merchant](https://www.amitmerchant.com/uses) — Maker of things. Open-source enthusiast. Blogger. 709 | * [Yurui Zhang](https://gist.github.com/pallymore/6e12133b5c2fa2856a8a6b288e579c01) — Full-stack developer. Dark mode enthusiast. Quality software devotee. 710 | * [Eduardo Reveles](https://www.osiux.ws/about/uses) — Web Engineer, Husband, Gamer. 711 | * [Philip Theobald](https://www.philiptheobald.com/uses/) — Guitar player, motorcyclist, software engineer, entreprenuer 712 | * [Wes Baker](https://wesbaker.com/uses) — Team Lead, Software Engineer, Board/Miniature/RPG Gamer, Miniature Painter, 3D Printer, Disney fanatic 713 | * [Dominik Matis](https://dmatis.gitlab.io/uses) — React dev 👻 Gatsby & Vue.js learner 👨‍💻 Syntax lover ❤️ 714 | * [Rubén Rodríguez](https://www.rubenr.dev/uses) — Madrid based. Front-End developer. Javascript enthusiast, SASS, Bootstrap lover. Magento 2 Certified 715 | * [Roland Szabo](https://rolisz.ro/uses) — Team Lead, ML Engineer, Board Gamer 716 | * [Rodrigo Antunes](https://rodrigoantunes.me/uses/) — Frontend Engineer and Open Source enthusiast 717 | * [Frank Bültge](https://bueltge.de/uses/) — Alpinist, Cyclist, Optimist. I develop, support solutions, primarily with SAP at ZEISS Group and I make WordPress-based solutions at the Inpsyde 718 | * [Marcus Obst](https://marcus-obst.de/uses) — Webdeveloper, Music Lover 719 | * [Pawel Grzybek](https://pawelgrzybek.com/uses/) — Software Engineer 720 | * [Ryan Senn](https://ryansenn.dev/uses) — Software engineer turned business owner. Loves functional porgramming. 721 | * [Michael Beckwith](https://apiratelifefor.me/uses/) — PHP and WordPress developer/support, coffee consumer, gym monkey 722 | * [Eric McCormick](https://edm00se.codes/uses/) — Software Developer, IBM Champion, coffee lover, dabbler in all things technology, hobbyist 3d design and printing 723 | * [Swastik Baranwal](https://swastik.is-a.dev/uses/) — Open Source Developer 724 | * [Ben Congdon](https://benjamincongdon.me/uses) — Golang, Python, Rust. Runs in the Cloud. 725 | * [Nik Spyratos](https://nik.software/uses) — Laravel Freelancer EMEA, Laravel Cape Town organiser 726 | * [Jacob Herper](https://jacobherper.com/uses) — Senior Front-End Engineer with a passion for all things digital. I create amazing web apps to make the internet a better place. 727 | * [Albin Groen](https://albingroen.com/uses/) — Young self taught fullstack JavaScript developer that's really interested in the web, open source, and design. 728 | * [Ajay Karwal](https://ajaykarwal.com/uses/) — A designer, developer and UX guy from Buckingham, UK. 729 | * [Raúl Negrón](https://raulnegron.me/uses/) — Software Developer from Puerto Rico 730 | * [David A. Vives R.](https://dispuestoaaprender.com/en/uses) — software engineer, web developer, chess player, comics reader, loves reading, learning new things, sushi, bbq sauce and aioli. 731 | * [Ryan Warner](https://ryan.warner.codes/uses) — Software Engineer and Interface Designer. Leader and Mentor. 732 | * [Nicky Meuleman](https://nickymeuleman.netlify.app/uses) — Web developer, F1 fan. 733 | * [George Daneke](https://daneke.ge/uses/) — Web developer, freelancer, creator of things 734 | * [Rob Warner](https://grailbox.com/uses/) — Software Architect, Developer, Father. 735 | * [Den Talalá](https://talala.info/uses) — Experienced digital designer, podcaster, and photographer 736 | * [Jesse Dyck](https://jessedyck.me/uses) — Web Developer and sometimes SysAdmin. 737 | * [TaeHee Kim](https://roto.dev/uses) — Front-end Engineer, Bassist, Cat lover. 738 | * [Hong](https://honghong.me/uses) — Full Stack Developer 739 | * [Moisés Ñañez](https://gist.github.com/moisesnandres/f6ec9277c379d2bf33893cda02cebfaa) — Programmer and musician 740 | * [Maria Altyeva Schuessler ](http://mariacodes.io/uses) — Nacho Cheese Lover and Senior Full-Stack Developer, Project Manager, and Writer based out of Shanghai, China 741 | * [Paul Esch-Laurent](https://paul.af/uses) — Software Engineer 742 | * [John Slipper](https://www.johnslipper.com/uses/) — Web Developer, mountain biker, drone enthusiast, Minecraft nerd 743 | * [Gijs Nelissen](https://lifelog.be/uses) — Founder of @prezly. Focussed on Product Management 744 | * [Arturo Campos](https://arturocampos.dev/uses) — Web Developer, dad, mountain biker, meat lover 745 | * [Esmit Perez](https://esmit.me/uses) — Software Developer, every day ☕️, sometimes 💡. Pura Vida 🇨🇷. 746 | * [Sercan Eraslan](http://sercaneraslan.com/uses) — Front-End Tech Lead 747 | * [Vlad Ilie](https://vladilie.ro/uses) — I'm a Software Engineer based in Romania, I love to juggle with technologies and put my soul in every project to get the best of it. 748 | * [Divjot Singh](https://bogas04.github.io/uses) — Web Developer, Vegan, Sikh. 749 | * [Navdeep Singh](https://navdeepsingh.in/uses) — Web Developer, Speaker, Sikh. 750 | * [Rohit Gohri](https://rohit.page/uses) — Full Stack Developer dabbling in DevOps, CI/CD 751 | * [Andrea Prus](https://avris.it/uses) — Full stack developer, blogger 752 | * [Bamuleseyo Gideon](https://medium.com/developer-circle-kampala/what-i-use-my-tools-of-trade-552655db4b8d) — Software Engineer, Facebook Developer Cirle Kamapala Lead. Front-end ❤️ 753 | * [David Anguita](https://davidanguita.name/uses/) — Software developer & consultant. Maker. Gamer by night. :wq 754 | * [Nick Taylor](https://www.iamdeveloper.com/uses/) — Just some dev from Montreal, Quebec, Canada 755 | * [Trezy](https://trezy.com/uses) — Software engineer, JavaScript livestreamer, and a wannabe cyborg. 756 | * [Ben Shi](https://hbish.com/uses/) — Full Stack. Engineering Leader. Believer of taking the time to learn and taking the time to teach. 757 | * [Peter Tasker](https://petetasker.com/uses/) — Programmer/developer/dad in Ottawa Ontario, Canada 758 | * [Jason Ross](https://softwarepragmatism.com/uses/) — Developer/Architect creating software in Calgary, Alberta, Canada 759 | * [Anthony Morris](https://anthonymorris.dev/uses/) — Builder, JavaScript wrangler, and wannabe stoic. 760 | * [Justin Conway](https://conwaydev.com/uses/) — Chicago-based front-end developer passionate about the web and pork. 761 | * [Gabriel Kanev](https://gkanev.com/uses/) — Enteprenuer, Product Manager, Minimalist 762 | * [Dan Vega](https://www.danvega.dev/uses/) — Full-Stack, Curriculum Developer. I am passionate about learning new things and teaching them to others. 763 | * [Dick Wyn Yong](https://dickwyn.xyz/uses) — Software Engineer, Content Creator and Sustainability Enthusiast 764 | * [Logan Blangenois](https://logan-blangenois.be/uses/) — Front-end developer passionate about eco-friendly (web)app and React. 765 | * [Lucas Queiroz](https://lucasqueiroz.dev/uses.html) — Backend Engineer working remotely. 766 | * [Muhammad Umair](https://gist.github.com/mumairofficial/0d97ed3dca1ba25d9f01b8db8aed42dc) — Fullstack front-end developer and designer, passionate in everything #JavaScript 767 | * [Tomek Buszewski](https://www.buszewski.com/uses/) — Developer and team leader based in Warsaw, Poland. 768 | * [Norbert Chmiel](https://github.com/Norbiox/uses) — Software Craftsman, Pythonista, Linux enthusiast. 769 | * [Benjamin Mock](https://codesnacks.net/uses/) — coder, runner, reader, maker 770 | * [Fortune Obi](https://www.obifortune.com/uses) — Web developer living in Canada, strangely obsessed with Typescript and React. 771 | * [Sean Boult](https://boult.me/uses) — Full stack developer who likes ReactJS 772 | * [Michal Slepko](https://michalslepko.dev/uses) — Senior web developer learning iOS development. Live coding streamer on Twitch 773 | * [Michał Miszczyszyn](https://typeofweb.com/michal-miszczyszyn-uses/) — Motivated full-stack developer not afraid to use any technology. Experienced developer and leader. He, him. 774 | * [Derek Mohr](https://onemohrti.me/about/uses/) — Front-end development by interest, full stack development by trade 775 | * [Haseeb Majid](https://haseebmajid.dev/uses/) — Backend software engineer 💻, Linux enthusiast 🐧 and village cricketer 🏏 776 | * [Łukasz Rybka](https://www.dragonia.org.pl/uses/) — Full Stack Developer from Poland. Public speaker, bootcamp trainer and consultant. Legacy code and CI/CD enthusiast. 777 | * [Antonio Piras](https://www.antopiras.dev/uses) — Web developer from Italy, madly in love with Javascript and everything web related. 778 | * [Matt Hughes](https://matthughes.dev/uses) — Full Stack Web Developer 779 | * [Christian Ek](https://christianek.io/uses/) — Full Stack developer, tech enthusiast. 780 | * [Rail Hamdeew](https://hmdw.me/uses/) — Full Stack. Open to new technologies 781 | * [Eugene Andrienko](https://eugene-andrienko.com/uses) — Open Source and retrocomputing enthusiast 782 | * [Armno Prommarak](https://armno.in.th/uses) — Frontend developer, blogger, cyclist. 783 | * [Fernando Paredes](https://fdp.io/about/uses) — iOS/macOS developer, serial hobbyist, language nerd. 784 | * [Piyush Mehta](http://www.piyushmehta.com/uses/) — Full Stack Developer Based in INDIA 785 | * [Duncan McDougall](https://www.belter.io/uses/) — Web developer, contractor, remotely working from the South of Scotland 786 | * [Mijndert Stuij](https://mijndertstuij.nl/uses/) — Engineer. Hacker. Minimalist. 787 | * [Niels Gouman](https://nielsgouman.nl/uses/) — Tech. Start-ups. SaaS. 788 | * [Iván Olivares](https://iolivares.com/uses) — Building web experiences since 2006. Javascript Lover ❤️. 789 | * [Juan Fernandes](https://www.juanfernandes.uk/uses/) — Freelance Front-end Developer 790 | * [Kevin Simkanič](https://github.com/kevinko12323/uses) — Wordpress ninja 😎 React lover ❤️ CSS master 🧐 791 | * [Lakshmipriya Mukundan](https://gist.github.com/lakshmipriyamukundan/ddd224306ce962f4f159f1065f0f0c67) — Javascript lover, FullStack enthusiast, React Learner (current), Pet lover 792 | * [Matt Layman](https://www.mattlayman.com/uses/) — A Python developer focused on Django 793 | * [Jeremy Bunting](https://qbunt.com/uses) — Web 🤖 working remotely from the Connecticut burbs 794 | * [Chris Wiegman](https://chriswiegman.com/uses) — VP of Engineering, developer, teacher, and blogger building teams and products focused on humane and sustainable technology. 795 | * [Stan Lo](https://gist.github.com/st0012/7b018463dd041d2a4401d9fa5044bedf) — Developer at Ticketsolve, creator of Goby 796 | * [Bassem Allani](https://nextglabs.com/uses/) — Senior Fullstack Engineer & Commercial Airline Pilot 797 | * [Jérémie Bertrand](https://laedit.net/uses/) — Developer, occasional blogger 798 | * [Lee Robinson](https://leerob.io/uses) — Developer, writer, creator. Solutions Architect @ Vercel. 799 | * [Felix Kirmaier](https://www.kirmaier.net/uses/) — Frontend Developer from Unterhaching near Munich in Germany, doing mostly web performance, HTML, SCSS, JS, automated testing and TYPO3 for a living 800 | * [Jordan Hofker](https://jordan.hofker.org/uses/) — Husband, father, engineer, and sometimes I take pictures. From Nebraska. Hobby collector. 801 | * [Matt Busche](https://matthewbusche.com/uses/) — Full Stack developer from Des Moines, Iowa, web performance enthusiast 802 | * [Nikhil Anand](https://nikhil.io/uses/) — Fullstack Engineer 803 | * [Zura Gabievi](https://gist.github.com/zgabievi/60e81da327c1c80cdca3f65b39baa23d) — Front-end Team Lead. 804 | * [Jace Hensley](https://jacehensley.dev/uses) — Fullstack Engineer 805 | * [Preston Lamb](https://www.prestonlamb.com/uses) — Full Stack JavaScript Developer and Thinkster.io Author 806 | * [Marek Maras](https://www.marek-maras.de/uses) — Self-taught Frontend developer from Hattingen, Germany with a focus on React/Gatsby. Oh and Craft Beer is Life! 807 | * [Seshal Jain](https://archgaelix.vercel.app/uses) — Emacs rookie passionate about aesthetic design and a beautiful, free web 808 | * [Vic Demuzere](https://vic.demuzere.be/uses/) — Go developer and Linux enthousiast at home, system administrator at work. 809 | * [Ivan Santos](https://ivansantos.me/uses) — 🍺 🤠 Node.js, Go, Terraform and Kubernetes. Distributed Systems FTW. 810 | * [Kristina Groeger](https://github.com/kr1st1nagr03g3r/uses) — 💻 👻 Over ten years of front-end development and UI / UX development and design. 811 | * [Patrick Obermeier](https://www.patrickobermeier.at/uses) — Experienced front-end developer with a solid online-marketing background on top. Lover of fancy hipster beer. 812 | * [James Dewes](https://jamesdewes.com/uses/) — Full-stack developer, software and data engineer, Yorkshire, UK. 813 | * [Mladen Milesic](https://www.mladenmilesic.com/uses/) — Passionate Electrical Engineer gone Software. I relish the art of crafting and tinkering with both digital and physical creations. 814 | * [Paul Mowat](https://www.paulmowat.co.uk/uses/) — A passionate developer who likes learning new technologies. Currently Principal DevOps Architect @ Advanced 815 | * [Luigi Cruz](https://luigicruz.dev/uses) — Software developer with a focus on the Web. 816 | * [Felix Macaspac](https://gist.github.com/felixmacaspac/8ede14ecaeaec3790701b2ed8ea6374e) — Self-taught Frontend developer from the Philippines, and a CS student. 817 | * [Jerry Shi](https://github.com/szy0syz/uses) — Full Stack, Motivated full-stack developer not afraid to use any technology. 818 | * [Carol Gilabert](http://carol.gg/uses/) — Web developer and community organiser. 819 | * [Nic Lake](https://niclake.me/uses) — Full Stack Engineer & Bulbasaur stan 820 | * [Francisco Valloire](https://github.com/frajova/what-i-use) — Frontend developer, self-taught, enthusiastic and passionate about new technologies. 821 | * [Raúl Piracés](https://piraces.dev/uses) — Full Stack and passionate Software Engineer. 822 | * [Filip Pacurar](https://pacurar.dev/uses/) — Loving husband, father of Joshua and Caleb, proud christian and enthusiast senior software developer, former CTO 823 | * [Wuttinan Sukpoon](https://github.com/mewxz029/uses) — FullStack Developer 824 | * [Michael Mior](https://michael.mior.ca/uses/) — Assistant Professor and Director of the Data Unity Lab at RIT 825 | * [Kai Devrim](https://devrim.tech/uses/) — IT/Programming Student & Really Bad Hacker 826 | * [Josh Beard](https://joshbeard.me/uses/) — Sysadmin, DevOps, Hobbyist 827 | * [Thanh Doan](https://doantranminhthanh.com/uses) — Full-stack Engineer building impactful software and contributing to open source 828 | * [Peter Forret](https://blog.forret.com/uses/) — Photographer, tinkerer, software architect 829 | * [Scott Zirkel](https://scottzirkel.com/uses) — Making stuff up since 1977 830 | * [Andreas Nedbal](https://pixelde.su/uses) — Full-Stack Developer from Germany with a focus on frontend and build processes/tooling. 831 | * [Nick Ali](https://nali.org/uses) — Marketer who used to be a software architect. 832 | * [Jesús Leganés-Combarro "piranna"](https://piranna.github.io/uses) — Passionate computers engineer and ex-PhD. candidate in Computers Engineering. Proud advocate of Open Source, standards, specifications, and best practices. 833 | * [Pascal Poredda](https://pascal-poredda.de/uses/) — Freelancer from Cologne, Germany. Running an agency called poredda.digital 834 | * [Daniel Cefram Ramirez](https://rmrz.ph/uses/) — I build things through code. I make short sentences to multiple paragraphs. 835 | * [Simon Lee](https://simonhlee97.github.io/uses/) — Front end developer. Indiana Hoosier. 836 | * [Jaydeep Rawat](https://gist.github.com/Jaydeeprawat17/c0600f2903549649b0cc9b0e8318297b) — Hiya! I am a Student and Software Engineer. 837 | * [James Mathias](https://artisticoutlaw.com/outlaw/uses) — Artist, Writer, & Outlaw 838 | * [Aaron Pham](https://aarnphm.xyz/uses) — distributed and ml system. 839 | * [Gabriel Garrido](https://garrido.io/uses/) — Curious human being 840 | * [Matt Walsh](https://mattwalsh.dev/uses/) — Python programmer with love for data and automation 841 | * [Hammy Havoc](https://hammyhavoc.com/uses/) — Composer for video games and picture. Cypherpunk and open source aficionado. 842 | * [Hector Aguilar](https://bitbyte.blog/uses) — A Software Engineer that loves Web development and CLI sofware 843 | * [Ricardo Quiroz](https://rcrd.space/uses) — Software Developer mostly with Node.js 💚 I love to write clean beautiful code even when it's unnecessary. 844 | * [Rasul Kireev](https://rasulkireev.com/uses) — Software Engineer at Readwise specialising in Django 845 | * [Ferdinand Linnenberg](https://linnenberg.dev/uses) — Backend Developer and Open Source Enthusiast 846 | * [JourneyToLunar](https://journeytolunar.com/uses/) — Swift developer, blogger, photographer, and youtuber. 847 | * [Will Adams](https://willadams.dev/uses) — UK developer and knife maker 848 | * [Ruben Arakelyan](https://www.wackomenace.co.uk/uses) — Senior Ruby developer 849 | * [Tim Veletta](https://www.timveletta.com/uses) — Australian full-stack developer and designer 850 | * [That MLOps Guy](https://thatmlopsguy.github.io/uses/) — Portuguese machine learning engineer 851 | * [Hiran Venugopalan](https://hiran.in/uses) — A tinkerer who loves building things. Product Designer. Into PKM and Digital Garden. 852 | * [Ryan Daley](https://www.rpdaley.com/uses/) — Software Engineer | ex-Shopify, ex-BellMedia, ex-Apple, ex-Kobo, ex-RIM 853 | * [Vivian Guillen](https://codequeen.io/uses/) — Full Stack Developer and Writer 854 | * [Abul Khoyer](https://abulkhoyer.com/uses/) — Web Developer and Designer 855 | * [Alberto Gallego](https://albertogalca.com/uses) — I make software, write, and take photos.. 856 | * [Manthan Ank](https://manthanank.web.app/uses) — I'm Front-End Developer, Intermediate Learner, Also as a hobby I write blogs related to Web Development. 857 | * [Catalin Pit](https://catalins.tech/uses/) — Software developer building on the web with TypeScript, React, Node.js, and more. Writer, YouTuber, and lifelong learner who enjoys sharing knowledge with others. 858 | * [Thu Le](https://thu-le.com/uses) — Product & Experience Designer working in B2B SaaS. 859 | 860 | [awesome-badge]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg 861 | -------------------------------------------------------------------------------- /remix.config.js: -------------------------------------------------------------------------------- 1 | const { config } = require("@netlify/remix-edge-adapter"); 2 | /** @type {import('@remix-run/dev').AppConfig} */ 3 | module.exports = { 4 | ...(process.env.NETLIFY || process.env.NETLIFY_LOCAL ? config : {}), 5 | appDirectory: "src", 6 | future: { 7 | unstable_postcss: true, 8 | }, 9 | ignoredRouteFiles: ["**/.*"], 10 | server: 11 | process.env.NETLIFY || process.env.NETLIFY_LOCAL 12 | ? "./server.js" 13 | : undefined, 14 | // serverBuildPath: ".netlify/functions-internal/server.js", 15 | }; 16 | -------------------------------------------------------------------------------- /scripts/data-validate.js: -------------------------------------------------------------------------------- 1 | const core = require('@actions/core'); 2 | const { 3 | getMasterData, 4 | Schema, 5 | getStatusCode, 6 | communicateValidationOutcome, 7 | } = require('./utils.js'); 8 | const srcData = require('../src/data.js'); 9 | 10 | async function main() { 11 | // on master branch will be empty array 12 | const masterDataUrls = (await getMasterData()).map(d => d.url); 13 | // so here data will be an array with all users 14 | const data = srcData.filter(d => !masterDataUrls.includes(d.url)); 15 | 16 | const errors = data 17 | .map(person => Schema.validate(person)) 18 | .filter(v => v.error) 19 | .map(v => v.error); 20 | 21 | errors.forEach(e => { 22 | core.error(e._original.name || e._original.url); 23 | e.details.forEach(d => core.error(d.message)); 24 | }); 25 | 26 | const failedUrls = []; 27 | for (const { url } of data) { 28 | try { 29 | const statusCode = await getStatusCode(url); 30 | if (statusCode < 200 || statusCode >= 400) { 31 | core.error(`Ping to "${url}" failed with status: ${statusCode}`); 32 | failedUrls.push(url); 33 | } 34 | } catch (e) { 35 | core.error(`Ping to "${url}" failed with error: ${e}`); 36 | failedUrls.push(url); 37 | } 38 | } 39 | 40 | await communicateValidationOutcome(errors, failedUrls, data); 41 | } 42 | 43 | main(); 44 | -------------------------------------------------------------------------------- /scripts/flags.js: -------------------------------------------------------------------------------- 1 | module.exports = [ 2 | '🇦🇫', 3 | '🇦🇱', 4 | '🇩🇿', 5 | '🇦🇸', 6 | '🇦🇩', 7 | '🇦🇴', 8 | '🇦🇮', 9 | '🇦🇶', 10 | '🇦🇬', 11 | '🇦🇷', 12 | '🇦🇲', 13 | '🇦🇼', 14 | '🇦🇺', 15 | '🇦🇹', 16 | '🇦🇿', 17 | '🇧🇮', 18 | '🇧🇸', 19 | '🇧🇭', 20 | '🇧🇩', 21 | '🇧🇧', 22 | '🇧🇾', 23 | '🇧🇪', 24 | '🇧🇿', 25 | '🇧🇯', 26 | '🇧🇲', 27 | '🇧🇹', 28 | '🇧🇴', 29 | '🇧🇶', 30 | '🇧🇦', 31 | '🇧🇼', 32 | '🇧🇻', 33 | '🇧🇷', 34 | '🇧🇳', 35 | '🇧🇬', 36 | '🇧🇫', 37 | '🇧🇮', 38 | '🇰🇭', 39 | '🇨🇲', 40 | '🇨🇦', 41 | '🇨🇻', 42 | '🇰🇾', 43 | '🇨🇫', 44 | '🇹🇩', 45 | '🇨🇱', 46 | '🇨🇳', 47 | '🇨🇽', 48 | '🇨🇨', 49 | '🇨🇴', 50 | '🇰🇲', 51 | '🇨🇩', 52 | '🇨🇬', 53 | '🇨🇰', 54 | '🇨🇷', 55 | '🇭🇷', 56 | '🇨🇺', 57 | '🇨🇼', 58 | '🇨🇾', 59 | '🇨🇿', 60 | '🇩🇰', 61 | '🇩🇯', 62 | '🇩🇲', 63 | '🇩🇴', 64 | '🇪🇨', 65 | '🇪🇬', 66 | '🇸🇻', 67 | '🇬🇶', 68 | '🇪🇷', 69 | '🇪🇪', 70 | '🇪🇹', 71 | '🇫🇴', 72 | '🇫🇯', 73 | '🇫🇮', 74 | '🇫🇷', 75 | '🇬🇫', 76 | '🇵🇫', 77 | '🇹🇫', 78 | '🇬🇦', 79 | '🇬🇲', 80 | '🇬🇪', 81 | '🇩🇪', 82 | '🇬🇭', 83 | '🇬🇮', 84 | '🇬🇧', 85 | '🇬🇷', 86 | '🇬🇱', 87 | '🇬🇩', 88 | '🇬🇵', 89 | '🇬🇺', 90 | '🇬🇹', 91 | '🇬🇬', 92 | '🇬🇳', 93 | '🇬🇼', 94 | '🇬🇾', 95 | '🇭🇹', 96 | '🇭🇳', 97 | '🇭🇰', 98 | '🇭🇺', 99 | '🇮🇸', 100 | '🇮🇳', 101 | '🇮🇩', 102 | '🇮🇷', 103 | '🇮🇶', 104 | '🇮🇪', 105 | '🇮🇱', 106 | '🇮🇹', 107 | '🇨🇮', 108 | '🇯🇲', 109 | '🇯🇵', 110 | '🇯🇪', 111 | '🇯🇴', 112 | '🇰🇿', 113 | '🇰🇪', 114 | '🇰🇮', 115 | '🇰🇼', 116 | '🇰🇬', 117 | '🇱🇦', 118 | '🇱🇻', 119 | '🇱🇧', 120 | '🇱🇸', 121 | '🇱🇷', 122 | '🇱🇾', 123 | '🇱🇮', 124 | '🇱🇹', 125 | '🇱🇺', 126 | '🇲🇴', 127 | '🇲🇰', 128 | '🇲🇬', 129 | '🇲🇼', 130 | '🇲🇾', 131 | '🇲🇻', 132 | '🇲🇱', 133 | '🇲🇹', 134 | '🇲🇭', 135 | '🇲🇶', 136 | '🇲🇷', 137 | '🇲🇺', 138 | '🇾🇹', 139 | '🇲🇽', 140 | '🇫🇲', 141 | '🇲🇩', 142 | '🇲🇨', 143 | '🇲🇳', 144 | '🇲🇪', 145 | '🇲🇸', 146 | '🇲🇦', 147 | '🇲🇿', 148 | '🇲🇲', 149 | '🇳🇦', 150 | '🇳🇷', 151 | '🇳🇵', 152 | '🇳🇱', 153 | '🇳🇨', 154 | '🇳🇿', 155 | '🇳🇮', 156 | '🇳🇪', 157 | '🇳🇬', 158 | '🇳🇺', 159 | '🇳🇫', 160 | '🇰🇵', 161 | '🇲🇵', 162 | '🇳🇴', 163 | '🇴🇲', 164 | '🇵🇰', 165 | '🇵🇼', 166 | '🇵🇸', 167 | '🇵🇦', 168 | '🇵🇬', 169 | '🇵🇾', 170 | '🇵🇪', 171 | '🇵🇭', 172 | '🇵🇳', 173 | '🇵🇱', 174 | '🇵🇹', 175 | '🇵🇷', 176 | '🇶🇦', 177 | '🇷🇪', 178 | '🇷🇴', 179 | '🇷🇺', 180 | '🇷🇼', 181 | '🇼🇸', 182 | '🇸🇲', 183 | '🇸🇹', 184 | '🇸🇦', 185 | '🇸🇳', 186 | '🇷🇸', 187 | '🇸🇨', 188 | '🇸🇱', 189 | '🇸🇬', 190 | '🇸🇰', 191 | '🇸🇮', 192 | '🇸🇧', 193 | '🇸🇴', 194 | '🇿🇦', 195 | '🇬🇸', 196 | '🇰🇷', 197 | '🇸🇸', 198 | '🇪🇸', 199 | '🇱🇰', 200 | '🇸🇩', 201 | '🇸🇷', 202 | '🇸🇯', 203 | '🇸🇿', 204 | '🇸🇪', 205 | '🇨🇭', 206 | '🇸🇾', 207 | '🇹🇼', 208 | '🇹🇯', 209 | '🇹🇿', 210 | '🇹🇭', 211 | '🇹🇱', 212 | '🇹🇬', 213 | '🇹🇰', 214 | '🇹🇴', 215 | '🇹🇹', 216 | '🇹🇳', 217 | '🇹🇷', 218 | '🇹🇲', 219 | '🇹🇨', 220 | '🇹🇻', 221 | '🇺🇬', 222 | '🇺🇦', 223 | '🇦🇪', 224 | '🇺🇳', 225 | '🇺🇾', 226 | '🇺🇸', 227 | '🇺🇿', 228 | '🇻🇺', 229 | '🇻🇦', 230 | '🇻🇪', 231 | '🇻🇳', 232 | '🇼🇫', 233 | '🇪🇭', 234 | '🇾🇪', 235 | '🇿🇲', 236 | '🇿🇼', 237 | '🏴󠁧󠁢󠁥󠁮󠁧󠁿', 238 | '🏳️‍🌈', 239 | '🇪🇺', 240 | '🏴󠁧󠁢󠁳󠁣󠁴󠁿', 241 | ]; 242 | -------------------------------------------------------------------------------- /scripts/masterData.js: -------------------------------------------------------------------------------- 1 | /** 2 | * this is a stub file, do not edit it 3 | * see `scripts/utils.js` -> `getMasterData` 4 | */ 5 | module.exports = []; 6 | -------------------------------------------------------------------------------- /scripts/multiple-emojis.mjs: -------------------------------------------------------------------------------- 1 | import people from '../src/data.js'; 2 | 3 | function stringLength(str) { 4 | return Array.from(new Intl.Segmenter().segment(str)).length; 5 | } 6 | 7 | function checkEmojiLength(person) { 8 | if(stringLength(person.emoji) > 1 && person.emoji) { 9 | console.log(person.name, person.emoji); 10 | } 11 | } 12 | 13 | people.map(checkEmojiLength); 14 | -------------------------------------------------------------------------------- /scripts/populate-readme.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const data = require('../src/data.js'); 3 | 4 | /** @type {string} */ 5 | const readmeTemplate = fs.readFileSync('./scripts/readme-template.md', 'utf8'); 6 | const formatedData = data 7 | .map(page => `* [${page.name}](${page.url}) — ${page.description}`) 8 | .join('\r\n'); 9 | 10 | fs.writeFileSync( 11 | 'generated-readme.md', 12 | readmeTemplate.replace('###DATA_PLACEHOLDER###', formatedData) 13 | ); 14 | -------------------------------------------------------------------------------- /scripts/readme-template.md: -------------------------------------------------------------------------------- 1 | # → Visit [uses.tech](https://uses.tech) for a good time 2 | 3 | ## Please read [Contribution Guide](https://github.com/wesbos/awesome-uses/blob/master/contribution-guide.md) before submitting a PR. 4 | A list of `/uses` pages detailing developer setups, gear, software and configs. 5 | 6 | Add your own `/uses` page in [data.js](https://github.com/wesbos/awesome-uses/blob/master/src/data.js). 7 | 8 | This readme is auto-generated from the data.js file, so please don't PR this file. 9 | 10 | ``` 11 | ▄████████ ▄█ █▄ ▄████████ ▄████████ ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ 12 | ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ 13 | ███ ███ ███ ███ ███ █▀ ███ █▀ ███ ███ ███ ███ ███ ███ █▀ 14 | ███ ███ ███ ███ ▄███▄▄▄ ███ ███ ███ ███ ███ ███ ▄███▄▄▄ 15 | ▀███████████ ███ ███ ▀▀███▀▀▀ ▀███████████ ███ ███ ███ ███ ███ ▀▀███▀▀▀ 16 | ███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ █▄ 17 | ███ ███ ███ ▄█▄ ███ ███ ███ ▄█ ███ ███ ███ ███ ███ ███ ███ ███ 18 | ███ █▀ ▀███▀███▀ ██████████ ▄████████▀ ▀██████▀ ▀█ ███ █▀ ██████████ 19 | 20 | ███ █▄ ▄████████ ▄████████ ▄████████ 21 | ███ ███ ███ ███ ███ ███ ███ ███ 22 | ███ ███ ███ █▀ ███ █▀ ███ █▀ 23 | ███ ███ ███ ▄███▄▄▄ ███ 24 | ███ ███ ▀███████████ ▀▀███▀▀▀ ▀███████████ 25 | ███ ███ ███ ███ █▄ ███ 26 | ███ ███ ▄█ ███ ███ ███ ▄█ ███ 27 | ████████▀ ▄████████▀ ██████████ ▄████████▀ 28 | 29 | ``` 30 | 31 | # Awesome Uses ![Awesome][awesome-badge] 32 | 33 | ###DATA_PLACEHOLDER### 34 | 35 | [awesome-badge]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg 36 | -------------------------------------------------------------------------------- /scripts/utils.js: -------------------------------------------------------------------------------- 1 | const exec = require('@actions/exec'); 2 | const core = require('@actions/core'); 3 | const github = require('@actions/github'); 4 | const Joi = require('joi'); 5 | const http = require('http'); 6 | const https = require('https'); 7 | const flags = require('./flags.js'); 8 | 9 | async function getCurrentBranchName() { 10 | let myOutput = ''; 11 | let myError = ''; 12 | 13 | const options = { 14 | silent: true, 15 | listeners: { 16 | stdout: (data) => (myOutput += data.toString()), 17 | stderr: (data) => (myError += data.toString()), 18 | }, 19 | }; 20 | 21 | await exec.exec('git rev-parse --abbrev-ref HEAD', [], options); 22 | return myOutput.trim(); 23 | } 24 | 25 | /** on master branch will return an empty array */ 26 | module.exports.getMasterData = async function () { 27 | const options = { silent: true }; 28 | const curentBranchName = await getCurrentBranchName(); 29 | // when on a branch/PR different from master 30 | // will populate scripts/masterData.js with src/data.js from master 31 | if (curentBranchName !== 'master') { 32 | core.info('Executing action on branch different from master'); 33 | await exec.exec('mv src/data.js src/tmpData.js', [], options); 34 | await exec.exec('git fetch origin master', [], options); 35 | await exec.exec('git restore --source=FETCH_HEAD src/data.js', [], options); 36 | await exec.exec('mv src/data.js scripts/masterData.js', [], options); 37 | await exec.exec('mv src/tmpData.js src/data.js', [], options); 38 | } else { 39 | core.info('Executing action on master branch'); 40 | } 41 | 42 | // eslint-disable-next-line global-require 43 | const masterData = require('./masterData.js'); 44 | 45 | // restore `scripts/masterData.js` after was loaded 46 | if (curentBranchName !== 'master') { 47 | await exec.exec('git restore scripts/masterData.js', [], options); 48 | } 49 | 50 | return masterData; 51 | }; 52 | 53 | module.exports.Schema = Joi.object({ 54 | name: Joi.string().required(), 55 | description: Joi.string().required(), 56 | url: Joi.string() 57 | .uri() 58 | .required() 59 | .pattern(/(use|uses|using|setup|environment|^https:\/\/gist.github.com\/)/), 60 | country: Joi.string() 61 | .valid(...flags) 62 | .required(), 63 | twitter: Joi.string().pattern(new RegExp(/^@?(\w){1,15}$/)), 64 | mastodon: Joi.string().pattern(new RegExp(/^@(\w){1,30}@(\w)+\.(.?\w)+$/)), 65 | bluesky: Joi.string().pattern(new RegExp(/^[\w-]+\.(?:[\w-]+\.)?[\w-]+$/)), 66 | emoji: Joi.string().allow(''), 67 | computer: Joi.string().valid('apple', 'windows', 'linux', 'bsd'), 68 | phone: Joi.string().valid('iphone', 'android', 'windowsphone', 'flipphone'), 69 | tags: Joi.array().items(Joi.string()), 70 | }); 71 | 72 | module.exports.getStatusCode = function (url) { 73 | const client = url.startsWith('https') ? https : http; 74 | return new Promise((resolve, reject) => { 75 | const REQUEST_TIMEOUT = 10000; 76 | const timeoutId = setTimeout( 77 | reject, 78 | REQUEST_TIMEOUT, 79 | new Error('Request timed out') 80 | ); 81 | 82 | client 83 | .get(url, (res) => { 84 | clearTimeout(timeoutId); 85 | resolve(res.statusCode); 86 | }) 87 | .on('error', (err) => reject(err)); 88 | }); 89 | }; 90 | 91 | // If there are errors, will fail the action & add a comment detailing the issues 92 | // If there are no errors, will leave an "all-clear" comment with relevant URLs (to ease a potential manual check) 93 | module.exports.communicateValidationOutcome = async function ( 94 | errors, 95 | failedUrls, 96 | changedData 97 | ) { 98 | let comment = ''; 99 | if (errors.length || failedUrls.length) { 100 | core.setFailed('Action failed with errors, see logs & comment'); 101 | 102 | comment += [ 103 | '🚨 We have detected the following issues, let us (contributors) know if you need support or clarifications:', 104 | ...errors.map((e) => `- ${e.message}`), 105 | ...failedUrls.map((url) => `- URL is invalid: ${url}`), 106 | ].join('\n'); 107 | } else { 108 | comment += [ 109 | '✅ Automatic validation checks succeeded for:', 110 | // Comment with the URLs of users that have changed 111 | // for easy access, way easier than taking a screenshot 112 | ...changedData.map(({ name, url }) => `- ${name}, ${url}`), 113 | ].join('\n'); 114 | } 115 | 116 | const { GITHUB_TOKEN } = process.env; 117 | const { context } = github; 118 | if (!GITHUB_TOKEN || !context.payload.pull_request) { 119 | core.error( 120 | 'Cannot add a comment if GITHUB_TOKEN or context.payload.pull_request is not set' 121 | ); 122 | core.info(`Comment contents:\n${comment}`); 123 | } 124 | // TODO: Re-enable a way to comment on PRs that tests passed. 125 | // const pullRequestNumber = context.payload.pull_request.number; 126 | 127 | // const octokit = new github.getOctokit(GITHUB_TOKEN); 128 | // await octokit.rest.pulls.createReviewComment({ 129 | // ...context.repo, 130 | // pullRequestNumber, 131 | // body: comment, 132 | // }); 133 | }; 134 | -------------------------------------------------------------------------------- /server.ts: -------------------------------------------------------------------------------- 1 | // Import path interpreted by the Remix compiler 2 | import * as build from '@remix-run/dev/server-build'; 3 | import { createRequestHandler } from '@netlify/remix-edge-adapter'; 4 | 5 | export default createRequestHandler({ 6 | build, 7 | // process.env.NODE_ENV is provided by Remix at compile time 8 | mode: process.env.NODE_ENV, 9 | }); 10 | 11 | export const config = { 12 | cache: 'manual', 13 | path: '/*', 14 | // Pass all assets to the netlify asset server 15 | excluded_patterns: [ 16 | '^\\/_assets\\/[^\\/]*$', 17 | '^\\/shared\\/[^\\/]*$', 18 | '^\\/build\\/[^\\/]*$', 19 | // '^\\/**\\/[^\\/]*$', 20 | ], 21 | }; 22 | -------------------------------------------------------------------------------- /src/components/BackToTop.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from 'react'; 2 | 3 | function useScrollPosition() { 4 | const [percent, setPercent] = useState(0); 5 | 6 | function handleScroll(event) { 7 | const scrollTop = 8 | document.scrollingElement.scrollHeight - 9 | document.documentElement.clientHeight; 10 | const howFar = document.documentElement.scrollTop / scrollTop; 11 | setPercent(howFar); 12 | } 13 | 14 | useEffect(() => { 15 | // listen for window scroll event 16 | document.addEventListener('scroll', handleScroll); 17 | return () => { 18 | document.removeEventListener('scroll', handleScroll); 19 | }; 20 | }); 21 | 22 | return percent; 23 | } 24 | 25 | export default function BackToTop() { 26 | const percent = useScrollPosition(); 27 | return ( 28 | 0.25 ? 'Show' : ''}`} href="#top" title="Back To Top"> 29 | ↑ 30 | 31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /src/components/FavIcon.js: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState, useRef } from 'react'; 2 | 3 | function useInterval(callback, delay) { 4 | const savedCallback = useRef(); 5 | 6 | // Remember the latest callback. 7 | useEffect(() => { 8 | savedCallback.current = callback; 9 | }, [callback]); 10 | 11 | // Set up the interval. 12 | useEffect(() => { 13 | function tick() { 14 | savedCallback.current(); 15 | } 16 | if (delay !== null) { 17 | const id = setInterval(tick, delay); 18 | return () => clearInterval(id); 19 | } 20 | }, [delay]); 21 | } 22 | 23 | function useWickedFavIcon() { 24 | const letters = [...'/USES!💩']; 25 | const [index, setIndex] = useState(0); 26 | const canvasRef = useRef(0); 27 | useInterval(() => { 28 | setIndex(index >= letters.length - 1 ? 0 : index + 1); 29 | const letter = letters[index]; 30 | const canvas = canvasRef.current; 31 | const ctx = canvas.getContext('2d'); 32 | ctx.fillStyle = '#203447'; 33 | ctx.fillRect(0, 0, canvas.width, canvas.height); 34 | ctx.fillStyle = '#ffc600'; 35 | ctx.font = `310px monospace`; 36 | ctx.fillText(letter, 10, canvas.height - 10); 37 | const data = canvas.toDataURL('image/png'); 38 | 39 | const link = document.querySelector("link[rel*='icon']"); 40 | link.type = 'image/x-icon'; 41 | link.href = data; 42 | }, 350); 43 | return { letter: letters[index], index, canvasRef }; 44 | } 45 | 46 | export default function FavIcon() { 47 | const { /* letter, index, */ canvasRef } = useWickedFavIcon(); 48 | return ( 49 |
50 | 57 |
58 | ); 59 | } 60 | -------------------------------------------------------------------------------- /src/components/Person.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect, useRef } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { name } from 'country-emoji'; 4 | import { useParams } from '@remix-run/react'; 5 | import * as icons from '../util/icons'; 6 | 7 | export default function Person({ person }) { 8 | const url = new URL(person.url); 9 | const twitter = person.twitter 10 | ? `https://unavatar.io/x/${person.twitter.replace('@', '')}` 11 | : null; 12 | const website = `https://unavatar.io/${url.host}`; 13 | const unavatar = person.twitter 14 | ? `${twitter}?fallback=${website}&ttl=28d` 15 | : website; 16 | const [_, mastodonHandle, mastodonServer] = person.mastodon?.split('@') || []; 17 | const { tag: currentTag } = useParams(); 18 | return ( 19 |
20 |
21 |
22 | {person.name} { 28 | currentTarget.onerror = null; // prevents looping 29 | currentTarget.src = "/default.png"; 30 | }} 31 | loading="lazy" 32 | /> 33 |

34 | 35 | {person.name} 36 | {" "} 37 | {person.emoji} 38 |

39 | 45 | {url.host} 46 | {url.pathname.replace(/\/$/, "")} 47 | 48 |
49 |

{person.description}

50 |
    51 | {person.tags.map((tag) => ( 52 |
  • 56 | {tag} 57 |
  • 58 | ))} 59 |
60 |
61 |
62 | 63 | {person.country} 64 | 65 | {person.computer && ( 66 | 67 | {person.computer} 72 | 73 | )} 74 | {person.phone && ( 75 | 76 | {person.phone} 77 | 78 | )} 79 | 80 | {person.twitter && ( 81 |
82 | 87 | @ 88 | {person.twitter.replace("@", "")} 89 | 90 |
91 | )} 92 | 93 | {/* If they have a bluesky, and no twitter/mastodon, show that */} 94 | {person.bluesky && !person.twitter && ( 95 |
96 | 101 | @ 102 | {person.bluesky.substring(1)} 103 | 104 |
105 | )} 106 | 107 | {/* If they have a mastodon, and no twitter, show that */} 108 | {person.mastodon && !person.twitter && !person.bluesky && ( 109 |
110 | 115 | @ 116 | {mastodonHandle} 117 | 118 |
119 | )} 120 | 121 | {/* If they have a bluesky, and no mastodon and no twitter, show that */} 122 | {person.bluesky && !person.mastodon && !person.twitter && ( 123 |
124 | 128 | @ 129 | {person.bluesky} 130 | 131 |
132 | )} 133 |
134 |
135 | ); 136 | } 137 | 138 | Person.propTypes = { 139 | person: PropTypes.shape({ 140 | github: PropTypes.string, 141 | name: PropTypes.string, 142 | url: PropTypes.string, 143 | emoji: PropTypes.string, 144 | description: PropTypes.string, 145 | tags: PropTypes.arrayOf(PropTypes.string), 146 | country: PropTypes.string, 147 | computer: PropTypes.oneOf(['apple', 'windows', 'linux']), 148 | phone: PropTypes.oneOf(['iphone', 'android', 'windowsphone', 'flipphone']), 149 | twitter(props, propName, componentName) { 150 | if (!/^@?(\w){1,15}$/.test(props[propName])) { 151 | return new Error( 152 | `Invalid prop \`${propName}\` supplied to` + 153 | ` \`${componentName}\`. This isn't a legit Twitter handle.` 154 | ); 155 | } 156 | }, 157 | mastodon(props, propName, componentName) { 158 | if (!/^@(\w){1,30}@(\w)+\.(\w)+$/.test(props[propName])) { 159 | return new Error( 160 | `Invalid prop \`${propName}\` supplied to` + 161 | ` \`${componentName}\`. This isn't a legit Mastodon handle.` 162 | ); 163 | } 164 | }, 165 | bluesky(props, propName, componentName) { 166 | if (!/^(\w)+\.(\w)+\.(\w)+$/.test(props[propName])) { 167 | return new Error( 168 | `Invalid prop \`${propName}\` supplied to` + 169 | ` \`${componentName}\`. This isn't a legit Bluesky handle.` 170 | ); 171 | } 172 | }, 173 | }), 174 | }; 175 | -------------------------------------------------------------------------------- /src/components/Topics.js: -------------------------------------------------------------------------------- 1 | import { Link, useParams, useRouteLoaderData } from '@remix-run/react'; 2 | import * as icons from '../util/icons'; 3 | 4 | export default function Topics() { 5 | const { tags, countries, devices } = useRouteLoaderData("root"); 6 | const params = useParams(); 7 | const currentTag = params.tag || 'all'; 8 | 9 | return ( 10 |
11 | {tags.map((tag) => ( 12 | 20 | {tag.name} 21 | {tag.count} 22 | 23 | ))} 24 | 25 | {countries.map((tag) => ( 26 | 33 | {tag.emoji} 34 | {tag.count} 35 | 36 | ))} 37 | 38 | {devices.map((tag) => ( 39 | 46 | {tag.name} 47 | {tag.count} 48 | 49 | ))} 50 |
51 | ); 52 | } 53 | -------------------------------------------------------------------------------- /src/components/header.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import Helmet from 'react-helmet'; 4 | import FavIcon from './FavIcon'; 5 | 6 | function Header({ siteTitle, siteDescription, siteUrl }) { 7 | 8 | return ( 9 |
10 | 11 |
12 |

13 | /uses 14 |

15 |

16 | A list of /uses pages detailing developer setups, gear, 17 | software and configs. 18 |

19 |
20 |
21 | ); 22 | } 23 | Header.propTypes = { 24 | siteTitle: PropTypes.string, 25 | siteDescription: PropTypes.string, 26 | siteUrl: PropTypes.string, 27 | }; 28 | 29 | Header.defaultProps = { 30 | siteTitle: '', 31 | siteDescription: '', 32 | siteUrl: '', 33 | }; 34 | 35 | export default Header; 36 | -------------------------------------------------------------------------------- /src/components/layout.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import Header from './header'; 4 | import 'normalize.css'; 5 | 6 | export default function Layout({ children }) { 7 | return ( 8 |
9 |
10 | {children} 11 |
12 |
13 |

14 | Made by Wes Bos with{" "} 15 | Remix ©{" "} 16 | {new Date().getFullYear()} 17 |

18 |

19 | Source on{" "} 20 | GitHub. Add 21 | yourself! 22 |

23 |

24 | Icons from icons8.com 25 |

26 |

27 | Domain provided by .Tech 28 |

29 |

30 | Hosted on Netlify 31 |

32 |

Rendered Fresh

33 |
34 |
35 |
36 | ); 37 | }; 38 | 39 | Layout.propTypes = { 40 | children: PropTypes.node.isRequired, 41 | }; 42 | -------------------------------------------------------------------------------- /src/entry.client.tsx: -------------------------------------------------------------------------------- 1 | import { RemixBrowser } from '@remix-run/react'; 2 | import { startTransition, StrictMode } from 'react'; 3 | import { hydrateRoot } from 'react-dom/client'; 4 | const hydrate = () => { 5 | startTransition(() => { 6 | hydrateRoot( 7 | document, 8 | 9 | 10 | 11 | ); 12 | }); 13 | }; 14 | 15 | if (window.requestIdleCallback) { 16 | window.requestIdleCallback(hydrate); 17 | } else { 18 | // Safari doesn't support requestIdleCallback 19 | // https://caniuse.com/requestidlecallback 20 | window.setTimeout(hydrate, 1); 21 | } 22 | -------------------------------------------------------------------------------- /src/entry.server.tsx: -------------------------------------------------------------------------------- 1 | import type { EntryContext } from '@remix-run/node'; 2 | import { RemixServer } from '@remix-run/react'; 3 | import { renderToReadableStream } from 'react-dom/server'; 4 | 5 | const ABORT_DELAY = 5000; 6 | 7 | export async function streamToText(stream: ReadableStream): Promise { 8 | let result = ''; 9 | const reader = stream.pipeThrough(new TextDecoderStream()).getReader(); 10 | while (true) { // eslint-disable-line no-constant-condition 11 | const { done, value } = await reader.read(); 12 | if (done) { 13 | break; 14 | } 15 | 16 | result += value; 17 | } 18 | return result; 19 | } 20 | 21 | type CachedResponse = { 22 | html: string; 23 | date: Date; 24 | } 25 | const cache = new Map(); 26 | 27 | export default async function handleRequest( 28 | request: Request, 29 | responseStatusCode: number, 30 | responseHeaders: Headers, 31 | remixContext: EntryContext 32 | ) { 33 | // check if we have a cached response in memory 34 | const cachedResponse = cache.get(request.url); 35 | if (cachedResponse) { 36 | // console.log('Serving from cache', request.url); 37 | // if we have a cached response, check if it's less than 5 seconds old 38 | const now = new Date(); 39 | const diff = now.getTime() - cachedResponse.date.getTime(); 40 | if (true || diff < 5000) { 41 | // if it's less than 5 seconds old, return the cached response 42 | responseHeaders.set('Content-Type', 'text/html'); 43 | return new Response(cachedResponse.html, { 44 | headers: responseHeaders, 45 | status: responseStatusCode, 46 | }); 47 | } 48 | } 49 | 50 | let didError = false; 51 | const chunks: Uint8Array[] = []; 52 | 53 | const body = await renderToReadableStream( 54 | , 55 | { 56 | onError: (error: unknown) => { 57 | didError = true; 58 | console.error(error); 59 | } 60 | } 61 | ); 62 | 63 | // tee the stream so we can cache it and send it to the client 64 | const [toReponse, toCache] = body.tee(); 65 | 66 | streamToText(toCache).then(html => { 67 | console.log('Caching', request.url); 68 | cache.set(request.url, { 69 | html: html.replace('Rendered Fresh', `Rendered from cache ${new Date().toISOString()}`), 70 | date: new Date(), 71 | }); 72 | }); 73 | 74 | const headers = new Headers(responseHeaders); 75 | headers.set("Content-Type", "text/html"); 76 | const response = new Response(toReponse, { 77 | headers, 78 | status: didError ? 500 : responseStatusCode, 79 | }); 80 | return response; 81 | } 82 | -------------------------------------------------------------------------------- /src/fonts/fira_mono-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/fonts/fira_mono-regular-webfont.woff -------------------------------------------------------------------------------- /src/fonts/fira_mono-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/fonts/fira_mono-regular-webfont.woff2 -------------------------------------------------------------------------------- /src/fonts/fira_mono-regular_italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/fonts/fira_mono-regular_italic-webfont.woff -------------------------------------------------------------------------------- /src/fonts/fira_mono-regular_italic-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/fonts/fira_mono-regular_italic-webfont.woff2 -------------------------------------------------------------------------------- /src/http/get-index/index.js: -------------------------------------------------------------------------------- 1 | // Enable secure sessions, express-style middleware, and more: 2 | // https://docs.begin.com/en/functions/http/ 3 | // 4 | // let begin = require('@architect/functions') 5 | 6 | let html = ` 7 | 8 | 9 | 10 | 11 | Hi! 12 | 13 | 14 | 15 | 16 |

17 | Hello world! 18 |

19 |

20 | Your new route is ready to go! 21 |

22 |

23 | Learn more about building Begin HTTP functions here. 24 |

25 | 26 | 27 | ` 28 | 29 | // HTTP function 30 | exports.handler = async function http(req) { 31 | console.log(req) 32 | return { 33 | headers: { 34 | 'content-type': 'text/html; charset=utf8', 35 | 'cache-control': 'no-cache, no-store, must-revalidate, max-age=0, s-maxage=0' 36 | }, 37 | body: html 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/http/get-index/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "begin-app-get-index", 3 | "requires": true, 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "@architect/functions": { 7 | "version": "3.4.10", 8 | "resolved": "https://registry.npmjs.org/@architect/functions/-/functions-3.4.10.tgz", 9 | "integrity": "sha512-8pYTZihYxEilIE9dvtor7+n4pgAgEh7NchX6ySrGbLFkS2k6W7b1HJQJ9fLHuARi263sARVaJ63eXd5G7WS6Dw==", 10 | "requires": { 11 | "@architect/parser": "^1.2.2", 12 | "cookie": "^0.4.0", 13 | "cookie-signature": "^1.1.0", 14 | "csrf": "^3.1.0", 15 | "mime-types": "^2.1.25", 16 | "node-webtokens": "^1.0.3", 17 | "run-parallel": "^1.1.9", 18 | "run-waterfall": "^1.1.6", 19 | "uid-safe": "^2.1.5" 20 | } 21 | }, 22 | "@architect/parser": { 23 | "version": "1.2.2", 24 | "resolved": "https://registry.npmjs.org/@architect/parser/-/parser-1.2.2.tgz", 25 | "integrity": "sha512-z8M+bJCJLWpY/iNoXPPqsOlqF8zMgbmk3CLHIChSa3nnUlvx36a2bmTuh/+CiU/q4Ew7d6dHqpQB4SHtKt/A/w==" 26 | }, 27 | "@begin/data": { 28 | "version": "1.1.4", 29 | "resolved": "https://registry.npmjs.org/@begin/data/-/data-1.1.4.tgz", 30 | "integrity": "sha512-srUt6HFxancYgdZiolm7YIl3Hw7DqxxKHScFAb+eKQib5DxH70kXp2qtR/kPVtC4uZHWvPu7auCtIphzqqqUsg==", 31 | "requires": { 32 | "@architect/parser": "^1.2.0", 33 | "hashids": "^1.2.2", 34 | "run-parallel": "^1.1.9", 35 | "run-waterfall": "^1.1.6" 36 | } 37 | }, 38 | "cookie": { 39 | "version": "0.4.0", 40 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 41 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 42 | }, 43 | "cookie-signature": { 44 | "version": "1.1.0", 45 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.1.0.tgz", 46 | "integrity": "sha512-Alvs19Vgq07eunykd3Xy2jF0/qSNv2u7KDbAek9H5liV1UMijbqFs5cycZvv5dVsvseT/U4H8/7/w8Koh35C4A==" 47 | }, 48 | "csrf": { 49 | "version": "3.1.0", 50 | "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", 51 | "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", 52 | "requires": { 53 | "rndm": "1.2.0", 54 | "tsscmp": "1.0.6", 55 | "uid-safe": "2.1.5" 56 | } 57 | }, 58 | "hashids": { 59 | "version": "1.2.2", 60 | "resolved": "https://registry.npmjs.org/hashids/-/hashids-1.2.2.tgz", 61 | "integrity": "sha512-dEHCG2LraR6PNvSGxosZHIRgxF5sNLOIBFEHbj8lfP9WWmu/PWPMzsip1drdVSOFi51N2pU7gZavrgn7sbGFuw==" 62 | }, 63 | "mime-db": { 64 | "version": "1.42.0", 65 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", 66 | "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" 67 | }, 68 | "mime-types": { 69 | "version": "2.1.25", 70 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", 71 | "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", 72 | "requires": { 73 | "mime-db": "1.42.0" 74 | } 75 | }, 76 | "node-webtokens": { 77 | "version": "1.0.3", 78 | "resolved": "https://registry.npmjs.org/node-webtokens/-/node-webtokens-1.0.3.tgz", 79 | "integrity": "sha512-koyo7/sqKOXyl+nfV0sNojLSgMC//VsuQXBSRZ+Whe0aYonBSQ2F/+HVSlVashJOXHYNru/4gk6eXebeYmqoUw==" 80 | }, 81 | "random-bytes": { 82 | "version": "1.0.0", 83 | "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", 84 | "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" 85 | }, 86 | "rndm": { 87 | "version": "1.2.0", 88 | "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", 89 | "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" 90 | }, 91 | "run-parallel": { 92 | "version": "1.1.9", 93 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", 94 | "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" 95 | }, 96 | "run-waterfall": { 97 | "version": "1.1.6", 98 | "resolved": "https://registry.npmjs.org/run-waterfall/-/run-waterfall-1.1.6.tgz", 99 | "integrity": "sha512-dApPbpIK0hbFi2zqfJxrsnfmJW2HCQHFrSsmqF3Fp9TKm5WVf++zE6BSw0hPcA7rPapO37h12Swk2E6Va3tF7Q==" 100 | }, 101 | "tsscmp": { 102 | "version": "1.0.6", 103 | "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", 104 | "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==" 105 | }, 106 | "uid-safe": { 107 | "version": "2.1.5", 108 | "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", 109 | "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", 110 | "requires": { 111 | "random-bytes": "~1.0.0" 112 | } 113 | } 114 | } 115 | } -------------------------------------------------------------------------------- /src/http/get-index/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "begin-app-get-index", 3 | "dependencies": { 4 | "@architect/functions": "latest", 5 | "@begin/data": "latest" 6 | } 7 | } -------------------------------------------------------------------------------- /src/images/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/android.png -------------------------------------------------------------------------------- /src/images/apple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/images/flip-phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/flip-phone.png -------------------------------------------------------------------------------- /src/images/gatsby-astronaut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/gatsby-astronaut.png -------------------------------------------------------------------------------- /src/images/gatsby-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/gatsby-icon.png -------------------------------------------------------------------------------- /src/images/iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/iphone.png -------------------------------------------------------------------------------- /src/images/linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/linux.png -------------------------------------------------------------------------------- /src/images/twitter-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/twitter-card.png -------------------------------------------------------------------------------- /src/images/windows.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/images/windowsphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wesbos/awesome-uses/23e4cef27ba786b2571ee4ad6a574ad5dce1fa5c/src/images/windowsphone.png -------------------------------------------------------------------------------- /src/pages/404.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import Layout from '../components/layout'; 4 | 5 | const NotFoundPage = () => ( 6 | 7 |

WHAT R U DOING HERE

8 |
9 | ); 10 | 11 | export default NotFoundPage; 12 | -------------------------------------------------------------------------------- /src/root.tsx: -------------------------------------------------------------------------------- 1 | import type { LinksFunction, MetaFunction } from '@remix-run/node'; 2 | import { 3 | Links, 4 | LiveReload, 5 | Meta, 6 | Outlet, 7 | Scripts 8 | } from '@remix-run/react'; 9 | import Layout from './components/layout'; 10 | import styles from './styles.css'; 11 | import { countries, devices, tags } from './util/stats'; 12 | import twitterCard from './images/twitter-card.png'; 13 | 14 | export const links: LinksFunction = () => [ 15 | { rel: 'stylesheet', href: styles }, 16 | ]; 17 | 18 | export function loader() { 19 | return { 20 | tags: tags(), 21 | countries: countries(), 22 | devices: devices(), 23 | } 24 | } 25 | 26 | const metaData = { 27 | description: `A list of /uses pages detailing developer setups.`, 28 | siteUrl: 'https://uses.tech', 29 | author: `@wesbos`, 30 | title: '/uses', 31 | } 32 | 33 | export const meta: MetaFunction = () => ({ 34 | charset: 'utf-8', 35 | title: '/uses', 36 | viewport: 'width=device-width,initial-scale=1', 37 | }); 38 | 39 | export default function App() { 40 | return ( 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | {/* */} 58 | 59 | 60 | 61 | 62 | 63 | ); 64 | } 65 | -------------------------------------------------------------------------------- /src/routes/index.tsx: -------------------------------------------------------------------------------- 1 | import { useLoaderData, useParams } from '@remix-run/react'; 2 | import { json, LoaderArgs } from '@remix-run/server-runtime'; 3 | import React, { useContext } from 'react'; 4 | import Topics from '../components/Topics'; 5 | import BackToTop from '../components/BackToTop'; 6 | import Person from '../components/Person'; 7 | import { getPeople } from 'src/util/stats'; 8 | 9 | export async function loader({ params }: LoaderArgs) { 10 | const people = getPeople(params.tag); 11 | return {people}; 12 | } 13 | 14 | export default function Index() { 15 | const { people } = useLoaderData>(); 16 | return ( 17 | <> 18 | 19 |
20 | {people.map(person => ( 21 | 22 | ))} 23 |
24 | 25 | 26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /src/routes/like/$tag.tsx: -------------------------------------------------------------------------------- 1 | export { default, loader } from '../index'; 2 | -------------------------------------------------------------------------------- /src/styles.css: -------------------------------------------------------------------------------- 1 | /* Fonts */ 2 | @font-face { 3 | font-family: 'Fira Mono'; 4 | font-weight: 400; 5 | font-style: normal; 6 | src: url('./fonts/fira_mono-regular-webfont.woff2') format('woff2'), 7 | url('./fonts/fira_mono-regular-webfont.woff') format('woff'); 8 | font-display: swap; 9 | } 10 | @font-face { 11 | font-family: 'Fira Mono'; 12 | font-weight: 400; 13 | font-style: italic; 14 | src: url('./fonts/fira_mono-regular_italic-webfont.woff2') format('woff2'), url('../src/fonts/fira_mono-regular_italic-webfont.woff') format('woff'); 15 | font-display: swap; 16 | } 17 | 18 | html { 19 | box-sizing: border-box; 20 | } 21 | *, *:before, *:after { 22 | box-sizing: inherit; 23 | } 24 | 25 | /* Global Styles */ 26 | :root { 27 | --purple: #b066ff; 28 | --blue: #203447; 29 | --lightblue: #1f4662; 30 | --blue2: #1C2F40; 31 | --yellow: #ffc600; 32 | --pink: #EB4471; 33 | --vape: #d7d7d7; 34 | background: var(--blue); 35 | color: var(--vape); 36 | font-family: 'Fira Mono', monospace; 37 | font-weight: 100; 38 | font-size: 10px; 39 | scroll-behavior: smooth; 40 | } 41 | 42 | body { 43 | font-size: 2rem; 44 | overflow-y: scroll; 45 | margin: 0; 46 | } 47 | 48 | h1, 49 | h2, 50 | h3, 51 | h4, 52 | h5, 53 | h6 { 54 | font-weight: 500; 55 | } 56 | 57 | a { 58 | color: var(--yellow); 59 | text-decoration-color: var(--pink); 60 | font-style: italic; 61 | } 62 | 63 | code { 64 | background: var(--lightblue); 65 | } 66 | 67 | ::selection { 68 | background: var(--yellow); 69 | color: var(--blue); 70 | } 71 | 72 | body::-webkit-scrollbar { 73 | width: 12px; 74 | } 75 | 76 | html { 77 | scrollbar-width: thin; 78 | scrollbar-color: var(--yellow) var(--blue); 79 | } 80 | 81 | body::-webkit-scrollbar-track { 82 | background: var(--blue); 83 | } 84 | 85 | body::-webkit-scrollbar-thumb { 86 | background-color: var(--yellow); 87 | border-radius: 6px; 88 | border: 3px solid var(--blue); 89 | } 90 | 91 | 92 | .PersonWrapper { 93 | border: 1px solid var(--vape); 94 | border-radius: 5.34334px; 95 | box-shadow: 10px -10px 0 var(--blue2); 96 | display: grid; 97 | grid-template-rows: 1fr auto auto; 98 | } 99 | 100 | .PersonInner { 101 | padding: 2rem; 102 | 103 | & h3 { 104 | margin: 0; 105 | 106 | & a:visited { 107 | color: var(--purple); 108 | } 109 | } 110 | 111 | & header { 112 | display: grid; 113 | grid-template-rows: auto auto; 114 | grid-template-columns: auto 1fr; 115 | grid-gap: 0 1rem; 116 | 117 | @media all and (max-width: 400px) { 118 | grid-template-columns: 1fr; 119 | } 120 | 121 | & img { 122 | grid-row: 1 / -1; 123 | font-size: 1rem; 124 | } 125 | 126 | & .displayLink { 127 | white-space: nowrap; 128 | overflow: hidden; 129 | text-overflow: ellipsis; 130 | text-decoration: none; 131 | color: var(--vape); 132 | letter-spacing: 1px; 133 | font-size: 1.2rem; 134 | text-overflow: ellipsis; 135 | max-width: 100%; 136 | overflow: hidden; 137 | 138 | &:hover, 139 | &:visited { 140 | color: var(--pink); 141 | } 142 | } 143 | } 144 | } 145 | 146 | .PersonDeets { 147 | display: flex; 148 | border-top: 1px solid var(--vape); 149 | 150 | >* { 151 | flex: 1; 152 | border-left: 1px solid var(--vape); 153 | text-align: center; 154 | padding: 1rem; 155 | display: grid; 156 | align-items: center; 157 | justify-content: center; 158 | grid-template-columns: auto auto; 159 | 160 | &:first-child { 161 | border-left: 0; 162 | } 163 | } 164 | 165 | & a { 166 | color: var(--vape); 167 | } 168 | 169 | & .country { 170 | font-size: 3rem; 171 | padding-top: 2rem; 172 | 173 | } 174 | 175 | & .phone { 176 | padding: 0; 177 | } 178 | 179 | @media all and (max-width: 400px) { 180 | display: grid; 181 | grid-template-columns: 1fr 1fr; 182 | 183 | >*:nth-child(1), 184 | >*:nth-child(2) { 185 | /* lol */ 186 | border-bottom: 1px solid var(--vape); 187 | } 188 | } 189 | } 190 | 191 | .SocialHandle { 192 | font-size: 1.24323423426928098420394802rem; 193 | & .at { 194 | color: var(--yellow); 195 | margin-right: 2px; 196 | } 197 | } 198 | 199 | .Tags { 200 | list-style-type: none; 201 | margin: 0; 202 | padding: 0; 203 | display: flex; 204 | flex-wrap: wrap; 205 | } 206 | 207 | .Tag { 208 | background: var(--pink); 209 | margin: 2px; 210 | border-radius: 3px; 211 | font-size: 1.7rem; 212 | text-decoration: none; 213 | &.small { 214 | font-size: 1.2rem; 215 | } 216 | padding: 5px; 217 | color: hsla(0, 100%, 100%, 0.8); 218 | transition: background-color 0.2s; 219 | display: grid; 220 | grid-template-columns: 1fr auto; 221 | align-items: center; 222 | 223 | & input { 224 | display: none; 225 | } 226 | &.currentTag { 227 | background: var(--yellow); 228 | color: hsla(0, 100%, 0%, 0.8); 229 | } 230 | } 231 | 232 | .TagEmoji { 233 | transform: scale(1.45); 234 | } 235 | 236 | .TagCount { 237 | background: var(--blue); 238 | font-size: 1rem; 239 | color: white; 240 | padding: 2px; 241 | border-radius: 2px; 242 | margin-left: 5px; 243 | } 244 | 245 | .BackToTopLink { 246 | position: fixed; 247 | bottom: 1%; 248 | right: 1%; 249 | color: white; 250 | background: rgba(0, 0, 0, 0.5); 251 | cursor: pointer; 252 | border-radius: 3px; 253 | padding: 1rem; 254 | transition: opacity 0.2s; 255 | opacity: 0; 256 | text-decoration: none; 257 | 258 | &.Show { 259 | opacity: 1; 260 | } 261 | 262 | @media screen and (max-width: 500px) { 263 | display: none; 264 | } 265 | } 266 | 267 | .HeaderWrapper { 268 | text-align: center; 269 | 270 | & h1 { 271 | font-size: 6rem; 272 | } 273 | } 274 | 275 | .Main { 276 | display: grid; 277 | grid-gap: 3rem; 278 | max-width: 1900px; 279 | padding: 0 3rem; 280 | margin: 5rem auto; 281 | } 282 | 283 | .People { 284 | display: grid; 285 | grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); 286 | grid-gap: 5rem; 287 | 288 | @media all and (max-width: 400px) { 289 | grid-template-columns: 1fr; 290 | } 291 | } 292 | -------------------------------------------------------------------------------- /src/util/icons.js: -------------------------------------------------------------------------------- 1 | import iphone from '../images/iphone.png'; 2 | import android from '../images/android.png'; 3 | import windowsphone from '../images/windowsphone.png'; 4 | import windows from '../images/windows.svg'; 5 | import apple from '../images/apple.svg'; 6 | import linux from '../images/linux.png'; 7 | import flipphone from '../images/flip-phone.png'; 8 | 9 | export { iphone, android, windowsphone, windows, apple, linux, flipphone }; 10 | -------------------------------------------------------------------------------- /src/util/stats.ts: -------------------------------------------------------------------------------- 1 | import { name } from 'country-emoji'; 2 | import people from '../data.js'; 3 | type Person = typeof people[0]; 4 | 5 | function merge(prop: string) { 6 | return function (acc: any, obj: Record) { 7 | // Remove duplicated values. 8 | const values = [...new Set(obj[prop])]; 9 | return [...values, ...acc]; 10 | }; 11 | } 12 | 13 | function countInstances(acc, tag) { 14 | acc[tag] = acc[tag] ? acc[tag] + 1 : 1; 15 | return acc; 16 | } 17 | 18 | export function normalizeTag(tag) { 19 | return ( 20 | tag 21 | // Common mispellings currently seen in the data 22 | // Do we want to go this far? 23 | .replace(/frontend/i, 'Front End') 24 | .replace(/TailwindCSS/i, 'Tailwind CSS') 25 | .replace(/backend/i, 'Back End') 26 | .replace(/fullstack/i, 'Full Stack') 27 | .replace(/a11y/i, 'Accessibility') 28 | .replace(/next.?js/i, 'Next') 29 | .replace(/react.?js/i, 'React') 30 | // Or is lowercase enough? 31 | .toLowerCase() 32 | ); 33 | } 34 | 35 | export function countries() { 36 | const data = people 37 | .map((person) => ({ 38 | name: name(person.country), 39 | emoji: person.country, 40 | })) 41 | .reduce((acc, country) => { 42 | if (acc[country.name]) { 43 | // exists, update 44 | acc[country.name].count += 1; 45 | } else { 46 | acc[country.name] = { 47 | ...country, 48 | count: 1, 49 | }; 50 | } 51 | return acc; 52 | }, {}); 53 | 54 | const sorted = Object.entries(data) 55 | .map(([, country]) => country) 56 | .sort((a, b) => b.count - a.count) 57 | .filter(Boolean); 58 | 59 | return sorted; 60 | } 61 | 62 | export function tags() { 63 | const allTags = people.reduce(merge('tags'), []); 64 | const counts = allTags.reduce(countInstances, {}); 65 | // sort and filter for any tags that only have 1 66 | const tags = Object.entries(counts) 67 | // Only show the tag if this topic has 3 or more people in it 68 | .filter(([, count]) => count >= 3) 69 | .map(([name, count]) => ({ name, count })); 70 | 71 | const lowercaseTagMap = tags.reduce((acc, tag) => { 72 | const normalizedName = normalizeTag(tag.name); 73 | const currentCount = acc[normalizedName] || 0; 74 | acc[normalizedName] = currentCount + tag.count; 75 | return acc; 76 | }, {}); 77 | 78 | // Merge tags like "JavaScript" and "Javascript" based on the 79 | // count… Event though it's obviously JavaScript! 80 | const normalizedTags = tags.reduce((acc, { name }) => { 81 | const normalizedName = normalizeTag(name); 82 | if (typeof lowercaseTagMap[normalizedName] !== 'undefined') { 83 | acc.push({ name, count: lowercaseTagMap[normalizedName] }); 84 | delete lowercaseTagMap[normalizedName]; 85 | } 86 | return acc; 87 | }, []) 88 | // Sort by name first 89 | .sort((a, b) => b.name.toLowerCase() > a.name.toLowerCase()) 90 | // Sort by count 91 | .sort((a, b) => b.count - a.count); 92 | return [{ name: 'all', count: people.length }, ...normalizedTags]; 93 | } 94 | 95 | export function devices() { 96 | 97 | const all = [ 98 | ...people.map((person) => person.computer), 99 | ...people.map((person) => person.phone), 100 | ].filter(Boolean); 101 | 102 | return Object.entries(all.reduce(countInstances, {})) 103 | .map(([device, count]) => ({ name: device, count })) 104 | .sort((a, b) => b.count - a.count) 105 | .map((device) => { 106 | return device; 107 | }) 108 | } 109 | 110 | function unique(arr: string[]) { 111 | return Array.from(new Set(arr)); 112 | } 113 | 114 | const normalizedTagMap = tags().reduce((acc, tag) => { 115 | const normalizedTag = normalizeTag(tag.name); 116 | acc[normalizedTag] = tag.name; 117 | return acc; 118 | }, {}); 119 | 120 | export function getPeople(tag?: string) { 121 | return [...people] 122 | .sort(() => Math.random() - 0.5) 123 | .map((person) => { 124 | const normalizedPerson = { 125 | ...person, 126 | // Clean out people that added basically the same tags twice 127 | tags: unique( 128 | person.tags.map((tag) => normalizedTagMap[normalizeTag(tag)] || tag) 129 | ), 130 | }; 131 | return { 132 | ...normalizedPerson, 133 | id: `person-${normalizedPerson.name}`, 134 | }; 135 | }) 136 | .filter((person) => { 137 | if (!tag) { 138 | return true; 139 | } 140 | return person.tags.includes(tag) || person.country === tag || person.phone === tag || person.computer === tag; 141 | }) 142 | 143 | } 144 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["remix.env.d.ts", "./**/*", "**/*.ts", "**/*.tsx"], 3 | "compilerOptions": { 4 | "strict": true, 5 | "lib": ["ESNext", "DOM", "DOM.Iterable"], 6 | "skipLibCheck": true, 7 | "moduleResolution": "node", 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "target": "esnext", 11 | "baseUrl": ".", 12 | "allowJs": true, 13 | "forceConsistentCasingInFileNames": true, 14 | "isolatedModules": true, 15 | "jsx": "react-jsx", 16 | "noEmit": true, 17 | "resolveJsonModule": true 18 | } 19 | } 20 | --------------------------------------------------------------------------------