mirror of
https://github.com/BradNut/awesome-uses
synced 2025-09-08 17:40:31 +00:00
Merge branch 'master' into website
This commit is contained in:
commit
673397db09
18 changed files with 3119 additions and 245 deletions
25
.github/workflows/data-validate.yml
vendored
Normal file
25
.github/workflows/data-validate.yml
vendored
Normal 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
32
.github/workflows/populate-readme.yml
vendored
Normal 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 }}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
## /uses
|
||||
|
||||
Word Wide Web: [uses.tech](https://uses.tech)
|
||||
|
||||
Add yourself [here](./src/data.js)
|
||||
|
||||
|
||||
|
|
@ -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`,
|
||||
],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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
176
package-lock.json
generated
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
188
readme.md
Normal 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
88
scripts/data-validate.js
Normal 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
240
scripts/flags.js
Normal file
|
|
@ -0,0 +1,240 @@
|
|||
const flags = [
|
||||
'🇦🇫',
|
||||
'🇦🇱',
|
||||
'🇩🇿',
|
||||
'🇦🇸',
|
||||
'🇦🇩',
|
||||
'🇦🇴',
|
||||
'🇦🇮',
|
||||
'🇦🇶',
|
||||
'🇦🇬',
|
||||
'🇦🇷',
|
||||
'🇦🇲',
|
||||
'🇦🇼',
|
||||
'🇦🇺',
|
||||
'🇦🇹',
|
||||
'🇦🇿',
|
||||
'🇧🇸',
|
||||
'🇧🇭',
|
||||
'🇧🇩',
|
||||
'🇧🇧',
|
||||
'🇧🇾',
|
||||
'🇧🇪',
|
||||
'🇧🇿',
|
||||
'🇧🇯',
|
||||
'🇧🇲',
|
||||
'🇧🇹',
|
||||
'🇧🇴',
|
||||
'🇧🇶',
|
||||
'🇧🇦',
|
||||
'🇧🇼',
|
||||
'🇧🇻',
|
||||
'🇧🇷',
|
||||
'🇧🇳',
|
||||
'🇧🇬',
|
||||
'🇧🇫',
|
||||
'🇧🇮',
|
||||
'🇰🇭',
|
||||
'🇨🇲',
|
||||
'🇨🇦',
|
||||
'🇨🇻',
|
||||
'🇰🇾',
|
||||
'🇨🇫',
|
||||
'🇹🇩',
|
||||
'🇨🇱',
|
||||
'🇨🇳',
|
||||
'🇨🇽',
|
||||
'🇨🇨',
|
||||
'🇨🇴',
|
||||
'🇰🇲',
|
||||
'🇨🇩',
|
||||
'🇨🇬',
|
||||
'🇨🇰',
|
||||
'🇨🇷',
|
||||
'🇭🇷',
|
||||
'🇨🇺',
|
||||
'🇨🇼',
|
||||
'🇨🇾',
|
||||
'🇨🇿',
|
||||
'🇩🇰',
|
||||
'🇩🇯',
|
||||
'🇩🇲',
|
||||
'🇩🇴',
|
||||
'🇪🇨',
|
||||
'🇪🇬',
|
||||
'🇸🇻',
|
||||
'🇬🇶',
|
||||
'🇪🇷',
|
||||
'🇪🇪',
|
||||
'🇪🇹',
|
||||
'🇫🇴',
|
||||
'🇫🇯',
|
||||
'🇫🇮',
|
||||
'🇫🇷',
|
||||
'🇬🇫',
|
||||
'🇵🇫',
|
||||
'🇹🇫',
|
||||
'🇬🇦',
|
||||
'🇬🇲',
|
||||
'🇬🇪',
|
||||
'🇩🇪',
|
||||
'🇬🇭',
|
||||
'🇬🇮',
|
||||
'🇬🇧',
|
||||
'🇬🇷',
|
||||
'🇬🇱',
|
||||
'🇬🇩',
|
||||
'🇬🇵',
|
||||
'🇬🇺',
|
||||
'🇬🇹',
|
||||
'🇬🇬',
|
||||
'🇬🇳',
|
||||
'🇬🇼',
|
||||
'🇬🇾',
|
||||
'🇭🇹',
|
||||
'🇭🇳',
|
||||
'🇭🇰',
|
||||
'🇭🇺',
|
||||
'🇮🇸',
|
||||
'🇮🇳',
|
||||
'🇮🇩',
|
||||
'🇮🇷',
|
||||
'🇮🇶',
|
||||
'🇮🇪',
|
||||
'🇮🇱',
|
||||
'🇮🇹',
|
||||
'🇨🇮',
|
||||
'🇯🇲',
|
||||
'🇯🇵',
|
||||
'🇯🇪',
|
||||
'🇯🇴',
|
||||
'🇰🇿',
|
||||
'🇰🇪',
|
||||
'🇰🇮',
|
||||
'🇰🇼',
|
||||
'🇰🇬',
|
||||
'🇱🇦',
|
||||
'🇱🇻',
|
||||
'🇱🇧',
|
||||
'🇱🇸',
|
||||
'🇱🇷',
|
||||
'🇱🇾',
|
||||
'🇱🇮',
|
||||
'🇱🇹',
|
||||
'🇱🇺',
|
||||
'🇲🇴',
|
||||
'🇲🇰',
|
||||
'🇲🇬',
|
||||
'🇲🇼',
|
||||
'🇲🇾',
|
||||
'🇲🇻',
|
||||
'🇲🇱',
|
||||
'🇲🇹',
|
||||
'🇲🇭',
|
||||
'🇲🇶',
|
||||
'🇲🇷',
|
||||
'🇲🇺',
|
||||
'🇾🇹',
|
||||
'🇲🇽',
|
||||
'🇫🇲',
|
||||
'🇲🇩',
|
||||
'🇲🇨',
|
||||
'🇲🇳',
|
||||
'🇲🇪',
|
||||
'🇲🇸',
|
||||
'🇲🇦',
|
||||
'🇲🇿',
|
||||
'🇲🇲',
|
||||
'🇳🇦',
|
||||
'🇳🇷',
|
||||
'🇳🇵',
|
||||
'🇳🇱',
|
||||
'🇳🇨',
|
||||
'🇳🇿',
|
||||
'🇳🇮',
|
||||
'🇳🇪',
|
||||
'🇳🇬',
|
||||
'🇳🇺',
|
||||
'🇳🇫',
|
||||
'🇰🇵',
|
||||
'🇲🇵',
|
||||
'🇳🇴',
|
||||
'🇴🇲',
|
||||
'🇵🇰',
|
||||
'🇵🇼',
|
||||
'🇵🇸',
|
||||
'🇵🇦',
|
||||
'🇵🇬',
|
||||
'🇵🇾',
|
||||
'🇵🇪',
|
||||
'🇵🇭',
|
||||
'🇵🇳',
|
||||
'🇵🇱',
|
||||
'🇵🇹',
|
||||
'🇵🇷',
|
||||
'🇶🇦',
|
||||
'🇷🇪',
|
||||
'🇷🇴',
|
||||
'🇷🇺',
|
||||
'🇷🇼',
|
||||
'🇼🇸',
|
||||
'🇸🇲',
|
||||
'🇸🇹',
|
||||
'🇸🇦',
|
||||
'🇸🇳',
|
||||
'🇷🇸',
|
||||
'🇸🇨',
|
||||
'🇸🇱',
|
||||
'🇸🇬',
|
||||
'🇸🇰',
|
||||
'🇸🇮',
|
||||
'🇸🇧',
|
||||
'🇸🇴',
|
||||
'🇿🇦',
|
||||
'🇬🇸',
|
||||
'🇰🇷',
|
||||
'🇸🇸',
|
||||
'🇪🇸',
|
||||
'🇱🇰',
|
||||
'🇸🇩',
|
||||
'🇸🇷',
|
||||
'🇸🇯',
|
||||
'🇸🇿',
|
||||
'🇸🇪',
|
||||
'🇨🇭',
|
||||
'🇸🇾',
|
||||
'🇹🇼',
|
||||
'🇹🇯',
|
||||
'🇹🇿',
|
||||
'🇹🇭',
|
||||
'🇹🇱',
|
||||
'🇹🇬',
|
||||
'🇹🇰',
|
||||
'🇹🇴',
|
||||
'🇹🇹',
|
||||
'🇹🇳',
|
||||
'🇹🇷',
|
||||
'🇹🇲',
|
||||
'🇹🇨',
|
||||
'🇹🇻',
|
||||
'🇺🇬',
|
||||
'🇺🇦',
|
||||
'🇦🇪',
|
||||
'🇺🇾',
|
||||
'🇺🇸',
|
||||
'🇺🇿',
|
||||
'🇻🇺',
|
||||
'🇻🇦',
|
||||
'🇻🇪',
|
||||
'🇻🇳',
|
||||
'🇼🇫',
|
||||
'🇪🇭',
|
||||
'🇾🇪',
|
||||
'🇿🇲',
|
||||
'🇿🇼',
|
||||
'🏴',
|
||||
'🏳️🌈',
|
||||
'🇪🇺',
|
||||
];
|
||||
|
||||
export default flags;
|
||||
13
scripts/populate-readme.js
Normal file
13
scripts/populate-readme.js
Normal 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)
|
||||
);
|
||||
34
scripts/readme-template.md
Normal file
34
scripts/readme-template.md
Normal 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
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
2504
src/data.js
2504
src/data.js
File diff suppressed because it is too large
Load diff
BIN
static/twitter-card.png
Normal file
BIN
static/twitter-card.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 708 KiB |
Loading…
Reference in a new issue