├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── DetailedReadme.md ├── README.md ├── Tutorials.md ├── data-formatting └── script.js ├── package-lock.json ├── package.json ├── public ├── _redirects ├── favicon.ico ├── index.html └── manifest.json ├── readme-images ├── code-location.jpg └── npm-install-example-output.jpg ├── src ├── About │ ├── About.scss │ └── index.js ├── App.js ├── App.test.js ├── Card │ ├── Card.scss │ └── index.js ├── Header │ ├── Header.scss │ └── index.js ├── Link │ └── index.js ├── Profiles │ ├── Profiles.scss │ └── index.js ├── SiteLink │ ├── SiteLink.scss │ └── index.js ├── data.json ├── index.js ├── index.scss ├── logo.svg ├── serviceWorker.js ├── setupTests.js └── specs │ └── Main.spec.js ├── temp.json └── yarn.lock /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Your issue may already be reported! 2 | Please search on the [issue track](../) before creating one. 3 | 4 | ## Expected Behavior 5 | 6 | 7 | 8 | ## Current Behavior 9 | 10 | 11 | 12 | ## Possible Solution 13 | 14 | 15 | 16 | ## Steps to Reproduce (for bugs) 17 | 18 | 19 | 1. 20 | 2. 21 | 3. 22 | 4. 23 | 24 | ## Context 25 | 26 | 27 | 28 | ## Your Environment 29 | 30 | * Version used: 31 | * Any required dependencies and version 32 | * Browser Name and version: 33 | * Operating System and version (desktop or mobile): 34 | * Link to your project: 35 | 36 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | 4 | 5 | ## Motivation and Context 6 | 7 | 8 | 9 | ## How Has This Been Tested? 10 | 11 | 12 | 13 | 14 | ## Screenshots (if appropriate): 15 | 16 | ## Types of changes 17 | 18 | - [ ] Bug fix (non-breaking change which fixes an issue) 19 | - [ ] New feature (non-breaking change which adds functionality) 20 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) 21 | - [ ] This change requires a documentation update 22 | 23 | ## Checklist: 24 | 25 | 26 | - [ ] My code follows the code style of this project. 27 | - [ ] My change requires a change to the documentation. 28 | - [ ] I have updated the documentation accordingly. 29 | - [ ] I have commented my code, particularly in hard-to-understand areas 30 | - [ ] My changes generate no new warnings 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env 15 | .env.local 16 | .env.development.local 17 | .env.test.local 18 | .env.production.local 19 | 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | 24 | .vscode/ 25 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to make participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at [INSERT EMAIL ADDRESS]. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /DetailedReadme.md: -------------------------------------------------------------------------------- 1 | # Learn Code from Us 2 | 3 | ## Project Introduction 4 | 5 | The following text was taken from the about page on [https://learncodefrom.us](https://learncodefrom.us): 6 | 7 | > Learn Code from Us is a site that lists people who are members of underrepresented groups in tech who create resources geared towards programmers of all levels. These resources include (but are not limited to) podcasts, blog posts, newsletters, or YouTube videos. For now, this site is geared towards free resources in order to be as accessible as possible 8 | 9 | ## The Detailed Readme 10 | 11 | If you would like a less detailed list of instructions for building this repo, please see the [Readme](Readme.md) 12 | 13 | ## Software Requirements 14 | 15 | You will need the following software to be installed in order to build the code within this repository: 16 | 17 | ### A Git Client 18 | 19 | This is required so that you can "clone" the this repository to your computer. "Cloning" code can be thought of as copying it. 20 | 21 | Most operating systems have a git client included. However, these are command line based and can be a little obtuse to start with. 22 | 23 | Some graphical git applications include: 24 | 25 | - [The GitHub application](https://desktop.github.com/) 26 | - [SourceTree](https://www.sourcetreeapp.com/) 27 | - [Gitkraken](https://www.gitkraken.com/) 28 | 29 | ### A Text Editor 30 | 31 | You could use a full IDE (Integrated Development Environment), but a text editor will do just as well. Some recommended text editors include: 32 | 33 | - [Sublime Text](https://www.sublimetext.com/) 34 | - [Atom](https://atom.io/) 35 | - [Visual Studio Code](https://code.visualstudio.com/) 36 | - [WebStorm](https://www.jetbrains.com/webstorm/) 37 | - Notepad 38 | 39 | ### Node and the npm package manager 40 | 41 | [Node](https://nodejs.org/en/) is a technology which allows you to run JavaScript (traditionally a language which used to only run in web browsers) on your desktop. 42 | 43 | It includes npm (or Node Package Manager). This is a huge repository of open source JavaScript code libraries that you can add to your application. 44 | 45 | 46 | ## Set up instructions 47 | 48 | ### Cloning the Repository to Your Computer 49 | 50 | Precisely how you will do this depends on your git client. 51 | 52 | If you are using the official GitHub client for example, then you should be able to follow [these instructions](https://help.github.com/desktop/guides/contributing-to-projects/cloning-a-repository-from-github-to-github-desktop/) to clone the repository. 53 | 54 | If you are using a command line based git client, then the following command will clone the repository to your computer: 55 | 56 | ``` bash 57 | git clone https://github.com/aspittel/learn-code-from-us.git 58 | ``` 59 | 60 | The above command will copy all of the files, and their history, to your computer. 61 | 62 | ### Installing all of the Node Packages 63 | 64 | Once you have cloned the repository to your computer, you need to install all of the Node Packages. To do this, you will need to open a command line window (sometimes called a "terminal") and point it at the directory with the cloned respository in it. 65 | 66 | For example, if your closed repository is in the following directory: 67 | 68 | ![showing the cloned repository as /home/jamie/code/learn-code-from-us](./readme-images/code-location.jpg) 69 | 70 | Then you would need to open a command line and issue the following command: 71 | 72 | ``` bash 73 | cd /home/jamie/code/learn-code-from-us 74 | ``` 75 | 76 | This tells the command line interpreter (which is what the command line passes your input to), to change directory (which is what the `cd` part means) to `/home/jamie/code/learn-code-from-us` 77 | 78 | This is like opening your file explorer (`My Computer` on Windows, `Finder` on MacOS) in that directory. 79 | 80 | Once we're there, running the following command will restore all of the Node packages: 81 | 82 | ``` bash 83 | npm install 84 | ``` 85 | 86 | You could shorten this to `npm i` if you like. 87 | 88 | This will cause Node to read the contents of the `package.json` file and download all of the Node packages that this repository needs in order to run. An example of what might be displayed as output from this command is: 89 | 90 | ![Showing an example of the output from running the npm install command](./readme-images/npm-install-example-output.jpg) 91 | 92 | ### Running the Code 93 | 94 | Once you have installed all of the Node packages, you can run the code by issuing the following command: 95 | 96 | ``` bash 97 | npm start 98 | ``` 99 | 100 | This will tell Node to start a webserver and host all of the files that it sees in the `learn-code-from-us` directory. It will also start a new tab in your web browser and point it at the running code. 101 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Learn Code from Us 2 | 3 | ## Project Introduction 4 | 5 | The following text was taken from the about page on [https://learncodefrom.us](https://learncodefrom.us): 6 | 7 | > Learn Code from Us is a site that lists people who are members of underrepresented groups in tech who create resources geared towards programmers of all levels. These resources include (but are not limited to) podcasts, blog posts, newsletters, or YouTube videos. For now, this site is geared towards free resources in order to be as accessible as possible 8 | 9 | [Here](https://dev.to/aspittel/introducing-learn-code-from-us-oe1) is a blog post with more about the project. 10 | 11 | ## Contributing 12 | 13 | If you would like to contribute, please add an issue or comment on one of the ones that are open that you are working on it. Then submit a pull request! 14 | 15 | If you would like to discuss the project in more detail [here](https://dev.to/learncodefromus/learn-code-from-us-developer-thread-3a5a) is an open thread where you can ask code questions or discuss the future of the project! 16 | 17 | ## Adding New People 18 | 19 | On the user side, please add a new person through [this form](https://airtable.com/shrYbUMMlR1iVpA1l). 20 | 21 | > This site is specifically for highlighting people who are members of underrepresented groups in tech who create content for programmers. 22 | 23 | > Please only submit if you have over five posts, and you are planning on making more content in the future! 24 | 25 | > Also, please only submit your own content at this point! 26 | 27 | On the code side, the logic is in `data-formatting/script.js`. It creates the `data.json` file. You need an API key for the base in order to run this script. At this point, Ali will handle this process since it requires a couple manual checks. 28 | 29 | ## The Detailed Readme 30 | 31 | If you are new to coding and would like to know what each part of the setup does or requires, please see the [Detailed Readme](DetailedReadme.md) 32 | 33 | ## Software Requirements 34 | 35 | You will need the following software to be installed in order to build the code within this repository: 36 | 37 | - A git Client 38 | - A Text Editor 39 | - [Node](https://nodejs.org/en/) 40 | 41 | ## Set up instructions 42 | 43 | - Clone the repo 44 | - run `npm install` within the `learn-from-us` directory 45 | - run `npm start` within the same directory 46 | 47 | ## [Checkout Awesome Tutorials From Beginners to Advanced](Tutorials.md) 48 | 49 | -------------------------------------------------------------------------------- /Tutorials.md: -------------------------------------------------------------------------------- 1 | # Tutorials 2 | 3 | 4 | ### React 5 | 6 | #### Beginners/Intro to React 7 | - [A Complete Beginner's Guide to React](https://dev.to/aspittel/a-complete-beginners-guide-to-react-2cl6) 8 | - [Net Ninja Videos](https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG): This tutorial explains the basics of React.js and Redux. Perfect for beginners. 9 | - [edx course](https://www.edx.org/course/programming-web-javascript-pennx-sd4x) for learning react 10 | - Codeacdemy free react course to learn concepts of react 11 | - [Part I](https://www.codecademy.com/learn/react-101) 12 | - [Part II](https://www.codecademy.com/learn/react-102) 13 | - [React Starter Kit](https://glitch.com/featured/react-starter-kit/) by [Glitch](https://glitch.com/) 14 | - [Traversy Media - React Crash Course](https://www.youtube.com/watch?v=A71aqufiNtQ) 15 | - How to Learn React — A roadmap from beginner to advanced - [Srebalaji Thirumalai](https://medium.freecodecamp.org/learning-react-roadmap-from-scratch-to-advanced-bff7735531b6). 16 | - [LearnCode.academy Videos](https://www.youtube.com/watch?v=MhkGQAoc7bc&list=PLoYCgNOIyGABj2GQSlDRjgvXtqfDxKm5b) 17 | - [freeCodeCamp's React Lessons](https://learn.freecodecamp.org/front-end-libraries/react/) 18 | 19 | #### More advanced/Specific React Topics 20 | - Build a custom toggle switch - [Toggle Switch](https://scotch.io/tutorials/build-a-custom-toggle-switch-with-react) 21 | - Build A simple login profile - [User login](https://scotch.io/tutorials/build-your-first-app-with-reacts-context-api) 22 | - Introduction to `context-api` - [React Context](https://hackernoon.com/how-to-get-started-with-the-react-context-api-ccc41728fa59) 23 | - What's new in CRA v2 - [Create React App v2](https://scotch.io/tutorials/whats-new-in-create-react-app-2) 24 | - Difference between React Elements and React Components - [Tyler McGinnis](https://tylermcginnis.com/react-elements-vs-react-components/) 25 | - React sample projects to learn 26 | - [6 Fun React Projects You Can Build Today](https://daveceddia.com/react-practice-projects/) 27 | - [25 React Projects](http://sean-smith.me/assets/portfolio/25-react-projects/index.html) 28 | - Create a Simple To-Do App With React - [Chris Nwamba](https://scotch.io/tutorials/create-a-simple-to-do-app-with-react). 29 | - [Building a chat app with React.js and Chatkit](https://scrimba.com/g/greactchatkit) - Per Harald Borgen on [Scrimba](https://scrimba.com/). 30 | 31 | ### HTML & CSS 32 | - [A Complete Beginner's Guide to HTML](https://www.w3schools.com/html/) 33 | - [Basic to advanced tutorial on CSS](https://www.w3schools.com/css/) 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /data-formatting/script.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config() 2 | const fs = require('fs') 3 | 4 | const base = require('airtable').base('appyahDjTyD3MR0tU') 5 | let data = [] 6 | 7 | base('Data').select({ 8 | view: 'published' 9 | }).eachPage(function page (records, fetchNextPage) { 10 | records.forEach(record => { 11 | delete record.fields['Which underrepresented group are you a member of?'] 12 | delete record['_table'] 13 | delete record['_rawJson'] 14 | }) 15 | data = data.concat(records) 16 | fetchNextPage() 17 | }, (err) => { 18 | if (err) { 19 | console.error(err) 20 | } else { 21 | fs.writeFile('src/data.json', JSON.stringify(data), function (err, _) { 22 | if (err) console.log(err) 23 | console.log('Successfully Written to File.') 24 | console.log(data.length + ' records') 25 | }) 26 | } 27 | }) 28 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "women-in-tech", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "axios": "^0.18.0", 7 | "node-sass": "^4.9.4", 8 | "react": "^16.5.2", 9 | "react-addons-css-transition-group": "^15.6.2", 10 | "react-dom": "^16.5.2", 11 | "react-modal": "^3.6.1", 12 | "react-router-dom": "^4.3.1", 13 | "react-scripts": "2.0.5", 14 | "react-tooltip": "^3.9.0" 15 | }, 16 | "scripts": { 17 | "start": "react-scripts start", 18 | "build": "react-scripts build", 19 | "test": "react-scripts test", 20 | "test:all": "standard && prettier-standard 'src/**/*.{js,jsx}' && react-scripts test", 21 | "lint:run": "standard", 22 | "lint:prettier": "prettier-standard 'src/**/*.{js,jsx}'", 23 | "lint:fix": "standard --fix", 24 | "eject": "react-scripts eject" 25 | }, 26 | "standard": { 27 | "globals": [ 28 | "it", 29 | "fetch" 30 | ] 31 | }, 32 | "eslintConfig": { 33 | "extends": "react-app", 34 | "rules": { 35 | "eqeqeq": 1, 36 | "semi": [ 37 | "error", 38 | "never" 39 | ] 40 | } 41 | }, 42 | "browserslist": [ 43 | ">0.2%", 44 | "not dead", 45 | "not ie <= 11", 46 | "not op_mini all" 47 | ], 48 | "devDependencies": { 49 | "airtable": "^0.5.7", 50 | "dotenv": "^6.1.0", 51 | "enzyme": "^3.7.0", 52 | "enzyme-adapter-react-16": "^1.6.0", 53 | "eslint": "5.6.0", 54 | "jest-environment-enzyme": "^7.0.0", 55 | "jest-enzyme": "^7.0.0", 56 | "prettier-standard": "^8.0.1", 57 | "prop-types": "^15.6.2", 58 | "react-test-renderer": "^16.5.2", 59 | "standard": "^12.0.1" 60 | }, 61 | "jest": { 62 | "snapshotSerializers": [ 63 | "enzyme-to-json/serializer" 64 | ] 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 2 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspittel/learn-code-from-us/fa8b4faed41f713edb33871a23f4c10419733914/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 15 | 19 | 20 | 26 | 27 | 36 | Learn Code from Us 37 | 38 | 39 | 40 | 41 |
42 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Learn Code from Us", 3 | "name": "Learn Code from Us", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /readme-images/code-location.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspittel/learn-code-from-us/fa8b4faed41f713edb33871a23f4c10419733914/readme-images/code-location.jpg -------------------------------------------------------------------------------- /readme-images/npm-install-example-output.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspittel/learn-code-from-us/fa8b4faed41f713edb33871a23f4c10419733914/readme-images/npm-install-example-output.jpg -------------------------------------------------------------------------------- /src/About/About.scss: -------------------------------------------------------------------------------- 1 | .about { 2 | max-width: 90%; 3 | margin: 0 auto; 4 | 5 | h1 { 6 | font-family: 'Playfair Display', serif; 7 | } 8 | 9 | a { 10 | color: #7b8acc; 11 | text-decoration: none; 12 | } 13 | } 14 | 15 | .aboutTransition-appear { 16 | opacity: 0.01; 17 | } 18 | 19 | .aboutTransition-appear.aboutTransition-appear-active { 20 | opacity: 1; 21 | transition: opacity .5s ease-in; 22 | } 23 | -------------------------------------------------------------------------------- /src/About/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import './About.scss' 3 | 4 | const About = () => { 5 | return ( 6 |
7 |

About

8 |

9 | Learn Code from Us is a site that lists people who are members of 10 | underrepresented groups in tech who create resources geared towards 11 | programmers of all levels. These resources include (but are not limited 12 | to) podcasts, blog posts, newsletters, or YouTube videos. For now, this 13 | site is geared towards free resources in order to be as accessible as 14 | possible.{" "} 15 | 20 | Here 21 | {' '} 22 | is a blog post with more about the project. 23 |

24 |

25 | If you would like to be included on this list and identify as part of an 26 | underrepresented group in tech, please fill out{" "} 27 | 32 | this form 33 | 34 | ! 35 |

36 |
37 | ); 38 | }; 39 | 40 | export default About; 41 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { BrowserRouter as Router, Route } from 'react-router-dom' 3 | import Header from './Header' 4 | import Profiles from './Profiles' 5 | import About from './About' 6 | 7 | class App extends Component { 8 | render () { 9 | return ( 10 | 11 |
12 |
13 | 14 | 15 |
16 |
17 | ) 18 | } 19 | } 20 | 21 | export default App 22 | -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div') 7 | ReactDOM.render(, div) 8 | ReactDOM.unmountComponentAtNode(div) 9 | }) 10 | -------------------------------------------------------------------------------- /src/Card/Card.scss: -------------------------------------------------------------------------------- 1 | 2 | 3 | .content { 4 | height: 100%; 5 | max-width: 100%; 6 | text-align: center; 7 | box-sizing: border-box; 8 | user-select: none; 9 | 10 | display: flex; 11 | flex-direction: column; 12 | justify-content: center; 13 | align-items: center; 14 | align-content: center; 15 | 16 | padding: 20px; 17 | border: 1.5px solid lightgrey; 18 | border-radius: 1%; 19 | 20 | transition: all .3s; 21 | 22 | &:hover { 23 | box-shadow: 2px 2px 10px #33333359; 24 | transform: scale(1.01); 25 | transition: all .3s; 26 | } 27 | 28 | h3 { 29 | color: #444; 30 | } 31 | 32 | h2 { 33 | font-size: 2rem; 34 | font-weight: 600; 35 | font-family: 'Playfair Display', serif; 36 | } 37 | 38 | h3 { 39 | font-weight: lighter; 40 | font-size: 16px; 41 | } 42 | 43 | svg { 44 | width: 30px; 45 | } 46 | 47 | @media (max-width: 400px) { 48 | margin-bottom: 10px; 49 | } 50 | 51 | .links { 52 | transition: all .3s; 53 | 54 | a { 55 | padding: 10px; 56 | border-radius: 3px; 57 | 58 | &:hover { 59 | background: #7b8acc; 60 | box-shadow: 2px 2px 10px #33333359; 61 | transition: all .3s; 62 | 63 | svg { 64 | color: #fff; 65 | } 66 | } 67 | } 68 | } 69 | } 70 | 71 | 72 | $colors: #f8bbd0, #e1bee7, #bbdefb, #b2ebf2, #c8e6c9, #fff9c4; 73 | 74 | .tags { 75 | @for $i from 1 through length($colors) { 76 | div:nth-child(#{length($colors)}n+#{$i}) { 77 | background: nth($colors, $i) 78 | } 79 | } 80 | } 81 | 82 | .tag { 83 | display: inline-block; 84 | padding: 4px 6px; 85 | font-size: 12px; 86 | margin-right: 6px; 87 | margin-bottom: 10px; 88 | border-radius: 20px; 89 | } 90 | 91 | .profileImageContainer { 92 | height: 100px; 93 | width: 100px; 94 | margin-bottom: 20px; 95 | overflow: hidden; 96 | border-radius: 50%; 97 | } 98 | 99 | .profileImage { 100 | width: 100%; 101 | height: 100%; 102 | object-fit: cover; 103 | transition: transform 0.5s; 104 | 105 | &:hover { 106 | transform:scale(1.08); 107 | transition: transform 0.5s; 108 | } 109 | } 110 | 111 | .slideUp-appear { 112 | margin-top: 60px; 113 | opacity: 0; 114 | } 115 | 116 | .slideUp-appear.slideUp-appear-active { 117 | margin-top: 0; 118 | opacity: 1; 119 | transition: all 1s ease-out; 120 | } 121 | 122 | @supports (-moz-appearance:meterbar) { 123 | .slideUp-appear.slideUp-appear-active { 124 | transition-delay: 1s; 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /src/Card/index.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import ReactCSSTransitionGroup from "react-addons-css-transition-group" 3 | import PropTypes from "prop-types" 4 | import SiteLink from "../SiteLink" 5 | import "./Card.scss" 6 | 7 | const Card = props => { 8 | let project = props.person.fields 9 | return ( 10 | 17 |
18 |

{project.Name}

19 | {project.Image && ( 20 |
21 | {project.Name} 26 |
27 | )} 28 |
29 | 35 | 41 | 47 | 53 | 59 | 65 |
66 |

{project.About}

67 |
68 | {project.Tags && 69 | project.Tags.map(tag => ( 70 |
71 | {tag} 72 |
73 | ))} 74 |
75 |
76 |
77 | ) 78 | } 79 | 80 | Card.propTypes = { 81 | person: PropTypes.shape({ 82 | fields: PropTypes.shape({ 83 | name: PropTypes.string, 84 | Image: PropTypes.array, 85 | Blog: PropTypes.string, 86 | Newsletter: PropTypes.string, 87 | YouTube: PropTypes.string, 88 | Podcast: PropTypes.string, 89 | Website: PropTypes.string, 90 | Dev: PropTypes.string, 91 | About: PropTypes.string, 92 | Tags: PropTypes.array 93 | }) 94 | }) 95 | } 96 | 97 | export default Card 98 | -------------------------------------------------------------------------------- /src/Header/Header.scss: -------------------------------------------------------------------------------- 1 | header { 2 | text-align: center; 3 | margin-bottom: 30px; 4 | 5 | h1 { 6 | font-family: 'Playfair Display', serif; 7 | font-weight: 600; 8 | font-size: 50px; 9 | margin-bottom: 0px; 10 | background: linear-gradient(90deg, #f8bbd0 0%, #e1bee7 16.66%, #bbdefb 33.32%, #b2ebf2 49.48%, #c8e6c9 66.64%, #fff9c4 100%); 11 | background-clip: text; 12 | -webkit-text-fill-color: transparent; 13 | -webkit-text-stroke: .5px #00000049; 14 | } 15 | 16 | a { 17 | text-decoration: none; 18 | color: #444; 19 | } 20 | 21 | h4 { 22 | font-weight: 200; 23 | color: grey; 24 | margin-top: 5px; 25 | font-family: Roboto,sans-serif; 26 | margin-bottom: 5px; 27 | font-size: 17px; 28 | } 29 | 30 | .about-link { 31 | color: #7b8acc; 32 | font-size: 17px; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Header/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Link from '../Link' 3 | import './Header.scss' 4 | 5 | const Header = props => { 6 | return ( 7 |
8 |

9 | Learn Code from Us 10 |

11 |

12 | People from underrepresented groups in tech who create awesome 13 | programming resources 14 |

15 | 16 | About this Site 17 | 18 |
19 | ) 20 | } 21 | 22 | export default Header 23 | -------------------------------------------------------------------------------- /src/Link/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Route, Link as RouterLink, withRouter } from "react-router-dom"; 3 | 4 | /* https://github.com/ReactTraining/history/issues/470 */ 5 | /* Proposed Solution: https://gist.github.com/chpio/a5d4f7d73d6643780db20db163561a67 */ 6 | 7 | function Link({ 8 | to, 9 | location, 10 | children, 11 | staticContext, 12 | match, 13 | history, 14 | ...rest 15 | }) { 16 | /* eslint-disable react/jsx-no-bind */ 17 | return ( 18 | ( 20 | 21 | {children} 22 | 23 | )} 24 | /> 25 | ); 26 | } 27 | 28 | export default withRouter(Link); 29 | -------------------------------------------------------------------------------- /src/Profiles/Profiles.scss: -------------------------------------------------------------------------------- 1 | .results-filter { 2 | display: flex; 3 | align-items: center; 4 | margin: 20px auto; 5 | 6 | > p { 7 | color: grey; 8 | font-size: 18px; 9 | } 10 | } 11 | 12 | .results-dropdown { 13 | position: relative; 14 | 15 | > select { 16 | appearance: none; 17 | background: white; 18 | border: 1.5px solid lightgrey; 19 | border-radius: 4px; 20 | color: gray; 21 | cursor: pointer; 22 | line-height: 1.5; 23 | font-size: 16px; 24 | margin-left: 10px; 25 | outline: none; 26 | padding: 5px 20px 5px 10px; 27 | transition: border 250ms ease; 28 | width: 100%; 29 | 30 | &:hover, &:focus { 31 | border-color: #7b8acc; 32 | } 33 | } 34 | 35 | &::after { 36 | color: #7b8acc; 37 | content: '▼'; 38 | position: absolute; 39 | top: 50%; 40 | transform: translateY(-50%); 41 | right: 0px; 42 | font-size: 9px; 43 | } 44 | } 45 | 46 | .results-container { 47 | display: grid; 48 | grid-gap: 10px; 49 | grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); 50 | 51 | @media (max-width: 400px) { 52 | display: block; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/Profiles/index.js: -------------------------------------------------------------------------------- 1 | import React, { Component, Fragment } from 'react' 2 | import data from '../data.json' 3 | import Card from '../Card' 4 | import './Profiles.scss' 5 | 6 | class Profiles extends Component { 7 | constructor () { 8 | super() 9 | this.state = { 10 | people: [], 11 | tags: [], 12 | selectedTag: '', 13 | } 14 | } 15 | 16 | shuffle (data) { 17 | let a = [...data] 18 | var j, x, i 19 | for (i = a.length - 1; i > 0; i--) { 20 | j = Math.floor(Math.random() * (i + 1)) 21 | x = a[i] 22 | a[i] = a[j] 23 | a[j] = x 24 | } 25 | return a 26 | } 27 | 28 | getTags(people) { 29 | const tags = people.map(person => person.fields.Tags) 30 | const mergedTags = tags.reduce((a, b) => [...a, ...b], []) 31 | const uniqueArrayOfTags = Array.from(new Set([...mergedTags])).sort((a, b) => a < b ? -1 : 1) 32 | this.setState({ 33 | tags: uniqueArrayOfTags, 34 | }) 35 | } 36 | 37 | handleChange = (e) => { 38 | this.setState({ selectedTag: e.target.value }) 39 | } 40 | 41 | componentDidMount() { 42 | let shuffledData = this.shuffle(data) 43 | this.setState({ 44 | people: shuffledData 45 | }, () => this.getTags(this.state.people)) 46 | } 47 | 48 | render() { 49 | const { people, tags, selectedTag } = this.state 50 | const filteredPeople = people.filter(person => person.fields.Tags.includes(selectedTag)); 51 | const peopleToMap = selectedTag ? filteredPeople : people 52 | return ( 53 | 54 |
55 |

Filter by technology

56 |
57 | 61 |
62 |
63 |
64 | {peopleToMap.map(person => )} 65 |
66 |
67 | ) 68 | } 69 | } 70 | 71 | export default Profiles 72 | -------------------------------------------------------------------------------- /src/SiteLink/SiteLink.scss: -------------------------------------------------------------------------------- 1 | .links { 2 | width: 75%; 3 | display: flex; 4 | justify-content: space-around; 5 | margin-bottom: 30px; 6 | 7 | svg { 8 | color: #7b8acc; 9 | height: 24; 10 | width: 24; 11 | size: 24; 12 | } 13 | 14 | a{ 15 | position: relative; 16 | 17 | &:after{ 18 | content: attr(data-tip); 19 | position:absolute; 20 | bottom:0; 21 | left:50%; 22 | transform: translate(-50%, 100%); 23 | font-size:0.8em; 24 | color:#999; 25 | opacity:0; 26 | transition:all 0.3s; 27 | padding:0.25em 0; 28 | } 29 | 30 | 31 | &:hover{ 32 | 33 | &:after{ 34 | opacity: 1; 35 | } 36 | } 37 | } 38 | } 39 | 40 | .overlay { 41 | background-color: #7b8acc; 42 | height: 100%; 43 | left: 0; 44 | position: absolute; 45 | top: 0; 46 | width: 100%; 47 | z-index: -1; 48 | } 49 | -------------------------------------------------------------------------------- /src/SiteLink/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | 4 | 5 | import './SiteLink.scss' 6 | 7 | const SiteLink = ({ link, icon, tooltipText }) => { 8 | if (!link) return null 9 | 10 | return ( 11 | 17 | 18 | 19 | ) 20 | } 21 | 22 | SiteLink.propTypes = { 23 | link: PropTypes.string, 24 | tooltipText: PropTypes.string, 25 | icon: PropTypes.string 26 | } 27 | 28 | export default SiteLink 29 | -------------------------------------------------------------------------------- /src/data.json: -------------------------------------------------------------------------------- 1 | [{"id":"recWhmTAXi2OjNN2R","fields":{"Name":"Ali Spittel","Tags":["WebDev","Design","JavaScript","CSS","Python"],"Blog":"https://zen-of-programming.com","Website":"https://alispit.tel","About":"Ali's blog The Zen of Programming is a set of resources that she wishes she had when she was learning to code, including code and design tutorials, motivational posts, and life updates.\n","Published":true,"slug":"ali-spittel","Newsletter":"https://tinyletter.com/ali_writes_code","Image":[{"id":"attIOBwo35aiNjbpX","url":"https://dl.airtable.com/nqocZpRButvXs9ch5vbw_selfiesquare.jpg","filename":"selfiesquare.jpg","size":224297,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/PCGOkMDZSvOXPgxBzIXB_small_selfiesquare.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/Tf1WIoCcQLGQSsDEIGXs_large_selfiesquare.jpg","width":512,"height":512},"full":{"url":"https://dl.airtable.com/hFKaVzzuToWOyaxjgxGh_full_selfiesquare.jpg","width":1341,"height":1340}}}],"Dev":"https://dev.to/aspittel"}},{"id":"recSCs0qSkc8pSd6r","fields":{"Name":"Arit Amana","Tags":["WebDev","JavaScript"],"Blog":"https://medium.com/@msarit","About":"As a developer, Arit's passion is two-fold: (1) empowering businesses, companies and organizations achieve their goals and bottom-line by leveraging her tech skills (2) inspiring, encouraging and mentoring other developers, particularly those less represented in the tech space.\n","Published":true,"slug":"arit-amana","Image":[{"id":"att7l8b5bvABvK762","url":"https://dl.airtable.com/b8Ajl8lJSEO8m4U9Jzqg_pic%20for%20resume.jpg","filename":"pic for resume.jpg","size":908584,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/3udjIBypTOSBTB51XOGu_small_pic%20for%20resume.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/TMz45N5lT5GRFacp8MI4_large_pic%20for%20resume.jpg","width":512,"height":512},"full":{"url":"https://dl.airtable.com/vboQnG5BSbC5fZWZyJgO_full_pic%20for%20resume.jpg","width":1440,"height":1440}}}]}},{"id":"reciyS34zeGtsWL6v","fields":{"Name":"Emma Wedekind","Tags":["WebDev","JavaScript","CSS","Design"],"Blog":"https://www.medium.com/@emmawedekind","About":"Emma is a Software Engineer at LogMeIn I’m Germany and enjoys blogging about everything design, and front-end development. ","Published":true,"slug":"emma-wedekind","Image":[{"id":"attV0U2VV379SdH8O","url":"https://dl.airtable.com/cfjFVRV7RoKVKkF9Gd3k_2E682F13-24A8-429F-9328-619927BFAABA.jpeg","filename":"2E682F13-24A8-429F-9328-619927BFAABA.jpeg","size":215370,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/6qUPZZFLTQea3sJCiDOv_small_2E682F13-24A8-429F-9328-619927BFAABA.jpeg","width":33,"height":36},"large":{"url":"https://dl.airtable.com/CQSsqvaKRamxYSM6ugfn_large_2E682F13-24A8-429F-9328-619927BFAABA.jpeg","width":512,"height":560},"full":{"url":"https://dl.airtable.com/M7mzk8SLSi6U89BXdkMN_full_2E682F13-24A8-429F-9328-619927BFAABA.jpeg","width":1138,"height":1245}}}]}},{"id":"recqgVk51yWmZnfhq","fields":{"Name":"Code with Veni","Tags":["WebDev","Data Science","Python","JavaScript"],"Blog":"http://codewithveni.com","About":"A newsletter for women & enbies in tech. Get hand picked selection of great articles on coding, finding your first job as well as advice from women in the field.","Published":true,"slug":"code-with-veni","Newsletter":"http://codewithveni.com","Image":[{"id":"attYa4iL09e0bYEUi","url":"https://dl.airtable.com/A8zklLFSQHaR0mzWkBbQ_cover_photo_orig.jpg","filename":"cover_photo_orig.jpg","size":385962,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/H48LcifbRLqomwARKk7m_small_cover_photo_orig.jpg","width":108,"height":36},"large":{"url":"https://dl.airtable.com/mnf0hyYRPuidvXthlBi3_large_cover_photo_orig.jpg","width":1532,"height":512},"full":{"url":"https://dl.airtable.com/oAQE1t3HQgiHIvEkUWU5_full_cover_photo_orig.jpg","width":2005,"height":670}}}]}},{"id":"recgnwTRHpAse6sKu","fields":{"Name":"Coding Commanders ","Tags":["WebDev","JavaScript","CSS"],"Blog":"http://www.codingcommanders.com","YouTube":"https://www.youtube.com/channel/UC-gCUMK_EGUqJ7P9VA7BJmQ","About":"Coding Commanders has easy to follow Web Development tutorials that assume no prior knowledge. ","Published":true,"slug":"coding-commanders","Image":[{"id":"atteAEfuJKoO2QlGv","url":"https://dl.airtable.com/oh74pkIQeGi9ohDSQb0s_logo_resize.png","filename":"logo_resize.png","size":86552,"type":"image/png","thumbnails":{"small":{"url":"https://dl.airtable.com/loPZ6Y2ERZkGlPitLjok_small_logo_resize.png","width":51,"height":36},"large":{"url":"https://dl.airtable.com/zYQbbLmQseaqGul1wxwl_large_logo_resize.png","width":320,"height":226},"full":{"url":"https://dl.airtable.com/w1AUWs7lRBS9lej3s7ir_full_logo_resize.png","width":320,"height":226}}}]}},{"id":"recOVSnbpg5AGnIWY","fields":{"Name":"Mahmoud Elmahdi","Tags":["JavaScript","WebDev","CSS","Design"],"Blog":"https://elmahdim.com","Website":"https://elmahdim.com","About":"Development & UX/UI tutorials, and courses","Published":true,"slug":"mahmoud-elmahdi","Image":[{"id":"attxsbYO960rVauR1","url":"https://dl.airtable.com/QJIZcWpKQF6jDLfTwiD6_Optimized-IMG_20180510_180944%20copy%20copy.jpg","filename":"Optimized-IMG_20180510_180944 copy copy.jpg","size":332664,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/RtWlo9THQIqMiIEg9tNg_small_Optimized-IMG_20180510_180944%20copy%20copy.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/r4CO0a51Ruq8AIGBCjBC_large_Optimized-IMG_20180510_180944%20copy%20copy.jpg","width":512,"height":519},"full":{"url":"https://dl.airtable.com/0uPi7SFvTU0bjsEUf1FI_full_Optimized-IMG_20180510_180944%20copy%20copy.jpg","width":888,"height":900}}}],"Dev":"https://dev.to/_elmahdim"}},{"id":"recq2X0TR6Ljv8OF7","fields":{"Name":"Ahmad Awais","Tags":["WebDev","JavaScript","CSS"],"Blog":"https://AhmadAwais.com/","YouTube":"https://www.youtube.com/AhmadAwais","About":"🥑 Open Source DevRels ❯ Ridiculously hard-working Web Dev ❯ WordPress Core Dev ❯ TEDx Speaker ❯ JS/DevOps fanboy ❯ Cracks silly jokes ❯ Loves his wife @MaedahBatool + 🍕","Published":true,"slug":"ahmad-awais","Newsletter":"https://dev.to/mrahmadawais","Image":[{"id":"att4FOEx712498Rf3","url":"https://dl.airtable.com/TWSpjJ1RSb6kSLOSCy7w__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg","filename":"_Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg","size":13555,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/NSeuA4S7QQm7YnnNZlp2_small__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/spbvYBXQfmM3FGfLUigM_large__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg","width":250,"height":250},"full":{"url":"https://dl.airtable.com/dsNURKYRL2fIB2uUheeQ_full__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg","width":250,"height":250}}}],"Dev":"https://dev.to/mrahmadawais"}},{"id":"recp2kPPJRhXST5Qh","fields":{"Name":"Nick Karnik","Tags":["WebDev","JavaScript",".NET","C++","Python","Data Science"],"Blog":"https://nick.karnik.io/","YouTube":"http://youtube.karnik.io","Website":"https://twitter.com/theoutlander","About":"Tutorials about Web Development, Software Engineering, Computer Science, Career in Tech, and Startups.\n\nYou can learn more about me @ http://linkedin.com/in/theoutlander.","Published":true,"slug":"nick-karnik","Image":[{"id":"attW4ZlcZHMYH93as","url":"https://dl.airtable.com/BzotvehSTaNSNtwpoGc3_neo_square.jpg","filename":"neo_square.jpg","size":299328,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/sfRgzI1YRISJ6oCTVpa8_small_neo_square.jpg","width":47,"height":36},"large":{"url":"https://dl.airtable.com/nQ8bJM5ToC3qS3Is3gAV_large_neo_square.jpg","width":666,"height":512},"full":{"url":"https://dl.airtable.com/b0UUKbOSOCLWds1dMxWg_full_neo_square.jpg","width":1040,"height":800}}}],"Dev":"https://dev.to/theoutlander"}},{"id":"recY1sbGD6RNWO6FF","fields":{"Name":"Charlie Gerard","Tags":["WebDev","JavaScript"],"Blog":"https://medium.com/@devdevcharlie","Website":"https://charliegerard.github.io/","About":"I love sharing what I learn from building prototypes with JavaScript, Arduino, Machine learning and AR/VR.","Published":true,"slug":"charlie-gerard","Image":[{"id":"attxVjr02Z3q7dztA","url":"https://dl.airtable.com/XIdIy6O4Rry5SLzPIMvT_Charlie_Gerard.png","filename":"Charlie_Gerard.png","size":540889,"type":"image/png","thumbnails":{"small":{"url":"https://dl.airtable.com/RB4ecDj8Q1mRTicRfvne_small_Charlie_Gerard.png","width":36,"height":36},"large":{"url":"https://dl.airtable.com/SxTZvlnJQLyNgBibvMSG_large_Charlie_Gerard.png","width":460,"height":460},"full":{"url":"https://dl.airtable.com/dUQkjazQ4y6Qb2aoIhiw_full_Charlie_Gerard.png","width":460,"height":460}}}]}},{"id":"recgAfYx9Gt0JQMAf","fields":{"Name":"Heartbeat","Tags":["JavaScript","WebDev"],"YouTube":"https://goo.gl/8p3msR","About":"We build together a desktop app using NW.js and Vue.js (featuring also the use of Vuetify.js and some npm packages during the journey)","Published":true,"slug":"heartbeat","Image":[{"id":"attcxgCogoze0gAXr","url":"https://dl.airtable.com/U9QhQU2lR9yuaiF6Iuj1_courseBanner_squ.png","filename":"courseBanner_squ.png","size":49900,"type":"image/png","thumbnails":{"small":{"url":"https://dl.airtable.com/n9AVNFxlTZ2rlJ8zcSvg_small_courseBanner_squ.png","width":36,"height":36},"large":{"url":"https://dl.airtable.com/dWOYXtptRXyZAweSmZM5_large_courseBanner_squ.png","width":500,"height":500},"full":{"url":"https://dl.airtable.com/6g3Xb87TyUGY5N9OPk9g_full_courseBanner_squ.png","width":500,"height":500}}}]}},{"id":"recxN6ownk6vRQX9k","fields":{"Name":"Coding Woman","Tags":["Data Science","Machine Learning","Deep Learning","Computer Vision"],"Blog":"http://www.codingwoman.com","About":"Coding Woman is a blog to share anecdotes from the life of a woman studying Computer Engineering, while supporting Women in Tech to break stereotypes. It also consists of technical topics related to a Computer Engineering degree, as well as tech related news, and articles about Women in STEM.","Published":true,"slug":"coding-woman","Newsletter":"http://eepurl.com/dh8phb","Image":[{"id":"attSXUnyMsMNvLKap","url":"https://dl.airtable.com/izJuWbMpRhii70XVsVVK_coding-woman-logo2.jpg","filename":"coding-woman-logo2.jpg","size":581207,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/UhnWWlRCS8eYuiP1sTEZ_small_coding-woman-logo2.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/Dt1vemJtRUKYUoTB1qd7_large_coding-woman-logo2.jpg","width":512,"height":512},"full":{"url":"https://dl.airtable.com/kWb5hiY7Swaf5XLtCaCX_full_coding-woman-logo2.jpg","width":2603,"height":2603}}}]}},{"id":"recrQojELm0A5wp1E","fields":{"Name":"Amit Merchant","Tags":["WebDev","JavaScript","Design"],"Blog":"https://www.amitmerchant.com","About":"I'm basically posting about all things tech. i.e. JavaScript and PHP. The topics are mostly at the intersection of code and design and sometimes there are rants about certain topics as well.","Published":true,"slug":"amit-merchant","Image":[{"id":"atto2cLFLqbn0fOhH","url":"https://dl.airtable.com/izB9pRelTpa13SqsifGN_profile.jpg","filename":"profile.jpg","size":27005,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/jh5K9mayQBZnJmJgNK4w_small_profile.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/IcLr1TosQnWogAfQl9GW_large_profile.jpg","width":320,"height":320},"full":{"url":"https://dl.airtable.com/QZgh9BIlQFa2FxGTuZnA_full_profile.jpg","width":320,"height":320}}}],"Dev":"https://dev.to/amit_merchant"}},{"id":"recB02Kg0J9WzQQ47","fields":{"Name":"Asam Shan","Tags":["WebDev","JavaScript","CSS"],"Blog":"https://upbeat-sinoussi-998f2b.netlify.com/","Website":"https://asamshan.com/","About":"I try to help the newest of newbies get started with programming.","Published":true,"slug":"asam-shan","Image":[{"id":"attcUVPEi19oYkyRQ","url":"https://dl.airtable.com/zXPJsYyRSV25nyrFtNFr_av.jpeg","filename":"av.jpeg","size":18886,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/2L2rIjXaQBa217J5qr2r_small_av.jpeg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/NYxk4p9eRbq4BGbovHPO_large_av.jpeg","width":400,"height":400},"full":{"url":"https://dl.airtable.com/Cm3pDL0TTmMNcwTqHZ3A_full_av.jpeg","width":400,"height":400}}}],"Dev":"https://dev.to/shan5742"}},{"id":"recsRVuP6LKuvTbay","fields":{"Name":"Sharynne Azhar","Tags":["WebDev","JavaScript","CSS","Design"],"Blog":"https://sharynneazhar.com/blog/","Website":"https://sharynneazhar.com/","About":"Hi, I'm Sharynne and I'm addicted to building products. I love sharing about the different things I've learned from my experiences. Feel free to follow my journey through my blog or connect with me through LinkedIn! ","Published":true,"slug":"sharynne-azhar","Image":[{"id":"attTcYCsYVLFkcVYe","url":"https://dl.airtable.com/HmqHuy1FTwaWIhxc5mTT_IMG_3828l.jpg","filename":"IMG_3828l.jpg","size":1072325,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/86WoRiW0SgqYloImJmeZ_small_IMG_3828l.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/76AGpHTRQHq4PurmNfSA_large_IMG_3828l.jpg","width":512,"height":518},"full":{"url":"https://dl.airtable.com/xLtWo5cTRz2oQn56Y5FY_full_IMG_3828l.jpg","width":2966,"height":3000}}}]}},{"id":"reclLNJm1iie0zyJW","fields":{"Name":"Madison","Tags":["JavaScript","WebDev"],"Blog":"http://madisonkanna.com","Website":"Madisonkanna.com","About":"I write about learning how to code and becoming a developer without a traditional CS background.","Published":true,"slug":"madison","Newsletter":"http://www.madisonkanna.com/get-my-coding-course-for-free/","Image":[{"id":"attoYM6ByMJoJ7Lc4","url":"https://dl.airtable.com/KP6MZneTCX4mpLl2tN1g_headshot.jpg","filename":"headshot.jpg","size":210844,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/wqhaSQiRLS7EuoXfcGEX_small_headshot.jpg","width":35,"height":36},"large":{"url":"https://dl.airtable.com/Y8oclPkQH3x3RBbBku8w_large_headshot.jpg","width":512,"height":519},"full":{"url":"https://dl.airtable.com/jeWHQ9jQcGMWbV1R97fw_full_headshot.jpg","width":1335,"height":1354}}}]}},{"id":"recmq0bpfHcMbEBOe","fields":{"Name":"Madelene Campos","Tags":["Python","JavaScript","WebDev"],"Blog":"https://maddiecampos.wordpress.com/","Website":"https://madelenecampos.com/","About":"The above website was built by hand and is hosted on Firebase. It includes links to my blog, with which I try to encourage other people who are dissatisfied and need a change in their lives to look into coding as a profession. Specifically, people with musical or arts backgrounds who are unable to find stable employment.","Published":true,"slug":"madelene-campos","Image":[{"id":"attoMneHgUr90xsxx","url":"https://dl.airtable.com/goARqJewSwCqWuuiGO8G_2270.jpg","filename":"2270.jpg","size":58288,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/DZa8O7KDTRWGifLDhLpH_small_2270.jpg","width":64,"height":36},"large":{"url":"https://dl.airtable.com/kokkp6I6QOOUc6Px6KrR_large_2270.jpg","width":910,"height":512},"full":{"url":"https://dl.airtable.com/YBbgE1QtT5Wv1aCu37V2_full_2270.jpg","width":2560,"height":1440}}}]}},{"id":"recVd7hjJ9isAw3J1","fields":{"Name":"Harriet Ryder","Tags":["WebDev","JavaScript","CSS"],"Blog":"http://www.harrietryder.co.uk/","About":"As a software developer and former bootcamp instructor I love learning and teaching all things code! I write technical and non-technical posts on Medium and my personal blog.","Published":true,"slug":"harriet-ryder","Image":[{"id":"att4OshlJClcTtDKT","url":"https://dl.airtable.com/6C3sWW0Q6m68UfvqFXi4_Screen%20Shot%202018-09-23%20at%2016.36.46.png","filename":"Screen Shot 2018-09-23 at 16.36.46.png","size":2750098,"type":"image/png","thumbnails":{"small":{"url":"https://dl.airtable.com/sjQmdxavSGWh9Ms9tD9b_small_Screen%20Shot%202018-09-23%20at%2016.36.46.png","width":36,"height":36},"large":{"url":"https://dl.airtable.com/SsMJdpTB2BrSEhjWCHwT_large_Screen%20Shot%202018-09-23%20at%2016.36.46.png","width":513,"height":512},"full":{"url":"https://dl.airtable.com/lf9lUlFiRWalU5FwT6mO_full_Screen%20Shot%202018-09-23%20at%2016.36.46.png","width":1186,"height":1184}}}]}},{"id":"recBBv3q1Aj7l4B2k","fields":{"Name":"Kauress","Tags":["WebDev","JavaScript","Computer Vision"],"Blog":"https://www.kauress.me/","YouTube":"https://www.youtube.com/channel/UCqKOx3BuRotITRi99hT2yAw","Website":"http://www.letsjavascript.com","About":"Learning how to code by doing bite sized projects. Fullstack JavaScript and VR.","Published":true,"slug":"kauress","Image":[{"id":"attWWyXWg7SHDQdJW","url":"https://dl.airtable.com/Fi1Vy0opTWPcsTGUTkp6_kauress.jpg","filename":"kauress.jpg","size":35240,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/iubNnTPaQht44Ik2AdiA_small_kauress.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/eLwYIFBPRa6C5IdfcD55_large_kauress.jpg","width":400,"height":400},"full":{"url":"https://dl.airtable.com/l7r3FWEfS2KKPG8DxefI_full_kauress.jpg","width":400,"height":400}}}],"Dev":"https://dev.to/kauresss"}},{"id":"recfCMwdI8hoYWcm1","fields":{"Name":"Saigowtham","Tags":["JavaScript","CSS","WebDev"],"Website":"https://reactgo.com","About":"I write tutorials about JavaScript and web development .","Published":true,"Newsletter":"https://tinyletter.com/reactgo","Image":[{"id":"attf6NWcU7SzMSgm4","url":"https://dl.airtable.com/xZGa3JOcR4m6Zsr1xmHh_download.png","filename":"download.png","size":8676,"type":"image/png","thumbnails":{"small":{"url":"https://dl.airtable.com/BwcNXCDTQcmT452ghis3_small_download.png","width":36,"height":36},"large":{"url":"https://dl.airtable.com/i6NqWwHGQc2fKzHkIyYh_large_download.png","width":256,"height":256},"full":{"url":"https://dl.airtable.com/HLihqYm9QEuCUJ7lEu6v_full_download.png","width":256,"height":256}}}],"Dev":"https://dev.to/saigowthamr"}},{"id":"recPiDELH12QJPrmy","fields":{"Name":"Aibol","Tags":["WebDev","JavaScript"],"Blog":"https://aibolik.github.io","Website":"https://aibolik.github.io","About":"I am a Software Engineer who loves FrontEnd, JavaScript and everything related to web. I'm beginner tech-blogger and instructor. I like sharing useful stuff, so stay tuned!","Published":true,"Newsletter":"https://tinyletter.com/jsindev","Image":[{"id":"attEHCMdhW8N13d45","url":"https://dl.airtable.com/4QhaL21ITLC0te8sizt9_avatar.png","filename":"avatar.png","size":127786,"type":"image/png","thumbnails":{"small":{"url":"https://dl.airtable.com/8CxCu1u8SMCtf9ZnR8Al_small_avatar.png","width":36,"height":36},"large":{"url":"https://dl.airtable.com/re8GoiRJ2Vsk1YsEyS4g_large_avatar.png","width":416,"height":416},"full":{"url":"https://dl.airtable.com/MNeUJnRvicINQjXkOOAm_full_avatar.png","width":416,"height":416}}}],"Dev":"http://dev.to/aibolik"}},{"id":"recqx08wE0zHwkC4e","fields":{"Name":"Lindsey Kopacz","Tags":["JavaScript","CSS","WebDev"],"Blog":"https://www.a11ywithlindsey.com/","About":"I write about primarily accessibility and using human empathy to solve technical accessibility problems.","Published":true,"Newsletter":"http://eepurl.com/dy1USP","Image":[{"id":"attAwgw7mpHnjkYoM","url":"https://dl.airtable.com/dTDLsmidTpOy164x2pHg_13581979_10206952583992825_2455472662860616818_o.jpg","filename":"13581979_10206952583992825_2455472662860616818_o.jpg","size":271857,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/0xcsa3GfTr2PvChsDtq8_small_13581979_10206952583992825_2455472662860616818_o.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/ZCVjkVwQyCq61uh7menJ_large_13581979_10206952583992825_2455472662860616818_o.jpg","width":512,"height":512},"full":{"url":"https://dl.airtable.com/rb4BowzYSvmezI8OXCkR_full_13581979_10206952583992825_2455472662860616818_o.jpg","width":1080,"height":1079}}}],"Dev":"https://dev.to/lkopacz"}},{"id":"rec4nS45r3Sz5o2bC","fields":{"Name":"The WebDev Coach","YouTube":"https://www.youtube.com/channel/UCERIxMohPPYmwjtHF3DdlJQ","About":"Teaching web development to those interested in breaking into the industry.","Image":[{"id":"attczAG4MLlDt9qy4","url":"https://dl.airtable.com/Yt8DMrSNSDam9ORD6E9O_WebDev4.png","filename":"WebDev4.png","size":60959,"type":"image/png","thumbnails":{"small":{"url":"https://dl.airtable.com/XD6jaOaRAea7589pmtXt_small_WebDev4.png","width":36,"height":36},"large":{"url":"https://dl.airtable.com/q252PSUQyuuXWvxKyWty_large_WebDev4.png","width":512,"height":512},"full":{"url":"https://dl.airtable.com/11daD2yRsSbE2Z5m3dV0_full_WebDev4.png","width":1000,"height":1000}}}],"Published":true,"Tags":["WebDev"]}},{"id":"recoNMbOcesnaJjd4","fields":{"Name":"Tiffany White","Blog":"https://tiffanywhite.tech","Website":"https://www.twitch.tv/sydmalicious78","About":"React.js, JavaScript, and web development news as well as developer productivity.","Newsletter":"https://buttondown.email/tiffanywhite/","Image":[{"id":"atteHfu6AbV37vL8Y","url":"https://dl.airtable.com/rIYz2YA5S4yor47UPK1H_IMG_4148.JPG","filename":"IMG_4148.JPG","size":309792,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/2fOLsr0HTuWkTwQrHbEj_small_IMG_4148.JPG","width":36,"height":36},"large":{"url":"https://dl.airtable.com/OQ7orYgR4mzBYBa11ASK_large_IMG_4148.JPG","width":512,"height":512},"full":{"url":"https://dl.airtable.com/s1wYhuNiSY2vn0R4FLsq_full_IMG_4148.JPG","width":1242,"height":1242}}}],"Dev":"https://dev.to/twhite","Published":true,"Tags":["WebDev","JavaScript"]}},{"id":"reczp03Z88eFLuJDO","fields":{"Name":"Muses Code JS","Tags":["JavaScript","WebDev"],"Blog":"http://nodegirls.com.au/","Website":"https://github.com/node-girls-australia","About":"Muses runs free JavaScript and Node.js workshops for women, non-binary and trans folk around Australia. We believe that everyone should try programming at least once in their life. \n\nTherefore we created a community where, in a friendly atmosphere with great vibe you can try programming for the first time or, if you already code, learn something new about JavaScript and/or Node.js. \n\nOur half day coding bootcamps are also a great opportunity to grow your network and meet new people with similar interests. Come and join our next half-day coding bootcamp with lunch provided.\n\nAll of our resources are open source on Github. https://github.com/node-girls-australia","Published":true}},{"id":"recerkEX8sromRy7u","fields":{"Name":"Alex Pliutau","Tags":["WebDev","Go"],"Blog":"https://pliutau.com","YouTube":"https://www.youtube.com/packagemain","Website":"https://pliutau.com","About":"Hi Gophers, my name is Alex Pliutau,\n\nTopics I share:\n - Programming in Go\n - Go code reviews\n - Solving Algorithms with Go\n - Microservices with Go\n - Machine learning in Go\n - Build things with Go","Image":[{"id":"attQ6aA7k4q8M56fn","url":"https://dl.airtable.com/G64Ws34BT46f710auoYg_152ccc4.jpg","filename":"152ccc4.jpg","size":1642756,"type":"image/jpeg","thumbnails":{"small":{"url":"https://dl.airtable.com/fZN28udJTeKKzql9CfdK_small_152ccc4.jpg","width":36,"height":36},"large":{"url":"https://dl.airtable.com/xAongwhWQ22F972JsaBx_large_152ccc4.jpg","width":512,"height":512},"full":{"url":"https://dl.airtable.com/FnElpXdiTl2RJogze7oj_full_152ccc4.jpg","width":2224,"height":2224}}}],"Dev":"https://dev.to/plutov","Published":true}}] -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import "./index.scss"; 4 | import App from "./App"; 5 | import * as serviceWorker from "./serviceWorker"; 6 | 7 | ReactDOM.render(, document.getElementById("root")); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: http://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /src/index.scss: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Playfair+Display|Roboto"); 2 | 3 | body { 4 | color: #444; 5 | font-family: 'Roboto', sans-serif; 6 | font-size: 20px; 7 | } 8 | 9 | ::-moz-selection { 10 | background-color: paleturquoise; 11 | } 12 | 13 | ::selection { 14 | background-color: paleturquoise; 15 | } 16 | -------------------------------------------------------------------------------- /src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/serviceWorker.js: -------------------------------------------------------------------------------- 1 | // This optional code is used to register a service worker. 2 | // register() is not called by default. 3 | 4 | // This lets the app load faster on subsequent visits in production, and gives 5 | // it offline capabilities. However, it also means that developers (and users) 6 | // will only see deployed updates on subsequent visits to a page, after all the 7 | // existing tabs open on the page have been closed, since previously cached 8 | // resources are updated in the background. 9 | 10 | // To learn more about the benefits of this model and instructions on how to 11 | // opt-in, read http://bit.ly/CRA-PWA. 12 | 13 | const isLocalhost = Boolean( 14 | window.location.hostname === 'localhost' || 15 | // [::1] is the IPv6 localhost address. 16 | window.location.hostname === '[::1]' || 17 | // 127.0.0.1/8 is considered localhost for IPv4. 18 | window.location.hostname.match( 19 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 20 | ) 21 | ) 22 | 23 | export function register (config) { 24 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 25 | // The URL constructor is available in all browsers that support SW. 26 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location) 27 | if (publicUrl.origin !== window.location.origin) { 28 | // Our service worker won't work if PUBLIC_URL is on a different origin 29 | // from what our page is served on. This might happen if a CDN is used to 30 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374 31 | return 32 | } 33 | 34 | window.addEventListener('load', () => { 35 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` 36 | 37 | if (isLocalhost) { 38 | // This is running on localhost. Let's check if a service worker still exists or not. 39 | checkValidServiceWorker(swUrl, config) 40 | 41 | // Add some additional logging to localhost, pointing developers to the 42 | // service worker/PWA documentation. 43 | navigator.serviceWorker.ready.then(() => { 44 | console.log( 45 | 'This web app is being served cache-first by a service ' + 46 | 'worker. To learn more, visit http://bit.ly/CRA-PWA' 47 | ) 48 | }) 49 | } else { 50 | // Is not localhost. Just register service worker 51 | registerValidSW(swUrl, config) 52 | } 53 | }) 54 | } 55 | } 56 | 57 | function registerValidSW (swUrl, config) { 58 | navigator.serviceWorker 59 | .register(swUrl) 60 | .then(registration => { 61 | registration.onupdatefound = () => { 62 | const installingWorker = registration.installing 63 | installingWorker.onstatechange = () => { 64 | if (installingWorker.state === 'installed') { 65 | if (navigator.serviceWorker.controller) { 66 | // At this point, the updated precached content has been fetched, 67 | // but the previous service worker will still serve the older 68 | // content until all client tabs are closed. 69 | console.log( 70 | 'New content is available and will be used when all ' + 71 | 'tabs for this page are closed. See http://bit.ly/CRA-PWA.' 72 | ) 73 | 74 | // Execute callback 75 | if (config && config.onUpdate) { 76 | config.onUpdate(registration) 77 | } 78 | } else { 79 | // At this point, everything has been precached. 80 | // It's the perfect time to display a 81 | // "Content is cached for offline use." message. 82 | console.log('Content is cached for offline use.') 83 | 84 | // Execute callback 85 | if (config && config.onSuccess) { 86 | config.onSuccess(registration) 87 | } 88 | } 89 | } 90 | } 91 | } 92 | }) 93 | .catch(error => { 94 | console.error('Error during service worker registration:', error) 95 | }) 96 | } 97 | 98 | function checkValidServiceWorker (swUrl, config) { 99 | // Check if the service worker can be found. If it can't reload the page. 100 | fetch(swUrl) 101 | .then(response => { 102 | // Ensure service worker exists, and that we really are getting a JS file. 103 | if ( 104 | response.status === 404 || 105 | response.headers.get('content-type').indexOf('javascript') === -1 106 | ) { 107 | // No service worker found. Probably a different app. Reload the page. 108 | navigator.serviceWorker.ready.then(registration => { 109 | registration.unregister().then(() => { 110 | window.location.reload() 111 | }) 112 | }) 113 | } else { 114 | // Service worker found. Proceed as normal. 115 | registerValidSW(swUrl, config) 116 | } 117 | }) 118 | .catch(() => { 119 | console.log( 120 | 'No internet connection found. App is running in offline mode.' 121 | ) 122 | }) 123 | } 124 | 125 | export function unregister () { 126 | if ('serviceWorker' in navigator) { 127 | navigator.serviceWorker.ready.then(registration => { 128 | registration.unregister() 129 | }) 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /src/setupTests.js: -------------------------------------------------------------------------------- 1 | import * as jestEnv from 'jest-environment-enzyme'; 2 | 3 | import { configure } from 'enzyme'; 4 | import Adapter from 'enzyme-adapter-react-16'; 5 | 6 | configure({ adapter: new Adapter() }); 7 | -------------------------------------------------------------------------------- /src/specs/Main.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import App from '../App' 3 | import renderer from 'react-test-renderer' 4 | import { shallow } from 'enzyme' 5 | import Profiles from '../Profiles' 6 | jest.mock('../data') 7 | 8 | describe('The application', () => { 9 | let data 10 | beforeAll(() => { 11 | data = require('../data.json') 12 | }) 13 | 14 | it('should render without crashing', () => { 15 | renderer.create() 16 | }) 17 | 18 | it('should allow shallow rendering', () => { 19 | data[0] = { 20 | id: 'recWhmTAXi2OjNN2R', 21 | fields: { 22 | Name: 'Ali Spittel', 23 | Tags: ['WebDev', 'Design', 'JavaScript', 'CSS', 'Python'], 24 | Blog: 'https://zen-of-programming.com', 25 | Website: 'https://alispit.tel', 26 | About: 27 | "Ali's blog The Zen of Programming is a set of resources that she wishes she had when she was learning to code, including code and design tutorials, motivational posts, and life updates.\n", 28 | Published: true, 29 | slug: 'ali-spittel', 30 | Newsletter: 'https://tinyletter.com/ali_writes_code', 31 | Dev: 'https://dev.to/aspittel' 32 | }, 33 | createdTime: '2018-09-06T22:03:29.000Z' 34 | } 35 | expect(shallow()).toMatchInlineSnapshot(` 36 | 37 |
40 |

41 | Filter by technology 42 |

43 |
46 | 86 |
87 |
88 |
91 | 118 |
119 |
120 | `) 121 | }) 122 | }) 123 | -------------------------------------------------------------------------------- /temp.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "_table": { 4 | "_base": { 5 | "_airtable": { 6 | "_apiKey": "keyFlwf9V8UuM5IC1", 7 | "_endpointUrl": "https://api.airtable.com", 8 | "_apiVersion": "0.1.0", 9 | "_apiVersionMajor": "0", 10 | "_allowUnauthorizedSsl": false, 11 | "_noRetryIfRateLimited": false, 12 | "requestTimeout": 300000 13 | }, 14 | "_id": "appyahDjTyD3MR0tU" 15 | }, 16 | "id": null, 17 | "name": "Data" 18 | }, 19 | "id": "recWhmTAXi2OjNN2R", 20 | "_rawJson": { 21 | "id": "recWhmTAXi2OjNN2R", 22 | "fields": { 23 | "Name": "Ali Spittel", 24 | "Tags": ["WebDev", "Design", "JavaScript", "CSS", "Python"], 25 | "Blog": "https://zen-of-programming.com", 26 | "Website": "https://alispit.tel", 27 | "About": "Ali's blog The Zen of Programming is a set of resources that she wishes she had when she was learning to code, including code and design tutorials, motivational posts, and life updates.\n", 28 | "Published": true, 29 | "slug": "ali-spittel", 30 | "Newsletter": "https://tinyletter.com/ali_writes_code", 31 | "Image": [ 32 | { 33 | "id": "attIOBwo35aiNjbpX", 34 | "url": "https://dl.airtable.com/nqocZpRButvXs9ch5vbw_selfiesquare.jpg", 35 | "filename": "selfiesquare.jpg", 36 | "size": 224297, 37 | "type": "image/jpeg", 38 | "thumbnails": { 39 | "small": { 40 | "url": "https://dl.airtable.com/PCGOkMDZSvOXPgxBzIXB_small_selfiesquare.jpg", 41 | "width": 36, 42 | "height": 36 43 | }, 44 | "large": { 45 | "url": "https://dl.airtable.com/Tf1WIoCcQLGQSsDEIGXs_large_selfiesquare.jpg", 46 | "width": 512, 47 | "height": 512 48 | }, 49 | "full": { 50 | "url": "https://dl.airtable.com/hFKaVzzuToWOyaxjgxGh_full_selfiesquare.jpg", 51 | "width": 1341, 52 | "height": 1340 53 | } 54 | } 55 | } 56 | ], 57 | "Dev": "https://dev.to/aspittel" 58 | }, 59 | "createdTime": "2018-09-06T22:03:29.000Z" 60 | }, 61 | "fields": { 62 | "Name": "Ali Spittel", 63 | "Tags": ["WebDev", "Design", "JavaScript", "CSS", "Python"], 64 | "Blog": "https://zen-of-programming.com", 65 | "Website": "https://alispit.tel", 66 | "About": "Ali's blog The Zen of Programming is a set of resources that she wishes she had when she was learning to code, including code and design tutorials, motivational posts, and life updates.\n", 67 | "Published": true, 68 | "slug": "ali-spittel", 69 | "Newsletter": "https://tinyletter.com/ali_writes_code", 70 | "Image": [ 71 | { 72 | "id": "attIOBwo35aiNjbpX", 73 | "url": "https://dl.airtable.com/nqocZpRButvXs9ch5vbw_selfiesquare.jpg", 74 | "filename": "selfiesquare.jpg", 75 | "size": 224297, 76 | "type": "image/jpeg", 77 | "thumbnails": { 78 | "small": { 79 | "url": "https://dl.airtable.com/PCGOkMDZSvOXPgxBzIXB_small_selfiesquare.jpg", 80 | "width": 36, 81 | "height": 36 82 | }, 83 | "large": { 84 | "url": "https://dl.airtable.com/Tf1WIoCcQLGQSsDEIGXs_large_selfiesquare.jpg", 85 | "width": 512, 86 | "height": 512 87 | }, 88 | "full": { 89 | "url": "https://dl.airtable.com/hFKaVzzuToWOyaxjgxGh_full_selfiesquare.jpg", 90 | "width": 1341, 91 | "height": 1340 92 | } 93 | } 94 | } 95 | ], 96 | "Dev": "https://dev.to/aspittel" 97 | } 98 | }, 99 | { 100 | "_table": { 101 | "_base": { 102 | "_airtable": { 103 | "_apiKey": "keyFlwf9V8UuM5IC1", 104 | "_endpointUrl": "https://api.airtable.com", 105 | "_apiVersion": "0.1.0", 106 | "_apiVersionMajor": "0", 107 | "_allowUnauthorizedSsl": false, 108 | "_noRetryIfRateLimited": false, 109 | "requestTimeout": 300000 110 | }, 111 | "_id": "appyahDjTyD3MR0tU" 112 | }, 113 | "id": null, 114 | "name": "Data" 115 | }, 116 | "id": "recSCs0qSkc8pSd6r", 117 | "_rawJson": { 118 | "id": "recSCs0qSkc8pSd6r", 119 | "fields": { 120 | "Name": "Arit Amana", 121 | "Tags": ["WebDev", "JavaScript"], 122 | "Blog": "https://medium.com/@msarit", 123 | "About": "As a developer, Arit's passion is two-fold: (1) empowering businesses, companies and organizations achieve their goals and bottom-line by leveraging her tech skills (2) inspiring, encouraging and mentoring other developers, particularly those less represented in the tech space.\n", 124 | "Published": true, 125 | "slug": "arit-amana", 126 | "Image": [ 127 | { 128 | "id": "att7l8b5bvABvK762", 129 | "url": "https://dl.airtable.com/b8Ajl8lJSEO8m4U9Jzqg_pic%20for%20resume.jpg", 130 | "filename": "pic for resume.jpg", 131 | "size": 908584, 132 | "type": "image/jpeg", 133 | "thumbnails": { 134 | "small": { 135 | "url": "https://dl.airtable.com/3udjIBypTOSBTB51XOGu_small_pic%20for%20resume.jpg", 136 | "width": 36, 137 | "height": 36 138 | }, 139 | "large": { 140 | "url": "https://dl.airtable.com/TMz45N5lT5GRFacp8MI4_large_pic%20for%20resume.jpg", 141 | "width": 512, 142 | "height": 512 143 | }, 144 | "full": { 145 | "url": "https://dl.airtable.com/vboQnG5BSbC5fZWZyJgO_full_pic%20for%20resume.jpg", 146 | "width": 1440, 147 | "height": 1440 148 | } 149 | } 150 | } 151 | ] 152 | }, 153 | "createdTime": "2018-09-12T14:17:30.000Z" 154 | }, 155 | "fields": { 156 | "Name": "Arit Amana", 157 | "Tags": ["WebDev", "JavaScript"], 158 | "Blog": "https://medium.com/@msarit", 159 | "About": "As a developer, Arit's passion is two-fold: (1) empowering businesses, companies and organizations achieve their goals and bottom-line by leveraging her tech skills (2) inspiring, encouraging and mentoring other developers, particularly those less represented in the tech space.\n", 160 | "Published": true, 161 | "slug": "arit-amana", 162 | "Image": [ 163 | { 164 | "id": "att7l8b5bvABvK762", 165 | "url": "https://dl.airtable.com/b8Ajl8lJSEO8m4U9Jzqg_pic%20for%20resume.jpg", 166 | "filename": "pic for resume.jpg", 167 | "size": 908584, 168 | "type": "image/jpeg", 169 | "thumbnails": { 170 | "small": { 171 | "url": "https://dl.airtable.com/3udjIBypTOSBTB51XOGu_small_pic%20for%20resume.jpg", 172 | "width": 36, 173 | "height": 36 174 | }, 175 | "large": { 176 | "url": "https://dl.airtable.com/TMz45N5lT5GRFacp8MI4_large_pic%20for%20resume.jpg", 177 | "width": 512, 178 | "height": 512 179 | }, 180 | "full": { 181 | "url": "https://dl.airtable.com/vboQnG5BSbC5fZWZyJgO_full_pic%20for%20resume.jpg", 182 | "width": 1440, 183 | "height": 1440 184 | } 185 | } 186 | } 187 | ] 188 | } 189 | }, 190 | { 191 | "_table": { 192 | "_base": { 193 | "_airtable": { 194 | "_apiKey": "keyFlwf9V8UuM5IC1", 195 | "_endpointUrl": "https://api.airtable.com", 196 | "_apiVersion": "0.1.0", 197 | "_apiVersionMajor": "0", 198 | "_allowUnauthorizedSsl": false, 199 | "_noRetryIfRateLimited": false, 200 | "requestTimeout": 300000 201 | }, 202 | "_id": "appyahDjTyD3MR0tU" 203 | }, 204 | "id": null, 205 | "name": "Data" 206 | }, 207 | "id": "reciyS34zeGtsWL6v", 208 | "_rawJson": { 209 | "id": "reciyS34zeGtsWL6v", 210 | "fields": { 211 | "Name": "Emma Wedekind", 212 | "Tags": ["WebDev", "JavaScript", "CSS", "Design"], 213 | "Blog": "https://www.medium.com/@emmawedekind", 214 | "About": "Emma is a Software Engineer at LogMeIn I’m Germany and enjoys blogging about everything design, and front-end development. ", 215 | "Published": true, 216 | "slug": "emma-wedekind", 217 | "Image": [ 218 | { 219 | "id": "attV0U2VV379SdH8O", 220 | "url": "https://dl.airtable.com/cfjFVRV7RoKVKkF9Gd3k_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 221 | "filename": "2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 222 | "size": 215370, 223 | "type": "image/jpeg", 224 | "thumbnails": { 225 | "small": { 226 | "url": "https://dl.airtable.com/6qUPZZFLTQea3sJCiDOv_small_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 227 | "width": 33, 228 | "height": 36 229 | }, 230 | "large": { 231 | "url": "https://dl.airtable.com/CQSsqvaKRamxYSM6ugfn_large_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 232 | "width": 512, 233 | "height": 560 234 | }, 235 | "full": { 236 | "url": "https://dl.airtable.com/M7mzk8SLSi6U89BXdkMN_full_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 237 | "width": 1138, 238 | "height": 1245 239 | } 240 | } 241 | } 242 | ] 243 | }, 244 | "createdTime": "2018-09-16T19:15:19.000Z" 245 | }, 246 | "fields": { 247 | "Name": "Emma Wedekind", 248 | "Tags": ["WebDev", "JavaScript", "CSS", "Design"], 249 | "Blog": "https://www.medium.com/@emmawedekind", 250 | "About": "Emma is a Software Engineer at LogMeIn I’m Germany and enjoys blogging about everything design, and front-end development. ", 251 | "Published": true, 252 | "slug": "emma-wedekind", 253 | "Image": [ 254 | { 255 | "id": "attV0U2VV379SdH8O", 256 | "url": "https://dl.airtable.com/cfjFVRV7RoKVKkF9Gd3k_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 257 | "filename": "2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 258 | "size": 215370, 259 | "type": "image/jpeg", 260 | "thumbnails": { 261 | "small": { 262 | "url": "https://dl.airtable.com/6qUPZZFLTQea3sJCiDOv_small_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 263 | "width": 33, 264 | "height": 36 265 | }, 266 | "large": { 267 | "url": "https://dl.airtable.com/CQSsqvaKRamxYSM6ugfn_large_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 268 | "width": 512, 269 | "height": 560 270 | }, 271 | "full": { 272 | "url": "https://dl.airtable.com/M7mzk8SLSi6U89BXdkMN_full_2E682F13-24A8-429F-9328-619927BFAABA.jpeg", 273 | "width": 1138, 274 | "height": 1245 275 | } 276 | } 277 | } 278 | ] 279 | } 280 | }, 281 | { 282 | "_table": { 283 | "_base": { 284 | "_airtable": { 285 | "_apiKey": "keyFlwf9V8UuM5IC1", 286 | "_endpointUrl": "https://api.airtable.com", 287 | "_apiVersion": "0.1.0", 288 | "_apiVersionMajor": "0", 289 | "_allowUnauthorizedSsl": false, 290 | "_noRetryIfRateLimited": false, 291 | "requestTimeout": 300000 292 | }, 293 | "_id": "appyahDjTyD3MR0tU" 294 | }, 295 | "id": null, 296 | "name": "Data" 297 | }, 298 | "id": "recqgVk51yWmZnfhq", 299 | "_rawJson": { 300 | "id": "recqgVk51yWmZnfhq", 301 | "fields": { 302 | "Name": "Code with Veni", 303 | "Tags": ["WebDev", "Data Science", "Python", "JavaScript"], 304 | "Blog": "http://codewithveni.com", 305 | "About": "A newsletter for women & enbies in tech. Get hand picked selection of great articles on coding, finding your first job as well as advice from women in the field.", 306 | "Published": true, 307 | "slug": "code-with-veni", 308 | "Newsletter": "http://codewithveni.com", 309 | "Image": [ 310 | { 311 | "id": "attYa4iL09e0bYEUi", 312 | "url": "https://dl.airtable.com/A8zklLFSQHaR0mzWkBbQ_cover_photo_orig.jpg", 313 | "filename": "cover_photo_orig.jpg", 314 | "size": 385962, 315 | "type": "image/jpeg", 316 | "thumbnails": { 317 | "small": { 318 | "url": "https://dl.airtable.com/H48LcifbRLqomwARKk7m_small_cover_photo_orig.jpg", 319 | "width": 108, 320 | "height": 36 321 | }, 322 | "large": { 323 | "url": "https://dl.airtable.com/mnf0hyYRPuidvXthlBi3_large_cover_photo_orig.jpg", 324 | "width": 1532, 325 | "height": 512 326 | }, 327 | "full": { 328 | "url": "https://dl.airtable.com/oAQE1t3HQgiHIvEkUWU5_full_cover_photo_orig.jpg", 329 | "width": 2005, 330 | "height": 670 331 | } 332 | } 333 | } 334 | ] 335 | }, 336 | "createdTime": "2018-09-16T19:40:35.000Z" 337 | }, 338 | "fields": { 339 | "Name": "Code with Veni", 340 | "Tags": ["WebDev", "Data Science", "Python", "JavaScript"], 341 | "Blog": "http://codewithveni.com", 342 | "About": "A newsletter for women & enbies in tech. Get hand picked selection of great articles on coding, finding your first job as well as advice from women in the field.", 343 | "Published": true, 344 | "slug": "code-with-veni", 345 | "Newsletter": "http://codewithveni.com", 346 | "Image": [ 347 | { 348 | "id": "attYa4iL09e0bYEUi", 349 | "url": "https://dl.airtable.com/A8zklLFSQHaR0mzWkBbQ_cover_photo_orig.jpg", 350 | "filename": "cover_photo_orig.jpg", 351 | "size": 385962, 352 | "type": "image/jpeg", 353 | "thumbnails": { 354 | "small": { 355 | "url": "https://dl.airtable.com/H48LcifbRLqomwARKk7m_small_cover_photo_orig.jpg", 356 | "width": 108, 357 | "height": 36 358 | }, 359 | "large": { 360 | "url": "https://dl.airtable.com/mnf0hyYRPuidvXthlBi3_large_cover_photo_orig.jpg", 361 | "width": 1532, 362 | "height": 512 363 | }, 364 | "full": { 365 | "url": "https://dl.airtable.com/oAQE1t3HQgiHIvEkUWU5_full_cover_photo_orig.jpg", 366 | "width": 2005, 367 | "height": 670 368 | } 369 | } 370 | } 371 | ] 372 | } 373 | }, 374 | { 375 | "_table": { 376 | "_base": { 377 | "_airtable": { 378 | "_apiKey": "keyFlwf9V8UuM5IC1", 379 | "_endpointUrl": "https://api.airtable.com", 380 | "_apiVersion": "0.1.0", 381 | "_apiVersionMajor": "0", 382 | "_allowUnauthorizedSsl": false, 383 | "_noRetryIfRateLimited": false, 384 | "requestTimeout": 300000 385 | }, 386 | "_id": "appyahDjTyD3MR0tU" 387 | }, 388 | "id": null, 389 | "name": "Data" 390 | }, 391 | "id": "recgnwTRHpAse6sKu", 392 | "_rawJson": { 393 | "id": "recgnwTRHpAse6sKu", 394 | "fields": { 395 | "Name": "Coding Commanders ", 396 | "Tags": ["WebDev", "JavaScript", "CSS"], 397 | "Blog": "http://www.codingcommanders.com", 398 | "YouTube": "https://www.youtube.com/channel/UC-gCUMK_EGUqJ7P9VA7BJmQ", 399 | "About": "Coding Commanders has easy to follow Web Development tutorials that assume no prior knowledge. ", 400 | "Published": true, 401 | "slug": "coding-commanders", 402 | "Image": [ 403 | { 404 | "id": "atteAEfuJKoO2QlGv", 405 | "url": "https://dl.airtable.com/oh74pkIQeGi9ohDSQb0s_logo_resize.png", 406 | "filename": "logo_resize.png", 407 | "size": 86552, 408 | "type": "image/png", 409 | "thumbnails": { 410 | "small": { 411 | "url": "https://dl.airtable.com/loPZ6Y2ERZkGlPitLjok_small_logo_resize.png", 412 | "width": 51, 413 | "height": 36 414 | }, 415 | "large": { 416 | "url": "https://dl.airtable.com/zYQbbLmQseaqGul1wxwl_large_logo_resize.png", 417 | "width": 320, 418 | "height": 226 419 | }, 420 | "full": { 421 | "url": "https://dl.airtable.com/w1AUWs7lRBS9lej3s7ir_full_logo_resize.png", 422 | "width": 320, 423 | "height": 226 424 | } 425 | } 426 | } 427 | ] 428 | }, 429 | "createdTime": "2018-09-19T14:31:49.000Z" 430 | }, 431 | "fields": { 432 | "Name": "Coding Commanders ", 433 | "Tags": ["WebDev", "JavaScript", "CSS"], 434 | "Blog": "http://www.codingcommanders.com", 435 | "YouTube": "https://www.youtube.com/channel/UC-gCUMK_EGUqJ7P9VA7BJmQ", 436 | "About": "Coding Commanders has easy to follow Web Development tutorials that assume no prior knowledge. ", 437 | "Published": true, 438 | "slug": "coding-commanders", 439 | "Image": [ 440 | { 441 | "id": "atteAEfuJKoO2QlGv", 442 | "url": "https://dl.airtable.com/oh74pkIQeGi9ohDSQb0s_logo_resize.png", 443 | "filename": "logo_resize.png", 444 | "size": 86552, 445 | "type": "image/png", 446 | "thumbnails": { 447 | "small": { 448 | "url": "https://dl.airtable.com/loPZ6Y2ERZkGlPitLjok_small_logo_resize.png", 449 | "width": 51, 450 | "height": 36 451 | }, 452 | "large": { 453 | "url": "https://dl.airtable.com/zYQbbLmQseaqGul1wxwl_large_logo_resize.png", 454 | "width": 320, 455 | "height": 226 456 | }, 457 | "full": { 458 | "url": "https://dl.airtable.com/w1AUWs7lRBS9lej3s7ir_full_logo_resize.png", 459 | "width": 320, 460 | "height": 226 461 | } 462 | } 463 | } 464 | ] 465 | } 466 | }, 467 | { 468 | "_table": { 469 | "_base": { 470 | "_airtable": { 471 | "_apiKey": "keyFlwf9V8UuM5IC1", 472 | "_endpointUrl": "https://api.airtable.com", 473 | "_apiVersion": "0.1.0", 474 | "_apiVersionMajor": "0", 475 | "_allowUnauthorizedSsl": false, 476 | "_noRetryIfRateLimited": false, 477 | "requestTimeout": 300000 478 | }, 479 | "_id": "appyahDjTyD3MR0tU" 480 | }, 481 | "id": null, 482 | "name": "Data" 483 | }, 484 | "id": "recOVSnbpg5AGnIWY", 485 | "_rawJson": { 486 | "id": "recOVSnbpg5AGnIWY", 487 | "fields": { 488 | "Name": "Mahmoud Elmahdi", 489 | "Tags": ["JavaScript", "WebDev", "CSS", "Design"], 490 | "Blog": "https://elmahdim.com", 491 | "Website": "https://elmahdim.com", 492 | "About": "Development & UX/UI tutorials, and courses", 493 | "Published": true, 494 | "slug": "mahmoud-elmahdi", 495 | "Image": [ 496 | { 497 | "id": "attxsbYO960rVauR1", 498 | "url": "https://dl.airtable.com/QJIZcWpKQF6jDLfTwiD6_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 499 | "filename": "Optimized-IMG_20180510_180944 copy copy.jpg", 500 | "size": 332664, 501 | "type": "image/jpeg", 502 | "thumbnails": { 503 | "small": { 504 | "url": "https://dl.airtable.com/RtWlo9THQIqMiIEg9tNg_small_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 505 | "width": 36, 506 | "height": 36 507 | }, 508 | "large": { 509 | "url": "https://dl.airtable.com/r4CO0a51Ruq8AIGBCjBC_large_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 510 | "width": 512, 511 | "height": 519 512 | }, 513 | "full": { 514 | "url": "https://dl.airtable.com/0uPi7SFvTU0bjsEUf1FI_full_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 515 | "width": 888, 516 | "height": 900 517 | } 518 | } 519 | } 520 | ], 521 | "Dev": "https://dev.to/_elmahdim" 522 | }, 523 | "createdTime": "2018-09-19T15:47:10.000Z" 524 | }, 525 | "fields": { 526 | "Name": "Mahmoud Elmahdi", 527 | "Tags": ["JavaScript", "WebDev", "CSS", "Design"], 528 | "Blog": "https://elmahdim.com", 529 | "Website": "https://elmahdim.com", 530 | "About": "Development & UX/UI tutorials, and courses", 531 | "Published": true, 532 | "slug": "mahmoud-elmahdi", 533 | "Image": [ 534 | { 535 | "id": "attxsbYO960rVauR1", 536 | "url": "https://dl.airtable.com/QJIZcWpKQF6jDLfTwiD6_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 537 | "filename": "Optimized-IMG_20180510_180944 copy copy.jpg", 538 | "size": 332664, 539 | "type": "image/jpeg", 540 | "thumbnails": { 541 | "small": { 542 | "url": "https://dl.airtable.com/RtWlo9THQIqMiIEg9tNg_small_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 543 | "width": 36, 544 | "height": 36 545 | }, 546 | "large": { 547 | "url": "https://dl.airtable.com/r4CO0a51Ruq8AIGBCjBC_large_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 548 | "width": 512, 549 | "height": 519 550 | }, 551 | "full": { 552 | "url": "https://dl.airtable.com/0uPi7SFvTU0bjsEUf1FI_full_Optimized-IMG_20180510_180944%20copy%20copy.jpg", 553 | "width": 888, 554 | "height": 900 555 | } 556 | } 557 | } 558 | ], 559 | "Dev": "https://dev.to/_elmahdim" 560 | } 561 | }, 562 | { 563 | "_table": { 564 | "_base": { 565 | "_airtable": { 566 | "_apiKey": "keyFlwf9V8UuM5IC1", 567 | "_endpointUrl": "https://api.airtable.com", 568 | "_apiVersion": "0.1.0", 569 | "_apiVersionMajor": "0", 570 | "_allowUnauthorizedSsl": false, 571 | "_noRetryIfRateLimited": false, 572 | "requestTimeout": 300000 573 | }, 574 | "_id": "appyahDjTyD3MR0tU" 575 | }, 576 | "id": null, 577 | "name": "Data" 578 | }, 579 | "id": "recq2X0TR6Ljv8OF7", 580 | "_rawJson": { 581 | "id": "recq2X0TR6Ljv8OF7", 582 | "fields": { 583 | "Name": "Ahmad Awais", 584 | "Tags": ["WebDev", "JavaScript", "CSS"], 585 | "Blog": "https://AhmadAwais.com/", 586 | "YouTube": "https://www.youtube.com/AhmadAwais", 587 | "About": "🥑 Open Source DevRels ❯ Ridiculously hard-working Web Dev ❯ WordPress Core Dev ❯ TEDx Speaker ❯ JS/DevOps fanboy ❯ Cracks silly jokes ❯ Loves his wife @MaedahBatool + 🍕", 588 | "Published": true, 589 | "slug": "ahmad-awais", 590 | "Newsletter": "https://dev.to/mrahmadawais", 591 | "Image": [ 592 | { 593 | "id": "att4FOEx712498Rf3", 594 | "url": "https://dl.airtable.com/TWSpjJ1RSb6kSLOSCy7w__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 595 | "filename": "_Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 596 | "size": 13555, 597 | "type": "image/jpeg", 598 | "thumbnails": { 599 | "small": { 600 | "url": "https://dl.airtable.com/NSeuA4S7QQm7YnnNZlp2_small__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 601 | "width": 36, 602 | "height": 36 603 | }, 604 | "large": { 605 | "url": "https://dl.airtable.com/spbvYBXQfmM3FGfLUigM_large__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 606 | "width": 250, 607 | "height": 250 608 | }, 609 | "full": { 610 | "url": "https://dl.airtable.com/dsNURKYRL2fIB2uUheeQ_full__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 611 | "width": 250, 612 | "height": 250 613 | } 614 | } 615 | } 616 | ], 617 | "Dev": "https://dev.to/mrahmadawais" 618 | }, 619 | "createdTime": "2018-09-19T19:22:59.000Z" 620 | }, 621 | "fields": { 622 | "Name": "Ahmad Awais", 623 | "Tags": ["WebDev", "JavaScript", "CSS"], 624 | "Blog": "https://AhmadAwais.com/", 625 | "YouTube": "https://www.youtube.com/AhmadAwais", 626 | "About": "🥑 Open Source DevRels ❯ Ridiculously hard-working Web Dev ❯ WordPress Core Dev ❯ TEDx Speaker ❯ JS/DevOps fanboy ❯ Cracks silly jokes ❯ Loves his wife @MaedahBatool + 🍕", 627 | "Published": true, 628 | "slug": "ahmad-awais", 629 | "Newsletter": "https://dev.to/mrahmadawais", 630 | "Image": [ 631 | { 632 | "id": "att4FOEx712498Rf3", 633 | "url": "https://dl.airtable.com/TWSpjJ1RSb6kSLOSCy7w__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 634 | "filename": "_Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 635 | "size": 13555, 636 | "type": "image/jpeg", 637 | "thumbnails": { 638 | "small": { 639 | "url": "https://dl.airtable.com/NSeuA4S7QQm7YnnNZlp2_small__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 640 | "width": 36, 641 | "height": 36 642 | }, 643 | "large": { 644 | "url": "https://dl.airtable.com/spbvYBXQfmM3FGfLUigM_large__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 645 | "width": 250, 646 | "height": 250 647 | }, 648 | "full": { 649 | "url": "https://dl.airtable.com/dsNURKYRL2fIB2uUheeQ_full__Ahmad_Awais_TED_Speaker_Speech_Blogging_Alternate_Career_Path_DP_Blurrpurpule.jpg", 650 | "width": 250, 651 | "height": 250 652 | } 653 | } 654 | } 655 | ], 656 | "Dev": "https://dev.to/mrahmadawais" 657 | } 658 | }, 659 | { 660 | "_table": { 661 | "_base": { 662 | "_airtable": { 663 | "_apiKey": "keyFlwf9V8UuM5IC1", 664 | "_endpointUrl": "https://api.airtable.com", 665 | "_apiVersion": "0.1.0", 666 | "_apiVersionMajor": "0", 667 | "_allowUnauthorizedSsl": false, 668 | "_noRetryIfRateLimited": false, 669 | "requestTimeout": 300000 670 | }, 671 | "_id": "appyahDjTyD3MR0tU" 672 | }, 673 | "id": null, 674 | "name": "Data" 675 | }, 676 | "id": "recp2kPPJRhXST5Qh", 677 | "_rawJson": { 678 | "id": "recp2kPPJRhXST5Qh", 679 | "fields": { 680 | "Name": "Nick Karnik", 681 | "Tags": [ 682 | "WebDev", 683 | "JavaScript", 684 | ".NET", 685 | "C++", 686 | "Python", 687 | "Data Science" 688 | ], 689 | "Blog": "https://nick.karnik.io/", 690 | "YouTube": "http://youtube.karnik.io", 691 | "Website": "https://twitter.com/theoutlander", 692 | "About": "Tutorials about Web Development, Software Engineering, Computer Science, Career in Tech, and Startups.\n\nYou can learn more about me @ http://linkedin.com/in/theoutlander.", 693 | "Published": true, 694 | "slug": "nick-karnik", 695 | "Image": [ 696 | { 697 | "id": "attW4ZlcZHMYH93as", 698 | "url": "https://dl.airtable.com/BzotvehSTaNSNtwpoGc3_neo_square.jpg", 699 | "filename": "neo_square.jpg", 700 | "size": 299328, 701 | "type": "image/jpeg", 702 | "thumbnails": { 703 | "small": { 704 | "url": "https://dl.airtable.com/sfRgzI1YRISJ6oCTVpa8_small_neo_square.jpg", 705 | "width": 47, 706 | "height": 36 707 | }, 708 | "large": { 709 | "url": "https://dl.airtable.com/nQ8bJM5ToC3qS3Is3gAV_large_neo_square.jpg", 710 | "width": 666, 711 | "height": 512 712 | }, 713 | "full": { 714 | "url": "https://dl.airtable.com/b0UUKbOSOCLWds1dMxWg_full_neo_square.jpg", 715 | "width": 1040, 716 | "height": 800 717 | } 718 | } 719 | } 720 | ], 721 | "Dev": "https://dev.to/theoutlander" 722 | }, 723 | "createdTime": "2018-09-19T20:44:21.000Z" 724 | }, 725 | "fields": { 726 | "Name": "Nick Karnik", 727 | "Tags": ["WebDev", "JavaScript", ".NET", "C++", "Python", "Data Science"], 728 | "Blog": "https://nick.karnik.io/", 729 | "YouTube": "http://youtube.karnik.io", 730 | "Website": "https://twitter.com/theoutlander", 731 | "About": "Tutorials about Web Development, Software Engineering, Computer Science, Career in Tech, and Startups.\n\nYou can learn more about me @ http://linkedin.com/in/theoutlander.", 732 | "Published": true, 733 | "slug": "nick-karnik", 734 | "Image": [ 735 | { 736 | "id": "attW4ZlcZHMYH93as", 737 | "url": "https://dl.airtable.com/BzotvehSTaNSNtwpoGc3_neo_square.jpg", 738 | "filename": "neo_square.jpg", 739 | "size": 299328, 740 | "type": "image/jpeg", 741 | "thumbnails": { 742 | "small": { 743 | "url": "https://dl.airtable.com/sfRgzI1YRISJ6oCTVpa8_small_neo_square.jpg", 744 | "width": 47, 745 | "height": 36 746 | }, 747 | "large": { 748 | "url": "https://dl.airtable.com/nQ8bJM5ToC3qS3Is3gAV_large_neo_square.jpg", 749 | "width": 666, 750 | "height": 512 751 | }, 752 | "full": { 753 | "url": "https://dl.airtable.com/b0UUKbOSOCLWds1dMxWg_full_neo_square.jpg", 754 | "width": 1040, 755 | "height": 800 756 | } 757 | } 758 | } 759 | ], 760 | "Dev": "https://dev.to/theoutlander" 761 | } 762 | }, 763 | { 764 | "_table": { 765 | "_base": { 766 | "_airtable": { 767 | "_apiKey": "keyFlwf9V8UuM5IC1", 768 | "_endpointUrl": "https://api.airtable.com", 769 | "_apiVersion": "0.1.0", 770 | "_apiVersionMajor": "0", 771 | "_allowUnauthorizedSsl": false, 772 | "_noRetryIfRateLimited": false, 773 | "requestTimeout": 300000 774 | }, 775 | "_id": "appyahDjTyD3MR0tU" 776 | }, 777 | "id": null, 778 | "name": "Data" 779 | }, 780 | "id": "recY1sbGD6RNWO6FF", 781 | "_rawJson": { 782 | "id": "recY1sbGD6RNWO6FF", 783 | "fields": { 784 | "Name": "Charlie Gerard", 785 | "Tags": ["WebDev", "JavaScript"], 786 | "Blog": "https://medium.com/@devdevcharlie", 787 | "Website": "https://charliegerard.github.io/", 788 | "About": "I love sharing what I learn from building prototypes with JavaScript, Arduino, Machine learning and AR/VR.", 789 | "Published": true, 790 | "slug": "charlie-gerard", 791 | "Image": [ 792 | { 793 | "id": "attxVjr02Z3q7dztA", 794 | "url": "https://dl.airtable.com/XIdIy6O4Rry5SLzPIMvT_Charlie_Gerard.png", 795 | "filename": "Charlie_Gerard.png", 796 | "size": 540889, 797 | "type": "image/png", 798 | "thumbnails": { 799 | "small": { 800 | "url": "https://dl.airtable.com/RB4ecDj8Q1mRTicRfvne_small_Charlie_Gerard.png", 801 | "width": 36, 802 | "height": 36 803 | }, 804 | "large": { 805 | "url": "https://dl.airtable.com/SxTZvlnJQLyNgBibvMSG_large_Charlie_Gerard.png", 806 | "width": 460, 807 | "height": 460 808 | }, 809 | "full": { 810 | "url": "https://dl.airtable.com/dUQkjazQ4y6Qb2aoIhiw_full_Charlie_Gerard.png", 811 | "width": 460, 812 | "height": 460 813 | } 814 | } 815 | } 816 | ] 817 | }, 818 | "createdTime": "2018-09-20T01:06:26.000Z" 819 | }, 820 | "fields": { 821 | "Name": "Charlie Gerard", 822 | "Tags": ["WebDev", "JavaScript"], 823 | "Blog": "https://medium.com/@devdevcharlie", 824 | "Website": "https://charliegerard.github.io/", 825 | "About": "I love sharing what I learn from building prototypes with JavaScript, Arduino, Machine learning and AR/VR.", 826 | "Published": true, 827 | "slug": "charlie-gerard", 828 | "Image": [ 829 | { 830 | "id": "attxVjr02Z3q7dztA", 831 | "url": "https://dl.airtable.com/XIdIy6O4Rry5SLzPIMvT_Charlie_Gerard.png", 832 | "filename": "Charlie_Gerard.png", 833 | "size": 540889, 834 | "type": "image/png", 835 | "thumbnails": { 836 | "small": { 837 | "url": "https://dl.airtable.com/RB4ecDj8Q1mRTicRfvne_small_Charlie_Gerard.png", 838 | "width": 36, 839 | "height": 36 840 | }, 841 | "large": { 842 | "url": "https://dl.airtable.com/SxTZvlnJQLyNgBibvMSG_large_Charlie_Gerard.png", 843 | "width": 460, 844 | "height": 460 845 | }, 846 | "full": { 847 | "url": "https://dl.airtable.com/dUQkjazQ4y6Qb2aoIhiw_full_Charlie_Gerard.png", 848 | "width": 460, 849 | "height": 460 850 | } 851 | } 852 | } 853 | ] 854 | } 855 | }, 856 | { 857 | "_table": { 858 | "_base": { 859 | "_airtable": { 860 | "_apiKey": "keyFlwf9V8UuM5IC1", 861 | "_endpointUrl": "https://api.airtable.com", 862 | "_apiVersion": "0.1.0", 863 | "_apiVersionMajor": "0", 864 | "_allowUnauthorizedSsl": false, 865 | "_noRetryIfRateLimited": false, 866 | "requestTimeout": 300000 867 | }, 868 | "_id": "appyahDjTyD3MR0tU" 869 | }, 870 | "id": null, 871 | "name": "Data" 872 | }, 873 | "id": "recgAfYx9Gt0JQMAf", 874 | "_rawJson": { 875 | "id": "recgAfYx9Gt0JQMAf", 876 | "fields": { 877 | "Name": "Heartbeat", 878 | "Tags": ["JavaScript", "WebDev"], 879 | "YouTube": "https://goo.gl/8p3msR", 880 | "About": "We build together a desktop app using NW.js and Vue.js (featuring also the use of Vuetify.js and some npm packages during the journey)", 881 | "Published": true, 882 | "slug": "heartbeat", 883 | "Image": [ 884 | { 885 | "id": "attcxgCogoze0gAXr", 886 | "url": "https://dl.airtable.com/U9QhQU2lR9yuaiF6Iuj1_courseBanner_squ.png", 887 | "filename": "courseBanner_squ.png", 888 | "size": 49900, 889 | "type": "image/png", 890 | "thumbnails": { 891 | "small": { 892 | "url": "https://dl.airtable.com/n9AVNFxlTZ2rlJ8zcSvg_small_courseBanner_squ.png", 893 | "width": 36, 894 | "height": 36 895 | }, 896 | "large": { 897 | "url": "https://dl.airtable.com/dWOYXtptRXyZAweSmZM5_large_courseBanner_squ.png", 898 | "width": 500, 899 | "height": 500 900 | }, 901 | "full": { 902 | "url": "https://dl.airtable.com/6g3Xb87TyUGY5N9OPk9g_full_courseBanner_squ.png", 903 | "width": 500, 904 | "height": 500 905 | } 906 | } 907 | } 908 | ] 909 | }, 910 | "createdTime": "2018-09-20T01:36:12.000Z" 911 | }, 912 | "fields": { 913 | "Name": "Heartbeat", 914 | "Tags": ["JavaScript", "WebDev"], 915 | "YouTube": "https://goo.gl/8p3msR", 916 | "About": "We build together a desktop app using NW.js and Vue.js (featuring also the use of Vuetify.js and some npm packages during the journey)", 917 | "Published": true, 918 | "slug": "heartbeat", 919 | "Image": [ 920 | { 921 | "id": "attcxgCogoze0gAXr", 922 | "url": "https://dl.airtable.com/U9QhQU2lR9yuaiF6Iuj1_courseBanner_squ.png", 923 | "filename": "courseBanner_squ.png", 924 | "size": 49900, 925 | "type": "image/png", 926 | "thumbnails": { 927 | "small": { 928 | "url": "https://dl.airtable.com/n9AVNFxlTZ2rlJ8zcSvg_small_courseBanner_squ.png", 929 | "width": 36, 930 | "height": 36 931 | }, 932 | "large": { 933 | "url": "https://dl.airtable.com/dWOYXtptRXyZAweSmZM5_large_courseBanner_squ.png", 934 | "width": 500, 935 | "height": 500 936 | }, 937 | "full": { 938 | "url": "https://dl.airtable.com/6g3Xb87TyUGY5N9OPk9g_full_courseBanner_squ.png", 939 | "width": 500, 940 | "height": 500 941 | } 942 | } 943 | } 944 | ] 945 | } 946 | }, 947 | { 948 | "_table": { 949 | "_base": { 950 | "_airtable": { 951 | "_apiKey": "keyFlwf9V8UuM5IC1", 952 | "_endpointUrl": "https://api.airtable.com", 953 | "_apiVersion": "0.1.0", 954 | "_apiVersionMajor": "0", 955 | "_allowUnauthorizedSsl": false, 956 | "_noRetryIfRateLimited": false, 957 | "requestTimeout": 300000 958 | }, 959 | "_id": "appyahDjTyD3MR0tU" 960 | }, 961 | "id": null, 962 | "name": "Data" 963 | }, 964 | "id": "recxN6ownk6vRQX9k", 965 | "_rawJson": { 966 | "id": "recxN6ownk6vRQX9k", 967 | "fields": { 968 | "Name": "Coding Woman", 969 | "Tags": [ 970 | "Data Science", 971 | "Machine Learning", 972 | "Deep Learning", 973 | "Computer Vision" 974 | ], 975 | "Blog": "http://www.codingwoman.com", 976 | "About": "Coding Woman is a blog to share anecdotes from the life of a woman studying Computer Engineering, while supporting Women in Tech to break stereotypes. It also consists of technical topics related to a Computer Engineering degree, as well as tech related news, and articles about Women in STEM.", 977 | "Published": true, 978 | "slug": "coding-woman", 979 | "Newsletter": "http://eepurl.com/dh8phb", 980 | "Image": [ 981 | { 982 | "id": "attSXUnyMsMNvLKap", 983 | "url": "https://dl.airtable.com/izJuWbMpRhii70XVsVVK_coding-woman-logo2.jpg", 984 | "filename": "coding-woman-logo2.jpg", 985 | "size": 581207, 986 | "type": "image/jpeg", 987 | "thumbnails": { 988 | "small": { 989 | "url": "https://dl.airtable.com/UhnWWlRCS8eYuiP1sTEZ_small_coding-woman-logo2.jpg", 990 | "width": 36, 991 | "height": 36 992 | }, 993 | "large": { 994 | "url": "https://dl.airtable.com/Dt1vemJtRUKYUoTB1qd7_large_coding-woman-logo2.jpg", 995 | "width": 512, 996 | "height": 512 997 | }, 998 | "full": { 999 | "url": "https://dl.airtable.com/kWb5hiY7Swaf5XLtCaCX_full_coding-woman-logo2.jpg", 1000 | "width": 2603, 1001 | "height": 2603 1002 | } 1003 | } 1004 | } 1005 | ] 1006 | }, 1007 | "createdTime": "2018-09-20T13:03:25.000Z" 1008 | }, 1009 | "fields": { 1010 | "Name": "Coding Woman", 1011 | "Tags": [ 1012 | "Data Science", 1013 | "Machine Learning", 1014 | "Deep Learning", 1015 | "Computer Vision" 1016 | ], 1017 | "Blog": "http://www.codingwoman.com", 1018 | "About": "Coding Woman is a blog to share anecdotes from the life of a woman studying Computer Engineering, while supporting Women in Tech to break stereotypes. It also consists of technical topics related to a Computer Engineering degree, as well as tech related news, and articles about Women in STEM.", 1019 | "Published": true, 1020 | "slug": "coding-woman", 1021 | "Newsletter": "http://eepurl.com/dh8phb", 1022 | "Image": [ 1023 | { 1024 | "id": "attSXUnyMsMNvLKap", 1025 | "url": "https://dl.airtable.com/izJuWbMpRhii70XVsVVK_coding-woman-logo2.jpg", 1026 | "filename": "coding-woman-logo2.jpg", 1027 | "size": 581207, 1028 | "type": "image/jpeg", 1029 | "thumbnails": { 1030 | "small": { 1031 | "url": "https://dl.airtable.com/UhnWWlRCS8eYuiP1sTEZ_small_coding-woman-logo2.jpg", 1032 | "width": 36, 1033 | "height": 36 1034 | }, 1035 | "large": { 1036 | "url": "https://dl.airtable.com/Dt1vemJtRUKYUoTB1qd7_large_coding-woman-logo2.jpg", 1037 | "width": 512, 1038 | "height": 512 1039 | }, 1040 | "full": { 1041 | "url": "https://dl.airtable.com/kWb5hiY7Swaf5XLtCaCX_full_coding-woman-logo2.jpg", 1042 | "width": 2603, 1043 | "height": 2603 1044 | } 1045 | } 1046 | } 1047 | ] 1048 | } 1049 | }, 1050 | { 1051 | "_table": { 1052 | "_base": { 1053 | "_airtable": { 1054 | "_apiKey": "keyFlwf9V8UuM5IC1", 1055 | "_endpointUrl": "https://api.airtable.com", 1056 | "_apiVersion": "0.1.0", 1057 | "_apiVersionMajor": "0", 1058 | "_allowUnauthorizedSsl": false, 1059 | "_noRetryIfRateLimited": false, 1060 | "requestTimeout": 300000 1061 | }, 1062 | "_id": "appyahDjTyD3MR0tU" 1063 | }, 1064 | "id": null, 1065 | "name": "Data" 1066 | }, 1067 | "id": "recrQojELm0A5wp1E", 1068 | "_rawJson": { 1069 | "id": "recrQojELm0A5wp1E", 1070 | "fields": { 1071 | "Name": "Amit Merchant", 1072 | "Tags": ["WebDev", "JavaScript", "Design"], 1073 | "Blog": "https://www.amitmerchant.com", 1074 | "About": "I'm basically posting about all things tech. i.e. JavaScript and PHP. The topics are mostly at the intersection of code and design and sometimes there are rants about certain topics as well.", 1075 | "Published": true, 1076 | "slug": "amit-merchant", 1077 | "Image": [ 1078 | { 1079 | "id": "atto2cLFLqbn0fOhH", 1080 | "url": "https://dl.airtable.com/izB9pRelTpa13SqsifGN_profile.jpg", 1081 | "filename": "profile.jpg", 1082 | "size": 27005, 1083 | "type": "image/jpeg", 1084 | "thumbnails": { 1085 | "small": { 1086 | "url": "https://dl.airtable.com/jh5K9mayQBZnJmJgNK4w_small_profile.jpg", 1087 | "width": 36, 1088 | "height": 36 1089 | }, 1090 | "large": { 1091 | "url": "https://dl.airtable.com/IcLr1TosQnWogAfQl9GW_large_profile.jpg", 1092 | "width": 320, 1093 | "height": 320 1094 | }, 1095 | "full": { 1096 | "url": "https://dl.airtable.com/QZgh9BIlQFa2FxGTuZnA_full_profile.jpg", 1097 | "width": 320, 1098 | "height": 320 1099 | } 1100 | } 1101 | } 1102 | ], 1103 | "Dev": "https://dev.to/amit_merchant" 1104 | }, 1105 | "createdTime": "2018-09-21T10:48:20.000Z" 1106 | }, 1107 | "fields": { 1108 | "Name": "Amit Merchant", 1109 | "Tags": ["WebDev", "JavaScript", "Design"], 1110 | "Blog": "https://www.amitmerchant.com", 1111 | "About": "I'm basically posting about all things tech. i.e. JavaScript and PHP. The topics are mostly at the intersection of code and design and sometimes there are rants about certain topics as well.", 1112 | "Published": true, 1113 | "slug": "amit-merchant", 1114 | "Image": [ 1115 | { 1116 | "id": "atto2cLFLqbn0fOhH", 1117 | "url": "https://dl.airtable.com/izB9pRelTpa13SqsifGN_profile.jpg", 1118 | "filename": "profile.jpg", 1119 | "size": 27005, 1120 | "type": "image/jpeg", 1121 | "thumbnails": { 1122 | "small": { 1123 | "url": "https://dl.airtable.com/jh5K9mayQBZnJmJgNK4w_small_profile.jpg", 1124 | "width": 36, 1125 | "height": 36 1126 | }, 1127 | "large": { 1128 | "url": "https://dl.airtable.com/IcLr1TosQnWogAfQl9GW_large_profile.jpg", 1129 | "width": 320, 1130 | "height": 320 1131 | }, 1132 | "full": { 1133 | "url": "https://dl.airtable.com/QZgh9BIlQFa2FxGTuZnA_full_profile.jpg", 1134 | "width": 320, 1135 | "height": 320 1136 | } 1137 | } 1138 | } 1139 | ], 1140 | "Dev": "https://dev.to/amit_merchant" 1141 | } 1142 | }, 1143 | { 1144 | "_table": { 1145 | "_base": { 1146 | "_airtable": { 1147 | "_apiKey": "keyFlwf9V8UuM5IC1", 1148 | "_endpointUrl": "https://api.airtable.com", 1149 | "_apiVersion": "0.1.0", 1150 | "_apiVersionMajor": "0", 1151 | "_allowUnauthorizedSsl": false, 1152 | "_noRetryIfRateLimited": false, 1153 | "requestTimeout": 300000 1154 | }, 1155 | "_id": "appyahDjTyD3MR0tU" 1156 | }, 1157 | "id": null, 1158 | "name": "Data" 1159 | }, 1160 | "id": "recB02Kg0J9WzQQ47", 1161 | "_rawJson": { 1162 | "id": "recB02Kg0J9WzQQ47", 1163 | "fields": { 1164 | "Name": "Asam Shan", 1165 | "Tags": ["WebDev", "JavaScript", "CSS"], 1166 | "Blog": "https://upbeat-sinoussi-998f2b.netlify.com/", 1167 | "Website": "https://asamshan.com/", 1168 | "About": "I try to help the newest of newbies get started with programming.", 1169 | "Published": true, 1170 | "slug": "asam-shan", 1171 | "Image": [ 1172 | { 1173 | "id": "attcUVPEi19oYkyRQ", 1174 | "url": "https://dl.airtable.com/zXPJsYyRSV25nyrFtNFr_av.jpeg", 1175 | "filename": "av.jpeg", 1176 | "size": 18886, 1177 | "type": "image/jpeg", 1178 | "thumbnails": { 1179 | "small": { 1180 | "url": "https://dl.airtable.com/2L2rIjXaQBa217J5qr2r_small_av.jpeg", 1181 | "width": 36, 1182 | "height": 36 1183 | }, 1184 | "large": { 1185 | "url": "https://dl.airtable.com/NYxk4p9eRbq4BGbovHPO_large_av.jpeg", 1186 | "width": 400, 1187 | "height": 400 1188 | }, 1189 | "full": { 1190 | "url": "https://dl.airtable.com/Cm3pDL0TTmMNcwTqHZ3A_full_av.jpeg", 1191 | "width": 400, 1192 | "height": 400 1193 | } 1194 | } 1195 | } 1196 | ], 1197 | "Dev": "https://dev.to/shan5742" 1198 | }, 1199 | "createdTime": "2018-09-21T11:38:07.000Z" 1200 | }, 1201 | "fields": { 1202 | "Name": "Asam Shan", 1203 | "Tags": ["WebDev", "JavaScript", "CSS"], 1204 | "Blog": "https://upbeat-sinoussi-998f2b.netlify.com/", 1205 | "Website": "https://asamshan.com/", 1206 | "About": "I try to help the newest of newbies get started with programming.", 1207 | "Published": true, 1208 | "slug": "asam-shan", 1209 | "Image": [ 1210 | { 1211 | "id": "attcUVPEi19oYkyRQ", 1212 | "url": "https://dl.airtable.com/zXPJsYyRSV25nyrFtNFr_av.jpeg", 1213 | "filename": "av.jpeg", 1214 | "size": 18886, 1215 | "type": "image/jpeg", 1216 | "thumbnails": { 1217 | "small": { 1218 | "url": "https://dl.airtable.com/2L2rIjXaQBa217J5qr2r_small_av.jpeg", 1219 | "width": 36, 1220 | "height": 36 1221 | }, 1222 | "large": { 1223 | "url": "https://dl.airtable.com/NYxk4p9eRbq4BGbovHPO_large_av.jpeg", 1224 | "width": 400, 1225 | "height": 400 1226 | }, 1227 | "full": { 1228 | "url": "https://dl.airtable.com/Cm3pDL0TTmMNcwTqHZ3A_full_av.jpeg", 1229 | "width": 400, 1230 | "height": 400 1231 | } 1232 | } 1233 | } 1234 | ], 1235 | "Dev": "https://dev.to/shan5742" 1236 | } 1237 | }, 1238 | { 1239 | "_table": { 1240 | "_base": { 1241 | "_airtable": { 1242 | "_apiKey": "keyFlwf9V8UuM5IC1", 1243 | "_endpointUrl": "https://api.airtable.com", 1244 | "_apiVersion": "0.1.0", 1245 | "_apiVersionMajor": "0", 1246 | "_allowUnauthorizedSsl": false, 1247 | "_noRetryIfRateLimited": false, 1248 | "requestTimeout": 300000 1249 | }, 1250 | "_id": "appyahDjTyD3MR0tU" 1251 | }, 1252 | "id": null, 1253 | "name": "Data" 1254 | }, 1255 | "id": "recsRVuP6LKuvTbay", 1256 | "_rawJson": { 1257 | "id": "recsRVuP6LKuvTbay", 1258 | "fields": { 1259 | "Name": "Sharynne Azhar", 1260 | "Tags": ["WebDev", "JavaScript", "CSS", "Design"], 1261 | "Blog": "https://sharynneazhar.com/blog/", 1262 | "Website": "https://sharynneazhar.com/", 1263 | "About": "Hi, I'm Sharynne and I'm addicted to building products. I love sharing about the different things I've learned from my experiences. Feel free to follow my journey through my blog or connect with me through LinkedIn! ", 1264 | "Published": true, 1265 | "slug": "sharynne-azhar", 1266 | "Image": [ 1267 | { 1268 | "id": "attTcYCsYVLFkcVYe", 1269 | "url": "https://dl.airtable.com/HmqHuy1FTwaWIhxc5mTT_IMG_3828l.jpg", 1270 | "filename": "IMG_3828l.jpg", 1271 | "size": 1072325, 1272 | "type": "image/jpeg", 1273 | "thumbnails": { 1274 | "small": { 1275 | "url": "https://dl.airtable.com/86WoRiW0SgqYloImJmeZ_small_IMG_3828l.jpg", 1276 | "width": 36, 1277 | "height": 36 1278 | }, 1279 | "large": { 1280 | "url": "https://dl.airtable.com/76AGpHTRQHq4PurmNfSA_large_IMG_3828l.jpg", 1281 | "width": 512, 1282 | "height": 518 1283 | }, 1284 | "full": { 1285 | "url": "https://dl.airtable.com/xLtWo5cTRz2oQn56Y5FY_full_IMG_3828l.jpg", 1286 | "width": 2966, 1287 | "height": 3000 1288 | } 1289 | } 1290 | } 1291 | ] 1292 | }, 1293 | "createdTime": "2018-09-21T13:09:52.000Z" 1294 | }, 1295 | "fields": { 1296 | "Name": "Sharynne Azhar", 1297 | "Tags": ["WebDev", "JavaScript", "CSS", "Design"], 1298 | "Blog": "https://sharynneazhar.com/blog/", 1299 | "Website": "https://sharynneazhar.com/", 1300 | "About": "Hi, I'm Sharynne and I'm addicted to building products. I love sharing about the different things I've learned from my experiences. Feel free to follow my journey through my blog or connect with me through LinkedIn! ", 1301 | "Published": true, 1302 | "slug": "sharynne-azhar", 1303 | "Image": [ 1304 | { 1305 | "id": "attTcYCsYVLFkcVYe", 1306 | "url": "https://dl.airtable.com/HmqHuy1FTwaWIhxc5mTT_IMG_3828l.jpg", 1307 | "filename": "IMG_3828l.jpg", 1308 | "size": 1072325, 1309 | "type": "image/jpeg", 1310 | "thumbnails": { 1311 | "small": { 1312 | "url": "https://dl.airtable.com/86WoRiW0SgqYloImJmeZ_small_IMG_3828l.jpg", 1313 | "width": 36, 1314 | "height": 36 1315 | }, 1316 | "large": { 1317 | "url": "https://dl.airtable.com/76AGpHTRQHq4PurmNfSA_large_IMG_3828l.jpg", 1318 | "width": 512, 1319 | "height": 518 1320 | }, 1321 | "full": { 1322 | "url": "https://dl.airtable.com/xLtWo5cTRz2oQn56Y5FY_full_IMG_3828l.jpg", 1323 | "width": 2966, 1324 | "height": 3000 1325 | } 1326 | } 1327 | } 1328 | ] 1329 | } 1330 | }, 1331 | { 1332 | "_table": { 1333 | "_base": { 1334 | "_airtable": { 1335 | "_apiKey": "keyFlwf9V8UuM5IC1", 1336 | "_endpointUrl": "https://api.airtable.com", 1337 | "_apiVersion": "0.1.0", 1338 | "_apiVersionMajor": "0", 1339 | "_allowUnauthorizedSsl": false, 1340 | "_noRetryIfRateLimited": false, 1341 | "requestTimeout": 300000 1342 | }, 1343 | "_id": "appyahDjTyD3MR0tU" 1344 | }, 1345 | "id": null, 1346 | "name": "Data" 1347 | }, 1348 | "id": "reclLNJm1iie0zyJW", 1349 | "_rawJson": { 1350 | "id": "reclLNJm1iie0zyJW", 1351 | "fields": { 1352 | "Name": "Madison", 1353 | "Tags": ["JavaScript", "WebDev"], 1354 | "Blog": "http://madisonkanna.com", 1355 | "Website": "Madisonkanna.com", 1356 | "About": "I write about learning how to code and becoming a developer without a traditional CS background.", 1357 | "Published": true, 1358 | "slug": "madison", 1359 | "Newsletter": "http://www.madisonkanna.com/get-my-coding-course-for-free/", 1360 | "Image": [ 1361 | { 1362 | "id": "attoYM6ByMJoJ7Lc4", 1363 | "url": "https://dl.airtable.com/KP6MZneTCX4mpLl2tN1g_headshot.jpg", 1364 | "filename": "headshot.jpg", 1365 | "size": 210844, 1366 | "type": "image/jpeg", 1367 | "thumbnails": { 1368 | "small": { 1369 | "url": "https://dl.airtable.com/wqhaSQiRLS7EuoXfcGEX_small_headshot.jpg", 1370 | "width": 35, 1371 | "height": 36 1372 | }, 1373 | "large": { 1374 | "url": "https://dl.airtable.com/Y8oclPkQH3x3RBbBku8w_large_headshot.jpg", 1375 | "width": 512, 1376 | "height": 519 1377 | }, 1378 | "full": { 1379 | "url": "https://dl.airtable.com/jeWHQ9jQcGMWbV1R97fw_full_headshot.jpg", 1380 | "width": 1335, 1381 | "height": 1354 1382 | } 1383 | } 1384 | } 1385 | ] 1386 | }, 1387 | "createdTime": "2018-09-21T16:10:49.000Z" 1388 | }, 1389 | "fields": { 1390 | "Name": "Madison", 1391 | "Tags": ["JavaScript", "WebDev"], 1392 | "Blog": "http://madisonkanna.com", 1393 | "Website": "Madisonkanna.com", 1394 | "About": "I write about learning how to code and becoming a developer without a traditional CS background.", 1395 | "Published": true, 1396 | "slug": "madison", 1397 | "Newsletter": "http://www.madisonkanna.com/get-my-coding-course-for-free/", 1398 | "Image": [ 1399 | { 1400 | "id": "attoYM6ByMJoJ7Lc4", 1401 | "url": "https://dl.airtable.com/KP6MZneTCX4mpLl2tN1g_headshot.jpg", 1402 | "filename": "headshot.jpg", 1403 | "size": 210844, 1404 | "type": "image/jpeg", 1405 | "thumbnails": { 1406 | "small": { 1407 | "url": "https://dl.airtable.com/wqhaSQiRLS7EuoXfcGEX_small_headshot.jpg", 1408 | "width": 35, 1409 | "height": 36 1410 | }, 1411 | "large": { 1412 | "url": "https://dl.airtable.com/Y8oclPkQH3x3RBbBku8w_large_headshot.jpg", 1413 | "width": 512, 1414 | "height": 519 1415 | }, 1416 | "full": { 1417 | "url": "https://dl.airtable.com/jeWHQ9jQcGMWbV1R97fw_full_headshot.jpg", 1418 | "width": 1335, 1419 | "height": 1354 1420 | } 1421 | } 1422 | } 1423 | ] 1424 | } 1425 | }, 1426 | { 1427 | "_table": { 1428 | "_base": { 1429 | "_airtable": { 1430 | "_apiKey": "keyFlwf9V8UuM5IC1", 1431 | "_endpointUrl": "https://api.airtable.com", 1432 | "_apiVersion": "0.1.0", 1433 | "_apiVersionMajor": "0", 1434 | "_allowUnauthorizedSsl": false, 1435 | "_noRetryIfRateLimited": false, 1436 | "requestTimeout": 300000 1437 | }, 1438 | "_id": "appyahDjTyD3MR0tU" 1439 | }, 1440 | "id": null, 1441 | "name": "Data" 1442 | }, 1443 | "id": "recmq0bpfHcMbEBOe", 1444 | "_rawJson": { 1445 | "id": "recmq0bpfHcMbEBOe", 1446 | "fields": { 1447 | "Name": "Madelene Campos", 1448 | "Tags": ["Python", "JavaScript", "WebDev"], 1449 | "Blog": "https://maddiecampos.wordpress.com/", 1450 | "Website": "https://madelenecampos.com/", 1451 | "About": "The above website was built by hand and is hosted on Firebase. It includes links to my blog, with which I try to encourage other people who are dissatisfied and need a change in their lives to look into coding as a profession. Specifically, people with musical or arts backgrounds who are unable to find stable employment.", 1452 | "Published": true, 1453 | "slug": "madelene-campos", 1454 | "Image": [ 1455 | { 1456 | "id": "attoMneHgUr90xsxx", 1457 | "url": "https://dl.airtable.com/goARqJewSwCqWuuiGO8G_2270.jpg", 1458 | "filename": "2270.jpg", 1459 | "size": 58288, 1460 | "type": "image/jpeg", 1461 | "thumbnails": { 1462 | "small": { 1463 | "url": "https://dl.airtable.com/DZa8O7KDTRWGifLDhLpH_small_2270.jpg", 1464 | "width": 64, 1465 | "height": 36 1466 | }, 1467 | "large": { 1468 | "url": "https://dl.airtable.com/kokkp6I6QOOUc6Px6KrR_large_2270.jpg", 1469 | "width": 910, 1470 | "height": 512 1471 | }, 1472 | "full": { 1473 | "url": "https://dl.airtable.com/YBbgE1QtT5Wv1aCu37V2_full_2270.jpg", 1474 | "width": 2560, 1475 | "height": 1440 1476 | } 1477 | } 1478 | } 1479 | ] 1480 | }, 1481 | "createdTime": "2018-09-21T17:39:52.000Z" 1482 | }, 1483 | "fields": { 1484 | "Name": "Madelene Campos", 1485 | "Tags": ["Python", "JavaScript", "WebDev"], 1486 | "Blog": "https://maddiecampos.wordpress.com/", 1487 | "Website": "https://madelenecampos.com/", 1488 | "About": "The above website was built by hand and is hosted on Firebase. It includes links to my blog, with which I try to encourage other people who are dissatisfied and need a change in their lives to look into coding as a profession. Specifically, people with musical or arts backgrounds who are unable to find stable employment.", 1489 | "Published": true, 1490 | "slug": "madelene-campos", 1491 | "Image": [ 1492 | { 1493 | "id": "attoMneHgUr90xsxx", 1494 | "url": "https://dl.airtable.com/goARqJewSwCqWuuiGO8G_2270.jpg", 1495 | "filename": "2270.jpg", 1496 | "size": 58288, 1497 | "type": "image/jpeg", 1498 | "thumbnails": { 1499 | "small": { 1500 | "url": "https://dl.airtable.com/DZa8O7KDTRWGifLDhLpH_small_2270.jpg", 1501 | "width": 64, 1502 | "height": 36 1503 | }, 1504 | "large": { 1505 | "url": "https://dl.airtable.com/kokkp6I6QOOUc6Px6KrR_large_2270.jpg", 1506 | "width": 910, 1507 | "height": 512 1508 | }, 1509 | "full": { 1510 | "url": "https://dl.airtable.com/YBbgE1QtT5Wv1aCu37V2_full_2270.jpg", 1511 | "width": 2560, 1512 | "height": 1440 1513 | } 1514 | } 1515 | } 1516 | ] 1517 | } 1518 | }, 1519 | { 1520 | "_table": { 1521 | "_base": { 1522 | "_airtable": { 1523 | "_apiKey": "keyFlwf9V8UuM5IC1", 1524 | "_endpointUrl": "https://api.airtable.com", 1525 | "_apiVersion": "0.1.0", 1526 | "_apiVersionMajor": "0", 1527 | "_allowUnauthorizedSsl": false, 1528 | "_noRetryIfRateLimited": false, 1529 | "requestTimeout": 300000 1530 | }, 1531 | "_id": "appyahDjTyD3MR0tU" 1532 | }, 1533 | "id": null, 1534 | "name": "Data" 1535 | }, 1536 | "id": "recVd7hjJ9isAw3J1", 1537 | "_rawJson": { 1538 | "id": "recVd7hjJ9isAw3J1", 1539 | "fields": { 1540 | "Name": "Harriet Ryder", 1541 | "Tags": ["WebDev", "JavaScript", "CSS"], 1542 | "Blog": "http://www.harrietryder.co.uk/", 1543 | "About": "As a software developer and former bootcamp instructor I love learning and teaching all things code! I write technical and non-technical posts on Medium and my personal blog.", 1544 | "Published": true, 1545 | "slug": "harriet-ryder", 1546 | "Image": [ 1547 | { 1548 | "id": "att4OshlJClcTtDKT", 1549 | "url": "https://dl.airtable.com/6C3sWW0Q6m68UfvqFXi4_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1550 | "filename": "Screen Shot 2018-09-23 at 16.36.46.png", 1551 | "size": 2750098, 1552 | "type": "image/png", 1553 | "thumbnails": { 1554 | "small": { 1555 | "url": "https://dl.airtable.com/sjQmdxavSGWh9Ms9tD9b_small_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1556 | "width": 36, 1557 | "height": 36 1558 | }, 1559 | "large": { 1560 | "url": "https://dl.airtable.com/SsMJdpTB2BrSEhjWCHwT_large_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1561 | "width": 513, 1562 | "height": 512 1563 | }, 1564 | "full": { 1565 | "url": "https://dl.airtable.com/lf9lUlFiRWalU5FwT6mO_full_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1566 | "width": 1186, 1567 | "height": 1184 1568 | } 1569 | } 1570 | } 1571 | ] 1572 | }, 1573 | "createdTime": "2018-09-23T15:39:43.000Z" 1574 | }, 1575 | "fields": { 1576 | "Name": "Harriet Ryder", 1577 | "Tags": ["WebDev", "JavaScript", "CSS"], 1578 | "Blog": "http://www.harrietryder.co.uk/", 1579 | "About": "As a software developer and former bootcamp instructor I love learning and teaching all things code! I write technical and non-technical posts on Medium and my personal blog.", 1580 | "Published": true, 1581 | "slug": "harriet-ryder", 1582 | "Image": [ 1583 | { 1584 | "id": "att4OshlJClcTtDKT", 1585 | "url": "https://dl.airtable.com/6C3sWW0Q6m68UfvqFXi4_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1586 | "filename": "Screen Shot 2018-09-23 at 16.36.46.png", 1587 | "size": 2750098, 1588 | "type": "image/png", 1589 | "thumbnails": { 1590 | "small": { 1591 | "url": "https://dl.airtable.com/sjQmdxavSGWh9Ms9tD9b_small_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1592 | "width": 36, 1593 | "height": 36 1594 | }, 1595 | "large": { 1596 | "url": "https://dl.airtable.com/SsMJdpTB2BrSEhjWCHwT_large_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1597 | "width": 513, 1598 | "height": 512 1599 | }, 1600 | "full": { 1601 | "url": "https://dl.airtable.com/lf9lUlFiRWalU5FwT6mO_full_Screen%20Shot%202018-09-23%20at%2016.36.46.png", 1602 | "width": 1186, 1603 | "height": 1184 1604 | } 1605 | } 1606 | } 1607 | ] 1608 | } 1609 | }, 1610 | { 1611 | "_table": { 1612 | "_base": { 1613 | "_airtable": { 1614 | "_apiKey": "keyFlwf9V8UuM5IC1", 1615 | "_endpointUrl": "https://api.airtable.com", 1616 | "_apiVersion": "0.1.0", 1617 | "_apiVersionMajor": "0", 1618 | "_allowUnauthorizedSsl": false, 1619 | "_noRetryIfRateLimited": false, 1620 | "requestTimeout": 300000 1621 | }, 1622 | "_id": "appyahDjTyD3MR0tU" 1623 | }, 1624 | "id": null, 1625 | "name": "Data" 1626 | }, 1627 | "id": "recBBv3q1Aj7l4B2k", 1628 | "_rawJson": { 1629 | "id": "recBBv3q1Aj7l4B2k", 1630 | "fields": { 1631 | "Name": "Kauress", 1632 | "Tags": ["WebDev", "JavaScript", "Computer Vision"], 1633 | "Blog": "https://www.kauress.me/", 1634 | "YouTube": "https://www.youtube.com/channel/UCqKOx3BuRotITRi99hT2yAw", 1635 | "Website": "http://www.letsjavascript.com", 1636 | "About": "Learning how to code by doing bite sized projects. Fullstack JavaScript and VR.", 1637 | "Published": true, 1638 | "slug": "kauress", 1639 | "Image": [ 1640 | { 1641 | "id": "attWWyXWg7SHDQdJW", 1642 | "url": "https://dl.airtable.com/Fi1Vy0opTWPcsTGUTkp6_kauress.jpg", 1643 | "filename": "kauress.jpg", 1644 | "size": 35240, 1645 | "type": "image/jpeg", 1646 | "thumbnails": { 1647 | "small": { 1648 | "url": "https://dl.airtable.com/iubNnTPaQht44Ik2AdiA_small_kauress.jpg", 1649 | "width": 36, 1650 | "height": 36 1651 | }, 1652 | "large": { 1653 | "url": "https://dl.airtable.com/eLwYIFBPRa6C5IdfcD55_large_kauress.jpg", 1654 | "width": 400, 1655 | "height": 400 1656 | }, 1657 | "full": { 1658 | "url": "https://dl.airtable.com/l7r3FWEfS2KKPG8DxefI_full_kauress.jpg", 1659 | "width": 400, 1660 | "height": 400 1661 | } 1662 | } 1663 | } 1664 | ], 1665 | "Dev": "https://dev.to/kauresss" 1666 | }, 1667 | "createdTime": "2018-09-23T16:03:41.000Z" 1668 | }, 1669 | "fields": { 1670 | "Name": "Kauress", 1671 | "Tags": ["WebDev", "JavaScript", "Computer Vision"], 1672 | "Blog": "https://www.kauress.me/", 1673 | "YouTube": "https://www.youtube.com/channel/UCqKOx3BuRotITRi99hT2yAw", 1674 | "Website": "http://www.letsjavascript.com", 1675 | "About": "Learning how to code by doing bite sized projects. Fullstack JavaScript and VR.", 1676 | "Published": true, 1677 | "slug": "kauress", 1678 | "Image": [ 1679 | { 1680 | "id": "attWWyXWg7SHDQdJW", 1681 | "url": "https://dl.airtable.com/Fi1Vy0opTWPcsTGUTkp6_kauress.jpg", 1682 | "filename": "kauress.jpg", 1683 | "size": 35240, 1684 | "type": "image/jpeg", 1685 | "thumbnails": { 1686 | "small": { 1687 | "url": "https://dl.airtable.com/iubNnTPaQht44Ik2AdiA_small_kauress.jpg", 1688 | "width": 36, 1689 | "height": 36 1690 | }, 1691 | "large": { 1692 | "url": "https://dl.airtable.com/eLwYIFBPRa6C5IdfcD55_large_kauress.jpg", 1693 | "width": 400, 1694 | "height": 400 1695 | }, 1696 | "full": { 1697 | "url": "https://dl.airtable.com/l7r3FWEfS2KKPG8DxefI_full_kauress.jpg", 1698 | "width": 400, 1699 | "height": 400 1700 | } 1701 | } 1702 | } 1703 | ], 1704 | "Dev": "https://dev.to/kauresss" 1705 | } 1706 | }, 1707 | { 1708 | "_table": { 1709 | "_base": { 1710 | "_airtable": { 1711 | "_apiKey": "keyFlwf9V8UuM5IC1", 1712 | "_endpointUrl": "https://api.airtable.com", 1713 | "_apiVersion": "0.1.0", 1714 | "_apiVersionMajor": "0", 1715 | "_allowUnauthorizedSsl": false, 1716 | "_noRetryIfRateLimited": false, 1717 | "requestTimeout": 300000 1718 | }, 1719 | "_id": "appyahDjTyD3MR0tU" 1720 | }, 1721 | "id": null, 1722 | "name": "Data" 1723 | }, 1724 | "id": "recfCMwdI8hoYWcm1", 1725 | "_rawJson": { 1726 | "id": "recfCMwdI8hoYWcm1", 1727 | "fields": { 1728 | "Name": "Saigowtham", 1729 | "Tags": ["JavaScript", "CSS", "WebDev"], 1730 | "Website": "https://reactgo.com", 1731 | "About": "I write tutorials about JavaScript and web development .", 1732 | "Published": true, 1733 | "Newsletter": "https://tinyletter.com/reactgo", 1734 | "Image": [ 1735 | { 1736 | "id": "attf6NWcU7SzMSgm4", 1737 | "url": "https://dl.airtable.com/xZGa3JOcR4m6Zsr1xmHh_download.png", 1738 | "filename": "download.png", 1739 | "size": 8676, 1740 | "type": "image/png", 1741 | "thumbnails": { 1742 | "small": { 1743 | "url": "https://dl.airtable.com/BwcNXCDTQcmT452ghis3_small_download.png", 1744 | "width": 36, 1745 | "height": 36 1746 | }, 1747 | "large": { 1748 | "url": "https://dl.airtable.com/i6NqWwHGQc2fKzHkIyYh_large_download.png", 1749 | "width": 256, 1750 | "height": 256 1751 | }, 1752 | "full": { 1753 | "url": "https://dl.airtable.com/HLihqYm9QEuCUJ7lEu6v_full_download.png", 1754 | "width": 256, 1755 | "height": 256 1756 | } 1757 | } 1758 | } 1759 | ], 1760 | "Dev": "https://dev.to/saigowthamr" 1761 | }, 1762 | "createdTime": "2018-09-24T23:27:09.000Z" 1763 | }, 1764 | "fields": { 1765 | "Name": "Saigowtham", 1766 | "Tags": ["JavaScript", "CSS", "WebDev"], 1767 | "Website": "https://reactgo.com", 1768 | "About": "I write tutorials about JavaScript and web development .", 1769 | "Published": true, 1770 | "Newsletter": "https://tinyletter.com/reactgo", 1771 | "Image": [ 1772 | { 1773 | "id": "attf6NWcU7SzMSgm4", 1774 | "url": "https://dl.airtable.com/xZGa3JOcR4m6Zsr1xmHh_download.png", 1775 | "filename": "download.png", 1776 | "size": 8676, 1777 | "type": "image/png", 1778 | "thumbnails": { 1779 | "small": { 1780 | "url": "https://dl.airtable.com/BwcNXCDTQcmT452ghis3_small_download.png", 1781 | "width": 36, 1782 | "height": 36 1783 | }, 1784 | "large": { 1785 | "url": "https://dl.airtable.com/i6NqWwHGQc2fKzHkIyYh_large_download.png", 1786 | "width": 256, 1787 | "height": 256 1788 | }, 1789 | "full": { 1790 | "url": "https://dl.airtable.com/HLihqYm9QEuCUJ7lEu6v_full_download.png", 1791 | "width": 256, 1792 | "height": 256 1793 | } 1794 | } 1795 | } 1796 | ], 1797 | "Dev": "https://dev.to/saigowthamr" 1798 | } 1799 | }, 1800 | { 1801 | "_table": { 1802 | "_base": { 1803 | "_airtable": { 1804 | "_apiKey": "keyFlwf9V8UuM5IC1", 1805 | "_endpointUrl": "https://api.airtable.com", 1806 | "_apiVersion": "0.1.0", 1807 | "_apiVersionMajor": "0", 1808 | "_allowUnauthorizedSsl": false, 1809 | "_noRetryIfRateLimited": false, 1810 | "requestTimeout": 300000 1811 | }, 1812 | "_id": "appyahDjTyD3MR0tU" 1813 | }, 1814 | "id": null, 1815 | "name": "Data" 1816 | }, 1817 | "id": "recPiDELH12QJPrmy", 1818 | "_rawJson": { 1819 | "id": "recPiDELH12QJPrmy", 1820 | "fields": { 1821 | "Name": "Aibol", 1822 | "Tags": ["WebDev", "JavaScript"], 1823 | "Blog": "https://aibolik.github.io", 1824 | "Website": "https://aibolik.github.io", 1825 | "About": "I am a Software Engineer who loves FrontEnd, JavaScript and everything related to web. I'm beginner tech-blogger and instructor. I like sharing useful stuff, so stay tuned!", 1826 | "Published": true, 1827 | "Newsletter": "https://tinyletter.com/jsindev", 1828 | "Image": [ 1829 | { 1830 | "id": "attEHCMdhW8N13d45", 1831 | "url": "https://dl.airtable.com/4QhaL21ITLC0te8sizt9_avatar.png", 1832 | "filename": "avatar.png", 1833 | "size": 127786, 1834 | "type": "image/png", 1835 | "thumbnails": { 1836 | "small": { 1837 | "url": "https://dl.airtable.com/8CxCu1u8SMCtf9ZnR8Al_small_avatar.png", 1838 | "width": 36, 1839 | "height": 36 1840 | }, 1841 | "large": { 1842 | "url": "https://dl.airtable.com/re8GoiRJ2Vsk1YsEyS4g_large_avatar.png", 1843 | "width": 416, 1844 | "height": 416 1845 | }, 1846 | "full": { 1847 | "url": "https://dl.airtable.com/MNeUJnRvicINQjXkOOAm_full_avatar.png", 1848 | "width": 416, 1849 | "height": 416 1850 | } 1851 | } 1852 | } 1853 | ], 1854 | "Dev": "http://dev.to/aibolik" 1855 | }, 1856 | "createdTime": "2018-10-04T20:35:19.000Z" 1857 | }, 1858 | "fields": { 1859 | "Name": "Aibol", 1860 | "Tags": ["WebDev", "JavaScript"], 1861 | "Blog": "https://aibolik.github.io", 1862 | "Website": "https://aibolik.github.io", 1863 | "About": "I am a Software Engineer who loves FrontEnd, JavaScript and everything related to web. I'm beginner tech-blogger and instructor. I like sharing useful stuff, so stay tuned!", 1864 | "Published": true, 1865 | "Newsletter": "https://tinyletter.com/jsindev", 1866 | "Image": [ 1867 | { 1868 | "id": "attEHCMdhW8N13d45", 1869 | "url": "https://dl.airtable.com/4QhaL21ITLC0te8sizt9_avatar.png", 1870 | "filename": "avatar.png", 1871 | "size": 127786, 1872 | "type": "image/png", 1873 | "thumbnails": { 1874 | "small": { 1875 | "url": "https://dl.airtable.com/8CxCu1u8SMCtf9ZnR8Al_small_avatar.png", 1876 | "width": 36, 1877 | "height": 36 1878 | }, 1879 | "large": { 1880 | "url": "https://dl.airtable.com/re8GoiRJ2Vsk1YsEyS4g_large_avatar.png", 1881 | "width": 416, 1882 | "height": 416 1883 | }, 1884 | "full": { 1885 | "url": "https://dl.airtable.com/MNeUJnRvicINQjXkOOAm_full_avatar.png", 1886 | "width": 416, 1887 | "height": 416 1888 | } 1889 | } 1890 | } 1891 | ], 1892 | "Dev": "http://dev.to/aibolik" 1893 | } 1894 | }, 1895 | { 1896 | "_table": { 1897 | "_base": { 1898 | "_airtable": { 1899 | "_apiKey": "keyFlwf9V8UuM5IC1", 1900 | "_endpointUrl": "https://api.airtable.com", 1901 | "_apiVersion": "0.1.0", 1902 | "_apiVersionMajor": "0", 1903 | "_allowUnauthorizedSsl": false, 1904 | "_noRetryIfRateLimited": false, 1905 | "requestTimeout": 300000 1906 | }, 1907 | "_id": "appyahDjTyD3MR0tU" 1908 | }, 1909 | "id": null, 1910 | "name": "Data" 1911 | }, 1912 | "id": "recqx08wE0zHwkC4e", 1913 | "_rawJson": { 1914 | "id": "recqx08wE0zHwkC4e", 1915 | "fields": { 1916 | "Name": "Lindsey Kopacz", 1917 | "Tags": ["JavaScript", "CSS", "WebDev"], 1918 | "Blog": "https://www.a11ywithlindsey.com/", 1919 | "About": "I write about primarily accessibility and using human empathy to solve technical accessibility problems.", 1920 | "Published": true, 1921 | "Newsletter": "http://eepurl.com/dy1USP", 1922 | "Image": [ 1923 | { 1924 | "id": "attAwgw7mpHnjkYoM", 1925 | "url": "https://dl.airtable.com/dTDLsmidTpOy164x2pHg_13581979_10206952583992825_2455472662860616818_o.jpg", 1926 | "filename": "13581979_10206952583992825_2455472662860616818_o.jpg", 1927 | "size": 271857, 1928 | "type": "image/jpeg", 1929 | "thumbnails": { 1930 | "small": { 1931 | "url": "https://dl.airtable.com/0xcsa3GfTr2PvChsDtq8_small_13581979_10206952583992825_2455472662860616818_o.jpg", 1932 | "width": 36, 1933 | "height": 36 1934 | }, 1935 | "large": { 1936 | "url": "https://dl.airtable.com/ZCVjkVwQyCq61uh7menJ_large_13581979_10206952583992825_2455472662860616818_o.jpg", 1937 | "width": 512, 1938 | "height": 512 1939 | }, 1940 | "full": { 1941 | "url": "https://dl.airtable.com/rb4BowzYSvmezI8OXCkR_full_13581979_10206952583992825_2455472662860616818_o.jpg", 1942 | "width": 1080, 1943 | "height": 1079 1944 | } 1945 | } 1946 | } 1947 | ], 1948 | "Dev": "https://dev.to/lkopacz" 1949 | }, 1950 | "createdTime": "2018-10-12T00:44:38.000Z" 1951 | }, 1952 | "fields": { 1953 | "Name": "Lindsey Kopacz", 1954 | "Tags": ["JavaScript", "CSS", "WebDev"], 1955 | "Blog": "https://www.a11ywithlindsey.com/", 1956 | "About": "I write about primarily accessibility and using human empathy to solve technical accessibility problems.", 1957 | "Published": true, 1958 | "Newsletter": "http://eepurl.com/dy1USP", 1959 | "Image": [ 1960 | { 1961 | "id": "attAwgw7mpHnjkYoM", 1962 | "url": "https://dl.airtable.com/dTDLsmidTpOy164x2pHg_13581979_10206952583992825_2455472662860616818_o.jpg", 1963 | "filename": "13581979_10206952583992825_2455472662860616818_o.jpg", 1964 | "size": 271857, 1965 | "type": "image/jpeg", 1966 | "thumbnails": { 1967 | "small": { 1968 | "url": "https://dl.airtable.com/0xcsa3GfTr2PvChsDtq8_small_13581979_10206952583992825_2455472662860616818_o.jpg", 1969 | "width": 36, 1970 | "height": 36 1971 | }, 1972 | "large": { 1973 | "url": "https://dl.airtable.com/ZCVjkVwQyCq61uh7menJ_large_13581979_10206952583992825_2455472662860616818_o.jpg", 1974 | "width": 512, 1975 | "height": 512 1976 | }, 1977 | "full": { 1978 | "url": "https://dl.airtable.com/rb4BowzYSvmezI8OXCkR_full_13581979_10206952583992825_2455472662860616818_o.jpg", 1979 | "width": 1080, 1980 | "height": 1079 1981 | } 1982 | } 1983 | } 1984 | ], 1985 | "Dev": "https://dev.to/lkopacz" 1986 | } 1987 | } 1988 | ] 1989 | --------------------------------------------------------------------------------