Merge branch 'master' into website

This commit is contained in:
Danilo Barion Nogueira 2020-01-15 18:59:03 -03:00 committed by GitHub
commit 673397db09
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 3119 additions and 245 deletions

25
.github/workflows/data-validate.yml vendored Normal file
View file

@ -0,0 +1,25 @@
name: Validate data.js
on:
pull_request:
paths: src/data.js
env:
CI: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 13.x
- name: Install validation libs
run: |
npm install -g @hapi/joi@17.0.2
npm install -g @actions/core@1.2.0
npm link @hapi/joi
npm link @actions/core
- name: Validate data.js
run: node ./scripts/data-validate.js

32
.github/workflows/populate-readme.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Populate README.md from master
on:
push:
branches: master
paths:
- src/data.js
- scripts/readme-template.md
env:
CI: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 13.x
- name: Populate README.md from master
run: |
node ./scripts/populate-readme.js
mv generated-readme.md readme.md
git add readme.md
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git commit -m "chore: generate \`readme.md\`"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,7 +0,0 @@
## /uses
Word Wide Web: [uses.tech](https://uses.tech)
Add yourself [here](./src/data.js)

View file

@ -3,6 +3,7 @@ module.exports = {
title: `/uses`,
description: `A list of /uses pages detailing developer setups.`,
author: `@wesbos`,
siteUrl: "https://uses.tech",
},
plugins: [
{
@ -26,6 +27,7 @@ module.exports = {
icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
},
},
`gatsby-plugin-react-helmet`,
`gatsby-plugin-styled-components`,
],
};

View file

@ -1,6 +1,6 @@
We need to move these people over to the data.js file:
https://github.com/wesbos/awesome-uses/blob/website/src/data.js
https://github.com/wesbos/awesome-uses/blob/master/src/data.js
Grab a random person, and fill out the info as best as possible.
@ -26,7 +26,7 @@ When done, check that person off.
* [ ] [Jay Collett](https://www.jaycollett.co/uses/) - Freelance web designer and front end developer with CraftCMS
* [ ] [Amit Merchant](https://www.amitmerchant.com/uses/) - Fullstack web developer, blogger.
* [ ] [Adam Greenough](https://adamgreenough.me/uses/) - Freelance Digital Designer & Web Developer
* [ ] [Georgi Yanev](https://gyanev.com/uses/) - Web Developer, FPV drone pilot
* [x] [Georgi Yanev](https://gyanev.com/uses/) - Web Developer, FPV drone pilot
* [ ] [Kumar Abhirup](https://kumar.now.sh/uses) - A 15yo Jnr. developer with a passion for learning 👋🏻
* [ ] [Chris Enns](https://chrisenns.com/uses/) - Podcast Editor & WordPress Wannabe
* [ ] [David Llop](https://davidllop.com/uses/) - Laravel & ChatBots Developer
@ -41,7 +41,7 @@ When done, check that person off.
* [x] [Andrew Healey](https://healeycodes.com/uses/) - Fullstack Software Engineer, Blogger, Tutorial Creator.
* [ ] [Alex Carpenter](https://alexcarpenter.me/uses/) - Front-end Web Developer and Screencaster.
* [ ] [Wang Junxiao](http://www.feng0207.site/uses/) — Java Web Developer, Student.
* [ ] [Jeff Wen](https://sinchang.me/uses/) - Web Developer, Open Source Contributor
* [x] [Jeff Wen](https://sinchang.me/uses/) - Web Developer, Open Source Contributor
* [ ] [Tracy Osborn](https://limedaring.com/uses/) - Designer, Developer, Tech Author, Entreprenerd
* [ ] [Bruno Brito](https://brunobrito.pt/uses/) - Web Developer, Content Creator, Digital Marketing 🇵🇹
* [ ] [Lemon 🍋](https://ahoylemon.xyz/uses/) - Web Developer, Podcaster, Human Who Makes Dumb Shit
@ -81,7 +81,7 @@ When done, check that person off.
* [x] [Scott Tolinski](https://kit.com/leveluptutorials/podcasting-screencasting-gear) - Web Developer, Tutorial Maker, Podcaster.
* [ ] [Ben Hong](https://www.bencodezen.io/uses/) - Senior Frontend Engineer @ Meltano GitLab
* [ ] [Danny de Vries](https://dandevri.es/uses/) - Indie Maker and Lecturer
* [ ] [Scott Spence](https://scottspence.me/uses) - Web Engineer @ Karmarama
* [x] [Scott Spence](https://scottspence.me/uses) - Web Engineer @ Karmarama
* [ ] [Stephen Senkomago Musoke](https://ssmusoke.com/uses/) - Software Engineer [METS](https://mets.or.ug/), [UCSF Informatics Hub](https://globalhealthsciences.ucsf.edu/resources/informatics-hub) & PHP lover by night 🇺🇬
* [ ] [Gideon Bamuleseyo](https://medium.com/developer-circle-kampala/what-i-use-my-tools-of-trade-552655db4b8d) - Software Engineer [Andela](https://andela.com/), JavaScript junkie 🇺🇬
* [ ] [Jason Cory Alvernaz](https://jasoncoryalvernaz.com/uses/) - Fullstack Web Developer, Freelancer, Designer

176
package-lock.json generated
View file

@ -4,6 +4,11 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@actions/core": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.0.tgz",
"integrity": "sha512-ZKdyhlSlyz38S6YFfPnyNgCDZuAF2T0Qv5eHflNWytPS8Qjvz39bZFMry9Bb/dpSnqWcNeav5yM2CTYpJeY+Dw=="
},
"@babel/code-frame": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
@ -926,43 +931,62 @@
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
"integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="
},
"@emotion/stylis": {
"version": "0.8.5",
"resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
"integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
},
"@emotion/unitless": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
"integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
},
"@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
"integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ=="
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.0.tgz",
"integrity": "sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ==",
"requires": {
"@hapi/hoek": "^9.0.0"
}
},
"@hapi/bourne": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
"integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA=="
},
"@hapi/formula": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz",
"integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A=="
},
"@hapi/hoek": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz",
"integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw=="
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.2.tgz",
"integrity": "sha512-LyibKv2QnD9BPI5g2L+g85yiIPv3ajYpENGFgy4u0xCLPhXWG1Zdx29neSB8sgX0/wz6k5TMjHzTwJ6+DaBYOA=="
},
"@hapi/joi": {
"version": "15.1.1",
"resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
"integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.0.2.tgz",
"integrity": "sha512-84icw1yV3vbRzUidqFli1Gqr8diigOhTuKzlu3gqBXBm4Lukqe5apjyeJJhGO4rO/J3NiRjy1vXQ5bmhc5+fUA==",
"requires": {
"@hapi/address": "2.x.x",
"@hapi/bourne": "1.x.x",
"@hapi/hoek": "8.x.x",
"@hapi/topo": "3.x.x"
"@hapi/address": "^4.0.0",
"@hapi/formula": "^2.0.0",
"@hapi/hoek": "^9.0.0",
"@hapi/pinpoint": "^2.0.0",
"@hapi/topo": "^5.0.0"
}
},
"@hapi/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz",
"integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw=="
},
"@hapi/topo": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
"integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz",
"integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==",
"requires": {
"@hapi/hoek": "^8.3.0"
"@hapi/hoek": "^9.0.0"
}
},
"@jimp/bmp": {
@ -4264,20 +4288,13 @@
}
},
"css-to-react-native": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz",
"integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz",
"integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==",
"requires": {
"camelize": "^1.0.0",
"css-color-keywords": "^1.0.0",
"postcss-value-parser": "^3.3.0"
},
"dependencies": {
"postcss-value-parser": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
"integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
}
"postcss-value-parser": "^4.0.2"
}
},
"css-tree": {
@ -7457,6 +7474,35 @@
"yaml-loader": "^0.5.0"
},
"dependencies": {
"@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
"integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ=="
},
"@hapi/hoek": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz",
"integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw=="
},
"@hapi/joi": {
"version": "15.1.1",
"resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
"integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
"requires": {
"@hapi/address": "2.x.x",
"@hapi/bourne": "1.x.x",
"@hapi/hoek": "8.x.x",
"@hapi/topo": "3.x.x"
}
},
"@hapi/topo": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
"integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
"requires": {
"@hapi/hoek": "^8.3.0"
}
},
"acorn": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
@ -9960,11 +10006,6 @@
"is-invalid-path": "^0.1.0"
}
},
"is-what": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/is-what/-/is-what-3.5.0.tgz",
"integrity": "sha512-00pwt/Jf7IaRh5m2Dp93Iw8LG2cd3OpDj3NrD1XPNUpAWVxPvBP296p4IiGmIU4Ur0f3f56IoIM+fS2pFYF+tQ=="
},
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@ -10690,11 +10731,6 @@
"p-is-promise": "^2.0.0"
}
},
"memoize-one": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz",
"integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA=="
},
"memory-fs": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
@ -10811,14 +10847,6 @@
}
}
},
"merge-anything": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-2.4.4.tgz",
"integrity": "sha512-l5XlriUDJKQT12bH+rVhAHjwIuXWdAIecGwsYjv2LJo+dA1AeRTmeQS+3QBpO6lEthBMDi2IUMpLC1yyRvGlwQ==",
"requires": {
"is-what": "^3.3.1"
}
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
@ -15225,21 +15253,19 @@
}
},
"styled-components": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz",
"integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==",
"version": "5.0.0-rc.3",
"resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.0.0-rc.3.tgz",
"integrity": "sha512-FPezIfX26DigdMspk4rtL2Z4KMtgHcUK56Zb/XTXfs4XXBPFZefTNpi+pQEOkWRmE5r5dO9vzT7Hd+b78NtMLA==",
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@babel/traverse": "^7.0.0",
"@emotion/is-prop-valid": "^0.8.1",
"@emotion/unitless": "^0.7.0",
"@babel/traverse": "^7.4.5",
"@emotion/is-prop-valid": "^0.8.3",
"@emotion/stylis": "^0.8.4",
"@emotion/unitless": "^0.7.4",
"babel-plugin-styled-components": ">= 1",
"css-to-react-native": "^2.2.2",
"memoize-one": "^5.0.0",
"merge-anything": "^2.2.4",
"prop-types": "^15.5.4",
"react-is": "^16.6.0",
"stylis": "^3.5.0",
"css-to-react-native": "^3.0.0",
"hoist-non-react-statics": "^3.0.0",
"shallowequal": "^1.1.0",
"stylis-rule-sheet": "^0.0.10",
"supports-color": "^5.5.0"
}
@ -15276,11 +15302,6 @@
}
}
},
"stylis": {
"version": "3.5.4",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz",
"integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q=="
},
"stylis-rule-sheet": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
@ -16870,6 +16891,35 @@
"workbox-window": "^4.3.1"
},
"dependencies": {
"@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
"integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ=="
},
"@hapi/hoek": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz",
"integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw=="
},
"@hapi/joi": {
"version": "15.1.1",
"resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
"integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
"requires": {
"@hapi/address": "2.x.x",
"@hapi/bourne": "1.x.x",
"@hapi/hoek": "8.x.x",
"@hapi/topo": "3.x.x"
}
},
"@hapi/topo": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
"integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
"requires": {
"@hapi/hoek": "^8.3.0"
}
},
"fs-extra": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",

View file

@ -3,12 +3,15 @@
"description": "What do you uses",
"version": "7.7.7",
"author": "Wes Bos",
"type": "module",
"eslintConfig": {
"extends": [
"wesbos"
]
},
"dependencies": {
"@actions/core": "^1.2.0",
"@hapi/joi": "^17.0.2",
"country-emoji": "^1.5.0",
"esm": "^3.2.25",
"gatsby": "^2.18.12",
@ -26,7 +29,7 @@
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-helmet": "^5.2.1",
"styled-components": "^4.4.1"
"styled-components": "5.0.0-rc.3"
},
"scripts": {
"build": "npx --node-arg '-r esm' gatsby build",

188
readme.md Normal file
View file

@ -0,0 +1,188 @@
# → Visit [uses.tech](https://uses.tech) for a good time
A list of `/uses` pages detailing developer setups, gear, software and configs.
Add your own `/uses` page in [data.js](https://github.com/wesbos/awesome-uses/blob/master/src/data.js).
This readme is auto-generated from the data.js file, so please don't PR this file.
```
▄████████ ▄█ █▄ ▄████████ ▄████████ ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███
███ ███ ███ ███ ███ █▀ ███ █▀ ███ ███ ███ ███ ███ ███ █▀
███ ███ ███ ███ ▄███▄▄▄ ███ ███ ███ ███ ███ ███ ▄███▄▄▄
▀███████████ ███ ███ ▀▀███▀▀▀ ▀███████████ ███ ███ ███ ███ ███ ▀▀███▀▀▀
███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ █▄
███ ███ ███ ▄█▄ ███ ███ ███ ▄█ ███ ███ ███ ███ ███ ███ ███ ███
███ █▀ ▀███▀███▀ ██████████ ▄████████▀ ▀██████▀ ▀█ ███ █▀ ██████████
███ █▄ ▄████████ ▄████████ ▄████████
███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ █▀ ███ █▀ ███ █▀
███ ███ ███ ▄███▄▄▄ ███
███ ███ ▀███████████ ▀▀███▀▀▀ ▀███████████
███ ███ ███ ███ █▄ ███
███ ███ ▄█ ███ ███ ███ ▄█ ███
████████▀ ▄████████▀ ██████████ ▄████████▀
```
# Awesome Uses ![Awesome][awesome-badge]
* [Wes Bos](https://wesbos.com/uses) — Maker of this site. Web Developer, Tutorial Maker, Syntax.fm Podcaster, BBQ Lover
* [Eliezer Steinbock](https://elie.tech/uses) — Founder of Skilled.co.il and Draft Fantasy. Full Stack Freelance Developer
* [James Quick](https://jamesqquick.com/uses) — Developer Advocate Engineer at @auth0 and content creator
* [Federico Vitale](https://fedevitale.dev/uses) — 20yo, Self Taught FullStack Developer, Full Time. Bikes lover, Tech (obviously) enthusiast.
* [Vishwasa Navada K](https://vishwas.tech/uses) — Geek. Open source Enthusiast. Occasional blogger, photographer and traveler.
* [Silvestar Bistrović](https://www.silvestar.codes/uses/) — Fearless web engineer, CSS developer, JAMstack enthusiast, and WordPress theme specialist.
* [Adam Schwartz](https://adamschwartz.co/uses/) — Software developer, designer, film music composer
* [Sergey Lysenko](https://soulwish.info/uses/) — Front-end developer, guitar player, MTB rider, snowboarder, runner.
* [Habbat Adnan](https://adncodez.com/uses) — Self Taught Web Developer, Full Time Freelancer, Open Source Enthusiast
* [Carter McAlister](https://cartermcalister.dev/uses) — Software Engineer, Digital Nomad, Lover of the Outdoors
* [Matt Jennings](https://mattjennings.io/uses) — web dev, hockey | tradebreaker.io
* [Jason Cory Alvernaz](https://jasoncoryalvernaz.com/uses) — Web Developer, Blogger, YouTuber, and Dog Lover. Not necessarily in that order.
* [Alessia Bellisario](https://aless.co/uses) — Web engineer, mechanical keyboard builder, plotter art maker.
* [Sam Cross](http://sam-cross.github.io/uses) — "Developer", IT student, frequent traveller by coach, addicted to music.
* [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.
* [Rene Pot](http://renepot.com/uses) — Developer Evangelist, JavaScript Developer, Cross-Platform App Developer and gamer
* [Gant Laborde](http://gantlaborde.com/uses/) — Speaker, GDE Web/ML, Podcaster, Trainer, Speaker, Author, Podcaster
* [Tiffany White](https://tiffanywhite.dev/uses/) — Frontend dev, blogger, podcaster, herder of cats
* [Kent C. Dodds](https://kentcdodds.com/uses) — JavaScript Software Engineer, speaker, and trainer
* [Ava Gaiety Wroten](https://www.wroten.me/uses) — JavaScript Software Engineer, artist, and designer
* [Glenn Reyes](https://glennreyes.com/uses) — Independent Software Engineer, trainer & speaker. Into sports & music.
* [Adam Jahnke](https://adamyonk.com/uses) — Caffiend, motorcyclist, climber, recovering perfectionist. I love to make the complex simple.
* [Andrew Healey](https://healeycodes.com/uses) — Software Engineer, Writer, Learner!
* [Scott Tolinski](https://scotttolinski.com/uses) — Web Developer, Tutorial Maker, Podcaster, Bboy
* [Anton Andrésen](https://anton.best/uses/) — Software Engineer, Tutorial Maker, Youtuber, Tea Drinker
* [Josiah Wiebe](https://jwie.be/uses/) — Designer & developer, lifelong learner.
* [Benjamin Lannon](https://lannonbr.com/uses/) — Web Developer, Open Source Contributor, Livestreamer
* [Braden Watkins](https://bradenwatkins.dev/uses) — Student, Full Stack Developer, Lover of all things analog
* [Lauro Silva](https://laurosilva.com/uses) — Software Engineer and Technical Writer
* [Nuno Maduro](https://nunomaduro.com/uses/) — Software engineer, Open Source contributor, Speaker
* [Adrian Marin](https://adrianthedev.com/uses) — Product-Minded Software Engineer, Digital nomad, no-nonsense enjoyer of life, friends and family.
* [Jahir Fiquitiva](https://jahir.dev/uses) — Passionate and Creative Full Stack Developer
* [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.
* [Lina María Montaño Ramírez](https://calypsobronte.me/uses) — Software Engineer at @holbertonschool, Web Developer, passionate and Organizer at @node_co
* [Brad Garropy](https://bradgarropy.com/uses) — Self taught frontender at Adobe, into lifting and country music.
* [Abdisalan Mohamud](https://abdisalan.com/uses) — Software Engineer, blogger, lifetime learner
* [Josh Barker](https://joshuabarker.com/uses) — Front end engineer at Red Ventures. Soccer enthusiast. Lover of stories.
* [Aaron Dunphy](https://aarondunphy.com/uses) — Full Stack Developer, Coffee Lover and Photo Taker
* [Mohamed Benhida](http://mohamedbenhida.com/uses) — Web Developer, Open source contributor.
* [Thomas Hunter II](https://thomashunter.name/uses) — Node.js developer with a thing for distributed systems. Co-organizer of NodeSchool SF. Game developer.
* [Andrew McCombe](https://www.euperia.com/uses) — Experienced full stack web developer with a passion for testing.
* [Smakosh](https://smakosh.com/the-tech-tools-I-use) — Full stack JavaScript Developer, blogger and speaker.
* [Pouria Ezzati](https://pouria.dev/uses) — Web developer. Digs music, football and a e s t h e t i c s
* [Jonathan Suh](https://jonsuh.com/uses) — Designer, Developer, Sneakerhead
* [Jonathan Speek](https://speek.design/uses) — Developer & Musician
* [David O'Trakoun](https://www.davidosomething.com/uses/) — Software Engineer
* [Dean Harris](https://deanacus.com/uses/) — Front End Developer. Husband. Skateboarder. Occasional blogger
* [Michael Hoffmann](https://www.mokkapps.de/blog/my-development-setup/) — Freelance Software Engineer
* [Michael Le](https://www.michael1e.com/uses/) — Software Engineer
* [Sil van Diepen](https://www.silvandiepen.nl/uses/) — Creative Developer
* [Kilian Valkhof](https://kilianvalkhof.com/using/) — User experience developer
* [Timothy Miller](https://timothymiller.dev/uses) — Web Designer/Developer for hire. Wears lots of hats.
* [Christopher Hranj](https://brodan.biz/uses) — Software Engineer, Blogger, Musician, Ultimate player.
* [Vincent Ramdhanie](https://vincentramdhanie.com/uses) — Software Developer, Lecturer, Technical Writer and Mentor
* [Amir R Muntasser](https://arkm.xyz/uses/) — Web Developer, #vuenicorn wizard, Oxford comma enthusiast, and inventor of the ol' razzle dazzle.
* [Pavel Melnik](https://theopract.gitlab.io/pavel-dev/uses/) — Web developer, Technology enthusiast, Energy Management System expert
* [Miguel Ángel Durán](https://midu.dev/uses) — Front end passionate, Web Performance freak, casual speaker, <WTFront! /> podcast host, and gamer.
* [David Llop](https://davidllop.com/uses) — Full stack developer from Girona. Open Source contributor. Always Learning.
* [Josh Manders](https://joshmanders.com/uses/) — Full Snack Developer and Indie Maker
* [Daniel Wirtz](https://danielwirtz.com/uses/) — Designer who codes @Crisp Studio
* [Harry Wolff](https://hswolff.com/uses/) — Front-end engineer and YouTuber
* [James Mills](https://jamesmills.co.uk/uses) — Work with PHP & Laravel at @clicksco in Dubai. Pleased to be part of the Laravel community.
* [Jeffrey Way](https://laracasts.com/blog/laracasts-uses) — Laracasts Author
* [Terry Godier](https://terrygodier.com/uses) — A developer and marketer of fine internet products.
* [Erno Salo](https://endormi.io/uses/) — Full Stack Developer and Open Source Contributor
* [Gokulakrishnan Kalaikovan](https://gokul.site/uses) — Web Developer, GDE, Open Source contributor, Speaker
* [James Brooks](https://james.brooks.page/uses/) — Software Developer at Laravel and Podcaster
* [Byurhan Beyzat](https://byurhanbeyzat.com/uses) — Front-End Developer. Engineer. Occasional blogger.
* [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.
* [Hugo Di Francesco](https://codewithhugo.com/uses/) — JavaScript developer, blogger at codewithhugo.com, author of 'Professional JavaScript' with Packt.
* [Steve Heyes](https://steveheyes.co.uk/uses) — I like to use tech to build awesome things that makes peoples lives better
* [Diego Vazquez](https://gist.github.com/diurivj/78ca931c4b20dca1e1e13982fa9c309d) — Young guy who loves code. Full Stack Web Developer. Lead Teacher @ Ironhack
* [Rafael Quintanilha](https://rafaelquintanilha.com/about#uses) — Software Engineer. Blogs about Web Development, Front-end, React, UI/UX, Accessibility.
* [Talita Oliveira](https://talitaoliveira.com.br/#uses) — Software Developer. Loves CSS and Javascript. Already worked with PHP and a little with JAVA.
* [Ben Leivian](https://benleivian.com/uses) — A “seasoned” full-stack developer & visual designer 🍔
* [Roman Husar](https://seemslikelegit.com/uses) — Tinkering, all the time.
* [Stephen Senkomago Musoke](https://ssmusoke.com/uses) — Software Engineer, eHealth Technologist, PHP Lover by night, Muganda, Goat Meat for Life, Coffee Drinker
* [Jérémy Mouzin](https://jeremymouzin.com/uses) — Software Engineer, Tutorial Maker, Entrepreneur, Blogger
* [Adam Laycock](https://www.arcath.net/uses) — IT Engineer, Web Developer & Blogger
* [Scott Spence](https://scottspence.me#uses) — Father, husband 👨‍👩‍👧 Web Developer. Just In Time learner ❤️ 👍 http://my.pronoun.is/he
* [José Manuel Lucas](https://jmlweb.es/blog/2020/uses/) — Professional Frontend Engineer - Amateur musician
* [Georgi Yanev](https://gyanev.com/uses/) — Software Engineer, FPV Drone Pilot, Blogger, YouTuber
* [Karl Horky](https://github.com/karlhorky/uses/blob/master/readme.md) — Founder, Teacher at https://upleveled.io
* [Josh Farrant](https://farrant.me/uses) — Full-Stack JavaScript developer, creator of Shortcuts JS, astrophysicist and private pilot. I turn coffee, alchemy-like, into code.
* [Pedro Assunção](https://pedroassuncao.com/pages/uses) — Senior Fullstack Software Developer, Tutorial Maker, Blogger
* [Steven van Loef](https://steven.vanloef.com/uses) — Web Developer, App Developer
* [Richard Zilahi](https://gist.github.com/zilahir/4aaf5907999ea53711b2d554d22b0f3f) — Full stack developer, pug enthusiast, dying for pizza
* [Ricard Torres](https://php.quicoto.com/uses/) — Senior Front-end Software Engineer from Barcelona, Haidong Gumdo Instructor, street photographer, TV addict, Boston Red Sox fan...
* [Bezael Pérez](https://dominicode.com/uses) — Front-end Developer passionate. Trainer & speaker
* [Zander Martineau](https://zander.wtf/writing/my-setup) — Independent front-end-full-stack-UI-UX-engineer coder
* [Daniel Van Cuylenburg](https://danielvanc.com/uses) — Front-end Web Developer. Love all things CSS, ReactJS, GatsbyJS, NodeJS and U.I design
* [Chiamaka Ikeanyi](https://chiamakaikeanyi.dev/uses) — Software Engineer, Technical Writer, Poet
* [Francis Sunday](https://hakaselogs.me/2020-01-10/what-i-use) — Software Engineer | Gopher | Hacker
* [Jared Clifton-Lee](https://jared.clifton-lee.com/uses) — Engineer of code; manager of people; trainer of cats
* [James Kemp](https://www.jameskemp.dev/uses/) — Web Developer, Blogger, Freelancer
* [Tom Hazledine](https://tomhazledine.com/uses) — Data visualisation tinkerer and JS enthusiast. Podcaster. Nerd.
* [Mihai Serban](https://www.mihaiserban.dev/uses) — Software engineer in constant search for new and exciting technologies
* [Nick Janetakis](https://nickjanetakis.com/uses) — Freelance Web Developer, Web App Deployment, Tutorials, Technical death metal enthusiast
* [Kaleigh Scruggs](https://kaleighscruggs.com/uses) — Front-End Web Developer, stand-up comedian, loves Brazilian jiu-jitsu, tea, and being a helicopter dog mom
* [Ste Grainer](https://stegrainer.com/uses) — Designer, Developer
* [José Carlos Correa](https://jossdz.com/uses) — Fullstack developer and speaker. Lead teacher @ironhack and gatsby teacher @platzi. Learning all the time.
* [Erv Walter](https://blog.ewal.net/uses/) — Father, Husband, Web Developer, Board Game Addict
* [Juanito Fatas](https://juanitofatas.com/uses) — Program Tinker 🧙🏼‍♂️
* [Elliot Bonneville](https://elliotbonneville.com/uses) — Freelance Web Developer / Consultant, educator, lover of coffee, cats, and writing of all kinds.
* [John Garrett](https://johngarrett.dev/uses) — Arch Duke of Computering, Full Stack Instructor
* [Dieter Stinglhamber](https://www.dieterstinglhamber.me/uses/) — Developer, human, nerd.
* [Dany Paredes](https://danywalls.com/uses) — I was a .NET guy, my last years ❤️ { #js & #sass } and play[ #react #vue #angular #sveltejs]
* [Thomas Weibenfalk](https://www.weibenfalk.com/uses/) — Passionate developer, course creator, youtuber, designer and musician from Sweden
* [Chris Burgin](https://chrisburgin.me/uses) — Frontend Software Engineer
* [Shiveen Pandita](https://shiveenp.com/uses/) — Fullstack developer and blogger from Sydney
* [David Leuliette](https://davidl.fr/uses) — Freelance React Native developer and bootcamp instructor specializing in cross-platform application.
* [Dave Berning](https://daveberning.io/uses/) — Developer, author, rocker, Nintendo enthusiast. I also co-organize the CodePen Cincinnati Meetups.
* [Jan-Lukas Else](https://jlelse.dev/uses/) — Computer Science Student, Developer & Blogger from Germany
* [Seyhun Akyürek](https://www.seyhunakyurek.com/uses/) — Senior Software Specialist. Swift, Objective-C, former Rubyist. Author of twitter-bootstrap-rails
* [Eric Oyanadel](https://www.oyanadel.com/uses/) — Artist - Developer - Musician
* [Usman Khwaja](https://usmankhwaja.com/uses) — Front end engineer, Jamstack developer
* [Thomas Large](https://tomlarge.dev/uses) — My name is Tom! I write code
* [Amit Merchant](https://www.amitmerchant.com/uses) — Maker of things. Open-source enthusiast. Blogger.
* [Jesse James Burton](https://burtonmediainc.com/uses) — Software Developing Yogi from Alberta, Canada. Lets build the internet together.
* [Junaid Qadir](https://junaidqadir.com/uses) — A Full Stack #Laravel Developer
* [Yurui Zhang](https://gist.github.com/pallymore/6e12133b5c2fa2856a8a6b288e579c01) — Full-stack developer. Dark mode enthusiast. Quality software devotee.
* [Eduardo Reveles](https://www.osiux.ws/about/uses) — Web Engineer, Husband, Gamer.
* [Thomas Maximini](https://www.maxi.io/uses/) — Freelance software developer from Germany.
* [Philip Theobald](https://www.philiptheobald.com/uses/) — Guitar player, motorcyclist, software engineer, entreprenuer
* [Alejandro G. Anglada](https://aganglada.com/uses/) — Dad 👪🔥⚡️ Web Engineer ⚛️🚀 Building websites with #react #typescript #nodejs #graphql 👌
* [Antoni Kepinski](https://kepinski.me/uses/) — Node Fetch maintainer // Into Node.js and Rust
* [Marcus Obst](https://marcus-obst.de/uses) — Webdeveloper, Music Lover
* [Pawel Grzybek](https://pawelgrzybek.com/uses/) — Software Engineer
* [Eric McCormick](https://edm00se.codes/uses/) — Software Developer, IBM Champion, coffee lover, dabbler in all things technology, hobbyist 3d design and printing
* [Ben Congdon](https://benjamincongdon.me/uses) — Golang, Python, Rust. Runs in the Cloud.
* [Jens van Wijhe](https://jens.ai/uses) — Creative web developer and entrepreneur
* [Jacob Herper](https://herper.io/uses/) — Senior Front-End Engineer with a passion for all things digital. I create amazing web apps to make the internet a better place.
* [David Vives](http://dispuestoaaprender.netlify.com/en/uses) — Software Engineer, Web Developer, Chess Player, Comics Reader, Loves reading, learning new things, sushi, BBQ and aioli.
* [Ryan Warner](https://ryan.warner.codes/uses) — Software Engineer and Interface Designer. Leader and Mentor.
* [Adam Urban](https://urbanisierung.dev/uses/) — coder, father, left-handed
* [Majo Paskuvan](https://paskuvan.us/uses.html) — Front End Developer, Reader, Deaf Person
* [Christopher Wavrin](https://wavrin.com/uses) — Full Stack Developer
* [Florian Kapfenberger](https://phiilu.com/uses) — Frontend developer from Austria who likes to create modern applications with React (Native)
* [Maria Altyeva Schuessler ](http://mariacodes.io/uses) — Nacho Cheese Lover and Senior Full-Stack Developer, Project Manager, and Writer based out of Shanghai, China
* [Arturo Campos](https://arturocampos.dev/uses) — Web Developer, dad, mountain biker, meat lover
* [Sercan Eraslan](http://sercaneraslan.com/uses) — Front-End Tech Lead
* [Jeff Wen](https://sinchang.me/uses) — Web Developer, Open Source Contributor
* [Andrea Prus](https://avris.it/uses) — Full stack developer, blogger
* [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 ❤️
* [Nick Taylor](https://www.iamdeveloper.com/uses/) — Just some dev from Montreal, Quebec, Canada
* [Dave Hill](https://davehill.dev/uses/) — Front-end developer, amateur photographer, podcast beginner.
* [Logan Blangenois](https://logan-blangenois.be/uses/) — Front-end developer passionate about eco-friendly (web)app and React.
* [Muhammad Umair](https://gist.github.com/mumairofficial/0d97ed3dca1ba25d9f01b8db8aed42dc) — Fullstack front-end developer and designer, passionate in everything #JavaScript
* [Alex Carpenter](https://alexcarpenter.me/uses) — UI Engineer, Screencaster
* [Kevin Woblick](https://www.kovah.de/uses/) — I turn Pizza into Code and Photos
* [Michał Miszczyszyn](https://typeofweb.com/michal-miszczyszyn-uses/) — Motivated full-stack developer not afraid to use any technology. Experienced developer and leader. He, him.
* [Tarik Omercehajic](https://robotz.tech/uses/) — DevOps Engineer @BicomSystems. Mechanical Engineer in free time :)
* [Duncan McDougall](https://www.belter.io/uses/) — Web developer, contractor, remotely working from the South of Scotland
* [Kevin Simkanič](https://github.com/kevinko12323/uses) — Wordpress ninja 😎 React lover ❤️ CSS master 🧐
* [Jerry Shi](https://github.com/szy0syz/uses) — Full Stack, Motivated full-stack developer not afraid to use any technology.
[awesome-badge]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg

88
scripts/data-validate.js Normal file
View file

@ -0,0 +1,88 @@
import Joi from '@hapi/joi';
import core from '@actions/core';
import * as http from 'http';
import * as https from 'https';
import data from '../src/data.js';
import flags from './flags.js';
if (process.env.CI !== 'true') {
core.error = console.error;
core.setFailed = console.error;
}
const schema = Joi.object({
name: Joi.string().required(),
description: Joi.string().required(),
url: Joi.string()
.uri()
.required()
.pattern(/(use|uses|using|setup|environment|^https:\/\/gist.github.com\/)/),
country: Joi.string()
.valid(...flags)
.required(),
twitter: Joi.string().pattern(new RegExp(/^@?(\w){1,15}$/)),
emoji: Joi.string().allow(''),
computer: Joi.string().valid('apple', 'windows', 'linux'),
phone: Joi.string().valid('iphone', 'android'),
tags: Joi.array().items(Joi.string()),
});
const errors = data
.map(person => schema.validate(person))
.filter(v => v.error)
.map(v => v.error);
errors.forEach(e => {
core.error(e._original.name);
e.details.forEach(d => core.error(d.message));
});
if (errors.length) {
core.setFailed('Action failed with validation errors, see logs');
}
const REQUEST_TIMEOUT = 10000;
function getStatusCode(url) {
const client = url.startsWith('https') ? https : http;
return new Promise((resolve, reject) => {
setTimeout(() => reject(new Error('Request timed out')), REQUEST_TIMEOUT);
client
.get(url, res => {
resolve(res.statusCode);
})
.on('error', err => {
reject(err);
});
});
}
async function isWorkingUrl(url) {
try {
const statusCode = await getStatusCode(url);
if (statusCode < 200 || statusCode >= 400) {
core.error(`Ping to "${url}" failed with status: ${statusCode}`);
return false;
}
return true;
} catch (e) {
core.error(`Ping to "${url}" failed with error: ${e}`);
return false;
}
}
(async () => {
// TODO: we might need to batch these in sets instead of requesting 100+ URLs
// at the same time
const areWorkingUrls = await Promise.all(
data.map(p => p.url).map(url => isWorkingUrl(url))
);
const failingUrls = areWorkingUrls.filter(a => !a);
if (failingUrls.length > 0) {
core.setFailed(
`Action failed with ${failingUrls.length} URL fetch failures, see logs`
);
}
if (process.env.CI !== 'true') {
process.exit(failingUrls.length > 0 ? 1 : 0)
}
})();

240
scripts/flags.js Normal file
View file

@ -0,0 +1,240 @@
const flags = [
'🇦🇫',
'🇦🇱',
'🇩🇿',
'🇦🇸',
'🇦🇩',
'🇦🇴',
'🇦🇮',
'🇦🇶',
'🇦🇬',
'🇦🇷',
'🇦🇲',
'🇦🇼',
'🇦🇺',
'🇦🇹',
'🇦🇿',
'🇧🇸',
'🇧🇭',
'🇧🇩',
'🇧🇧',
'🇧🇾',
'🇧🇪',
'🇧🇿',
'🇧🇯',
'🇧🇲',
'🇧🇹',
'🇧🇴',
'🇧🇶',
'🇧🇦',
'🇧🇼',
'🇧🇻',
'🇧🇷',
'🇧🇳',
'🇧🇬',
'🇧🇫',
'🇧🇮',
'🇰🇭',
'🇨🇲',
'🇨🇦',
'🇨🇻',
'🇰🇾',
'🇨🇫',
'🇹🇩',
'🇨🇱',
'🇨🇳',
'🇨🇽',
'🇨🇨',
'🇨🇴',
'🇰🇲',
'🇨🇩',
'🇨🇬',
'🇨🇰',
'🇨🇷',
'🇭🇷',
'🇨🇺',
'🇨🇼',
'🇨🇾',
'🇨🇿',
'🇩🇰',
'🇩🇯',
'🇩🇲',
'🇩🇴',
'🇪🇨',
'🇪🇬',
'🇸🇻',
'🇬🇶',
'🇪🇷',
'🇪🇪',
'🇪🇹',
'🇫🇴',
'🇫🇯',
'🇫🇮',
'🇫🇷',
'🇬🇫',
'🇵🇫',
'🇹🇫',
'🇬🇦',
'🇬🇲',
'🇬🇪',
'🇩🇪',
'🇬🇭',
'🇬🇮',
'🇬🇧',
'🇬🇷',
'🇬🇱',
'🇬🇩',
'🇬🇵',
'🇬🇺',
'🇬🇹',
'🇬🇬',
'🇬🇳',
'🇬🇼',
'🇬🇾',
'🇭🇹',
'🇭🇳',
'🇭🇰',
'🇭🇺',
'🇮🇸',
'🇮🇳',
'🇮🇩',
'🇮🇷',
'🇮🇶',
'🇮🇪',
'🇮🇱',
'🇮🇹',
'🇨🇮',
'🇯🇲',
'🇯🇵',
'🇯🇪',
'🇯🇴',
'🇰🇿',
'🇰🇪',
'🇰🇮',
'🇰🇼',
'🇰🇬',
'🇱🇦',
'🇱🇻',
'🇱🇧',
'🇱🇸',
'🇱🇷',
'🇱🇾',
'🇱🇮',
'🇱🇹',
'🇱🇺',
'🇲🇴',
'🇲🇰',
'🇲🇬',
'🇲🇼',
'🇲🇾',
'🇲🇻',
'🇲🇱',
'🇲🇹',
'🇲🇭',
'🇲🇶',
'🇲🇷',
'🇲🇺',
'🇾🇹',
'🇲🇽',
'🇫🇲',
'🇲🇩',
'🇲🇨',
'🇲🇳',
'🇲🇪',
'🇲🇸',
'🇲🇦',
'🇲🇿',
'🇲🇲',
'🇳🇦',
'🇳🇷',
'🇳🇵',
'🇳🇱',
'🇳🇨',
'🇳🇿',
'🇳🇮',
'🇳🇪',
'🇳🇬',
'🇳🇺',
'🇳🇫',
'🇰🇵',
'🇲🇵',
'🇳🇴',
'🇴🇲',
'🇵🇰',
'🇵🇼',
'🇵🇸',
'🇵🇦',
'🇵🇬',
'🇵🇾',
'🇵🇪',
'🇵🇭',
'🇵🇳',
'🇵🇱',
'🇵🇹',
'🇵🇷',
'🇶🇦',
'🇷🇪',
'🇷🇴',
'🇷🇺',
'🇷🇼',
'🇼🇸',
'🇸🇲',
'🇸🇹',
'🇸🇦',
'🇸🇳',
'🇷🇸',
'🇸🇨',
'🇸🇱',
'🇸🇬',
'🇸🇰',
'🇸🇮',
'🇸🇧',
'🇸🇴',
'🇿🇦',
'🇬🇸',
'🇰🇷',
'🇸🇸',
'🇪🇸',
'🇱🇰',
'🇸🇩',
'🇸🇷',
'🇸🇯',
'🇸🇿',
'🇸🇪',
'🇨🇭',
'🇸🇾',
'🇹🇼',
'🇹🇯',
'🇹🇿',
'🇹🇭',
'🇹🇱',
'🇹🇬',
'🇹🇰',
'🇹🇴',
'🇹🇹',
'🇹🇳',
'🇹🇷',
'🇹🇲',
'🇹🇨',
'🇹🇻',
'🇺🇬',
'🇺🇦',
'🇦🇪',
'🇺🇾',
'🇺🇸',
'🇺🇿',
'🇻🇺',
'🇻🇦',
'🇻🇪',
'🇻🇳',
'🇼🇫',
'🇪🇭',
'🇾🇪',
'🇿🇲',
'🇿🇼',
'🏴󠁧󠁢󠁥󠁮󠁧󠁿',
'🏳️‍🌈',
'🇪🇺',
];
export default flags;

View file

@ -0,0 +1,13 @@
import fs from 'fs';
import data from '../src/data.js';
/** @type {string} */
const readmeTemplate = fs.readFileSync('./scripts/readme-template.md', 'utf8');
const formatedData = data
.map(page => `* [${page.name}](${page.url}) — ${page.description}`)
.join('\r\n');
fs.writeFileSync(
'generated-readme.md',
readmeTemplate.replace('###DATA_PLACEHOLDER###', formatedData)
);

View file

@ -0,0 +1,34 @@
# → Visit [uses.tech](https://uses.tech) for a good time
A list of `/uses` pages detailing developer setups, gear, software and configs.
Add your own `/uses` page in [data.js](https://github.com/wesbos/awesome-uses/blob/master/src/data.js).
This readme is auto-generated from the data.js file, so please don't PR this file.
```
▄████████ ▄█ █▄ ▄████████ ▄████████ ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███
███ ███ ███ ███ ███ █▀ ███ █▀ ███ ███ ███ ███ ███ ███ █▀
███ ███ ███ ███ ▄███▄▄▄ ███ ███ ███ ███ ███ ███ ▄███▄▄▄
▀███████████ ███ ███ ▀▀███▀▀▀ ▀███████████ ███ ███ ███ ███ ███ ▀▀███▀▀▀
███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ █▄
███ ███ ███ ▄█▄ ███ ███ ███ ▄█ ███ ███ ███ ███ ███ ███ ███ ███
███ █▀ ▀███▀███▀ ██████████ ▄████████▀ ▀██████▀ ▀█ ███ █▀ ██████████
███ █▄ ▄████████ ▄████████ ▄████████
███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ █▀ ███ █▀ ███ █▀
███ ███ ███ ▄███▄▄▄ ███
███ ███ ▀███████████ ▀▀███▀▀▀ ▀███████████
███ ███ ███ ███ █▄ ███
███ ███ ▄█ ███ ███ ███ ▄█ ███
████████▀ ▄████████▀ ██████████ ▄████████▀
```
# Awesome Uses ![Awesome][awesome-badge]
###DATA_PLACEHOLDER###
[awesome-badge]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg

View file

@ -7,7 +7,7 @@ import * as icons from '../util/icons';
export default function Person({ person, currentTag }) {
const url = new URL(person.url);
const img = `https://logo.clearbit.com/${url.host}`;
const img = `https://images.weserv.nl/?url=https://unavatar.now.sh/${url.host}&w=100&l=9&af&il&n=-1`
return (
<PersonWrapper>
<PersonInner>
@ -19,9 +19,15 @@ export default function Person({ person, currentTag }) {
</a>
</h3>
<a
target="_blank"
rel="noopener noreferrer"
className="displayLink"
href={person.url}
>{`${url.host}${url.pathname}`}</a>
>{`${url.host}${
url.pathname.endsWith('/')
? url.pathname.substr(0, url.pathname.length - 1)
: url.pathname
}`}</a>
</header>
<p>{person.description}</p>
<Tags>
@ -54,7 +60,7 @@ export default function Person({ person, currentTag }) {
{person.twitter && (
<TwitterHandle>
<a
href={`https://twitter.com/${person.twitter}`}
href={`https://twitter.com/${person.twitter.replace('@', '')}`}
target="_blank"
rel="noopener noreferrer"
>
@ -77,6 +83,7 @@ Person.propTypes = {
emoji: PropTypes.string,
description: PropTypes.string,
tags: PropTypes.arrayOf(PropTypes.string),
country: PropTypes.string,
computer: PropTypes.oneOf(['apple', 'windows', 'linux']),
phone: PropTypes.oneOf(['iphone', 'android']),
twitter(props, propName, componentName) {
@ -118,10 +125,16 @@ const PersonInner = styled.div`
font-size: 1rem;
}
.displayLink {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-decoration: none;
color: var(--vape);
letter-spacing: 1px;
font-size: 1.2rem;
text-overflow: ellipsis;
max-width: 100%;
overflow: hidden;
:hover {
color: var(--pink);
}
@ -150,6 +163,7 @@ const PersonDeets = styled.div`
}
.country {
font-size: 3rem;
padding-top: 2rem;
}
.phone {
padding: 0;

View file

@ -76,7 +76,7 @@ export default function Topics() {
}
// Component Styles
const Tags = styled.div`
const Tags = styled.ul`
list-style-type: none;
margin: 0;
padding: 0;
@ -92,7 +92,7 @@ const Tag = styled.label`
padding: 5px;
color: hsla(0, 100%, 100%, 0.8);
transition: background-color 0.2s;
cursor: ${props => (props.clickable? "pointer" : "default")};
cursor: ${props => (props.clickable ? 'pointer' : 'default')};
display: grid;
grid-template-columns: 1fr auto;
align-items: center;

View file

@ -5,12 +5,20 @@ import Helmet from 'react-helmet';
import styled from 'styled-components';
import FavIcon from './FavIcon';
function Header({ siteTitle }) {
function Header({ siteTitle, siteDescription, siteUrl }) {
return (
<HeaderWrapper className="header">
<FavIcon />
<Helmet>
<html lang="en" amp />
<title>{siteTitle}</title>
<meta name="description" content={siteDescription} />
<link rel="canonical" href={siteUrl} />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@wesbos" />
<meta name="twitter:title" content={siteTitle} />
<meta name="twitter:description" content={siteDescription} />
<meta name="twitter:image" content={`${siteUrl}/twitter-card.png`} />
</Helmet>
<div>
<h1>

View file

@ -19,6 +19,8 @@ const Layout = ({ children }) => {
site {
siteMetadata {
title
description
siteUrl
}
}
}
@ -28,7 +30,11 @@ const Layout = ({ children }) => {
<>
<GlobalStyle />
<Main>
<Header siteTitle={data.site.siteMetadata.title} />
<Header
siteTitle={data.site.siteMetadata.title}
siteDescription={data.site.siteMetadata.description}
siteUrl={data.site.siteMetadata.siteUrl}
/>
{children}
<footer>
<center ya-i-used-a-center-tag="sue me">

File diff suppressed because it is too large Load diff

BIN
static/twitter-card.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 KiB