Compare commits

..

1154 Commits

Author SHA1 Message Date
Kamran Ahmed
fdb7b57659 Merge branch 'master' of github.com:kamranahmedse/developer-roadmap into javascript-roadmap 2022-08-18 02:42:06 +04:00
andran777
b0865b7ac8 Add dig command resources 2022-08-18 02:41:42 +04:00
andran777
98acee3f6e Add history command resources 2022-08-18 02:41:25 +04:00
Kamran Ahmed
45453d0d06 Fix broken build 2022-08-18 02:40:12 +04:00
Nelly Simkova
8c5c82daf6 Add some resources to Spring node (#1541)
Co-authored-by: sk8higher <sk8higher@iballwasrawt.ru>
2022-08-18 02:37:23 +04:00
Nelly Simkova
19a65cef23 Add some Maven materials (#1542)
Co-authored-by: sk8higher <sk8higher@iballwasrawt.ru>
2022-08-18 02:36:17 +04:00
Kamran Ahmed
bc0da926e4 Fix flicker issue on javascript roadmap 2022-08-18 02:33:32 +04:00
Kamran Ahmed
ea92227fcd Add content skeleton for javascript roadmap 2022-08-18 02:27:41 +04:00
Kamran Ahmed
8fd5371a95 Add JavaScript roadmap image 2022-08-17 20:30:10 +04:00
Kamran Ahmed
e7d3ddd6f0 Add JavaScript roadmap on homepage 2022-08-17 20:27:31 +04:00
Kamran Ahmed
6b7d5c03ff Make way for JavaScript roadmap 2022-08-17 20:20:43 +04:00
Kamran Ahmed
fe72ab1579 Add JavaScript roadmap project file 2022-08-17 20:15:58 +04:00
HS
838c3759a8 Add design and implementation docs (#1536) 2022-08-17 19:19:30 +04:00
andran777
f87cde6030 Add go roadmap in devops roadmap (#1531) 2022-08-17 01:01:58 +04:00
andran777
9a8703aa77 Link python roadmap in devops roadmap(#1532) 2022-08-17 01:01:36 +04:00
Archit Sharma
fc42866037 Resources added for Data Management (#1533)
* Resources added for Data Management

* Update content/roadmaps/102-devops/content/110-data-management.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-17 01:01:07 +04:00
Kamran Ahmed
1f719a9ec2 Add content skeleton for golang roadmap 2022-08-16 18:40:48 +04:00
Kamran Ahmed
f9e4678ed8 Make golang roadmap interactive 2022-08-16 18:40:40 +04:00
HS
e9c902d01e Add open-telemetry resources (#1528) 2022-08-16 18:11:44 +04:00
Kamran Ahmed
8785bf5917 Replace open-tracing with open-telemetry 2022-08-16 17:41:23 +04:00
HS
b2798b20d3 Add instana resources
* Update 103-instana.md

* Update content/roadmaps/102-devops/content/107-monitoring/101-application-monitoring/103-instana.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-16 17:31:47 +04:00
HS
30931b8df1 Add app dynamics content
* Update 102-app-dynamics.md

* Update content/roadmaps/102-devops/content/107-monitoring/101-application-monitoring/102-app-dynamics.md

* Update content/roadmaps/102-devops/content/107-monitoring/101-application-monitoring/102-app-dynamics.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-16 17:28:09 +04:00
Durrez Ahmed
297cc8817f Add content for iostat (#1522) 2022-08-16 17:11:44 +04:00
andran777
0fb5ab5bfa Add load balancer content 2022-08-16 17:11:16 +04:00
Durrez Ahmed
94bf4887eb Add content for nmon (#1521) 2022-08-16 16:31:13 +04:00
Kamran Ahmed
e2a49d82ff Fix blockchain flicker issue 2022-08-16 15:45:27 +04:00
andran777
6866c1479f Add firewall content 2022-08-16 15:38:42 +04:00
andran777
6ee4be6291 Add caching server docs 2022-08-16 15:38:04 +04:00
Kamran Ahmed
83c91f0e68 Merge branch 'master' of github.com:kamranahmedse/developer-roadmap 2022-08-16 05:18:49 +04:00
Kamran Ahmed
e6d854ca29 Add blockchain roadmap content 2022-08-16 04:48:46 +04:00
HS
c2c20eb962 Add new relic content 2022-08-16 04:45:20 +04:00
Archit Sharma
0f2ceb23b1 Resources added for Apache Mesos (#1512) 2022-08-16 04:45:02 +04:00
andran777
e9d31f5ec4 Add reverse proxy content
* Update 100-reverse-proxy.md

* Update 100-reverse-proxy.md
2022-08-16 04:44:46 +04:00
andran777
a2ce230104 Add forward proxy content
* Update 102-forward-proxy.md

* Update 102-forward-proxy.md

* Update 102-forward-proxy.md
2022-08-16 04:44:28 +04:00
Durrez Ahmed
37108923a6 Add content for configuration management 2022-08-16 04:43:40 +04:00
Durrez Ahmed
ecc9138f37 Add content for smtp 2022-08-16 04:43:01 +04:00
Kamran Ahmed
d5d0bf627a Add link to blockchain roadmap 2022-08-16 04:41:33 +04:00
Kamran Ahmed
653fc98e3b Fix broken build 2022-08-16 04:31:02 +04:00
Kamran Ahmed
7e96457ac0 Add content directories 2022-08-16 04:28:05 +04:00
Kamran Ahmed
30418a90cf Add blockchain roadmap 2022-08-16 04:28:05 +04:00
HS
95dc9092e9 Add Jaeger content
* Update 100-jaeger.md

* Update content/roadmaps/102-devops/content/107-monitoring/101-application-monitoring/100-jaeger.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-15 16:39:11 +04:00
HS
36f23d4c04 Add links for GitHub actions videos (#1509)
* Update 102-github-actions.md

* Add youtube links for GitHub actions videos

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-15 16:31:43 +04:00
Jozias Martini
a8c48555ef Update bash scripting with very useful links (#1504) 2022-08-15 16:23:10 +04:00
andran777
039b6956cd Add SSH content 2022-08-15 16:22:34 +04:00
andran777
2712da3c5d Add FTP content 2022-08-15 16:22:06 +04:00
andran777
2080277226 Add alert for postgresql dba roadmap 2022-08-15 16:21:28 +04:00
Kamran Ahmed
18253fbc49 Add button to suggest changes on roadmaps 2022-08-15 12:07:02 +04:00
Kamran Ahmed
63d9c968a4 Add button to suggest changes on roadmaps 2022-08-15 12:05:51 +04:00
Kamran Ahmed
92b038ed1d Add content directories for java roadmap 2022-08-15 10:19:10 +04:00
Kamran Ahmed
f1c3de33bb Make Java roadmap interactive 2022-08-15 10:19:10 +04:00
HS
765aef3659 Update 107-tomcat.md (#1503) 2022-08-15 00:50:47 +04:00
Kamran Ahmed
c5387e592b Upcoming roadmap font size change 2022-08-14 19:18:21 +04:00
Kamran Ahmed
b18d3c1a24 Add email collection on the upcoming roadmaps 2022-08-14 18:37:09 +04:00
Kamran Ahmed
c615799f8e Fix golang roadmap link 2022-08-14 18:02:24 +04:00
Kamran Ahmed
dd2ce818d5 Add dedicated roadmap alert on the roadmap nodes (#1502) 2022-08-14 17:55:31 +04:00
Durrez Ahmed
c4b6a787ad Add content for linkerd (#1501) 2022-08-14 17:53:46 +04:00
Durrez Ahmed
0b7da30483 Add content for envoy (#1500)
* Add content for envoy

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/100-service-mesh/102-envoy.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-14 14:14:26 +04:00
Archit Sharma
f817c70ff4 Resources added for Docker swarm (#1499)
* Resources added for Docker swarm

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/104-docker-swarm.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-14 12:50:59 +04:00
andran777
9d42636d27 Update 100-osi-model.md (#1497) 2022-08-14 02:42:37 +04:00
HS
2fa155fa60 Add zabbix content 2022-08-14 02:41:51 +04:00
HS
067ea7d054 Add papertrail content
* Update 102-papertrail.md

* Update content/roadmaps/102-devops/content/107-monitoring/102-logs-management/102-papertrail.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-14 02:41:31 +04:00
HS
12630d5bf0 Add graylog content 2022-08-14 02:40:52 +04:00
HS
12914adc79 Add splunk content 2022-08-14 02:40:28 +04:00
Kamran Ahmed
fbfe436483 Change badge color 2022-08-13 23:33:25 +04:00
Kamran Ahmed
bcff470225 Add "New" badge for new videos and guides 2022-08-13 23:32:07 +04:00
Kamran Ahmed
c8ef175c49 Add testing content 2022-08-13 23:07:31 +04:00
Kamran Ahmed
6b75260ff7 Add asynchronous python frameworks content 2022-08-13 19:19:04 +04:00
Kamran Ahmed
c22eb7d387 Add python synchronous frameworks docs 2022-08-13 19:05:29 +04:00
Kamran Ahmed
e8dc7cf5d7 Add package managers resources 2022-08-13 18:45:50 +04:00
Kamran Ahmed
a3cde9a40a Add repo hosting services content 2022-08-13 18:27:37 +04:00
Kamran Ahmed
aac9eaf7d6 Add version control systems resources 2022-08-13 18:27:28 +04:00
Kamran Ahmed
fd8d5fd748 Add python advanced topics resources 2022-08-13 18:25:29 +04:00
Kamran Ahmed
3a926e6b44 Add sorting algorithms content 2022-08-13 17:35:56 +04:00
Paul Marsicovetere
b66c54df30 Add alibaba cloud
* Update 104-albaba-cloud.md

Alibaba Cloud documentation

* Update 104-albaba-cloud.md
2022-08-13 16:07:27 +04:00
Paul Marsicovetere
29ee92c52f Add linode docs
Linode documentation
2022-08-13 16:07:00 +04:00
Paul Marsicovetere
e3a94d4ae0 Add vultr docs
Vultr documentation
2022-08-13 16:06:49 +04:00
Paul Marsicovetere
fd0a81f4d4 Add screen multiplexer
Screen documentation
2022-08-13 16:06:34 +04:00
Paul Marsicovetere
d7b3287b11 Add tmux multiplexer (#1472)
Tmux documentation
2022-08-13 16:06:20 +04:00
Paul Marsicovetere
72d90e0315 Add ps command
ps documentation
2022-08-13 16:06:02 +04:00
Paul Marsicovetere
c8c29ac59e Add top command
top documentation
2022-08-13 16:05:44 +04:00
Paul Marsicovetere
d2efb83c14 Add htop command
htop documentation
2022-08-13 16:05:34 +04:00
Paul Marsicovetere
085524fcbd Add atop command
atop documentation
2022-08-13 16:05:24 +04:00
Paul Marsicovetere
6928a2e91b Add lsof command
lsof cheat sheet
2022-08-13 16:05:10 +04:00
Paul Marsicovetere
4ac41e15fd Add cut command
cut documentation
2022-08-13 16:05:01 +04:00
Paul Marsicovetere
797ed3dc67 Add uniq command content
uniq documentation
2022-08-13 16:04:52 +04:00
Paul Marsicovetere
f176082249 Add tr content
tr documentation
2022-08-13 16:04:40 +04:00
Paul Marsicovetere
1a64743d56 Update 130-nl.md (#1481)
nl documentation
2022-08-13 16:04:08 +04:00
Paul Marsicovetere
833886fd77 Add wc command content
wc documentation
2022-08-13 16:03:46 +04:00
andran777
2cdfed1f83 Add HTTPs content 2022-08-13 16:01:26 +04:00
Archit Sharma
53388ad928 Add datadog resources (#1485) 2022-08-13 16:00:27 +04:00
Durrez Ahmed
b35e90cc72 Add content for service mesh (#1486) 2022-08-13 15:56:21 +04:00
Durrez Ahmed
12056b2d65 Add content for istio (#1487)
* Add content for istio

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/100-service-mesh/101-istio.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-13 15:55:44 +04:00
Durrez Ahmed
ef3cd011e8 Add content for consul (#1488)
* Add content for consul

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/100-service-mesh/100-consul.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-13 15:55:21 +04:00
andran777
55372b280f Add DNS congtent 2022-08-13 15:54:54 +04:00
andran777
02835061b3 Devops Content - Update 105-ssl-tls.md (#1491)
* Update 105-ssl-tls.md

* Fix spacing

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-13 15:54:28 +04:00
Kamran Ahmed
fd11f7180c Add content for data structures and algorithms 2022-08-13 15:52:42 +04:00
Kamran Ahmed
40aa50ef72 Add content for basics section in python roadmap 2022-08-13 03:25:49 +04:00
Kamran Ahmed
03b9b61926 Add missing data structures and algorithms content 2022-08-13 02:48:26 +04:00
Kamran Ahmed
0893df2f62 Add content directories for python roadmap 2022-08-13 02:48:26 +04:00
Kamran Ahmed
1b2367ce30 Make python roadmap interactive 2022-08-13 02:48:26 +04:00
andran777
941c06eda6 Add SCP under network tools (#1462) 2022-08-13 02:19:16 +04:00
andran777
5eade48001 added fmt content (#1465) 2022-08-13 02:16:38 +04:00
Kamran Ahmed
5f8a9ad103 Add styling content 2022-08-13 02:10:46 +04:00
Kamran Ahmed
278d74024b Add state management content 2022-08-13 02:10:42 +04:00
Kamran Ahmed
a5fe79bbdf Add testing content 2022-08-13 02:10:31 +04:00
Kamran Ahmed
41e604e783 Add forms content 2022-08-13 02:10:20 +04:00
Kamran Ahmed
5c8fa5850e Add mobile content 2022-08-13 02:09:58 +04:00
Kamran Ahmed
1a63618fe8 Add API calls content 2022-08-13 02:09:50 +04:00
Kamran Ahmed
bdb3b51073 Add ssg content 2022-08-13 02:09:38 +04:00
Kamran Ahmed
9c0b0a067a Add gatsby content 2022-08-13 02:09:25 +04:00
Kamran Ahmed
a3f3f9a3e3 Add SSR content 2022-08-13 02:09:17 +04:00
Kamran Ahmed
9df2c5c898 Add next.js content 2022-08-13 02:09:06 +04:00
Kamran Ahmed
f1255ad6a8 Add reach router content 2022-08-13 02:08:44 +04:00
Kamran Ahmed
e08567d346 Add react-router content 2022-08-13 02:08:22 +04:00
Kamran Ahmed
8f9a9e0869 Add next.js content 2022-08-13 02:08:14 +04:00
Kamran Ahmed
fc1a3ffd0f Add routing docs 2022-08-12 20:17:29 +04:00
Kamran Ahmed
c6ec0d384a Add react ecosystem 2022-08-12 20:15:39 +04:00
andran777
0b6884d6d0 Add echo, egrep and fgrep content
* added echo content

* added egrep content

* added fgrep content

* Update 133-fgrep.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/127-echo.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/133-fgrep.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-12 20:13:18 +04:00
Kamran Ahmed
70752b26f4 Add portals, error boundaries and fiber architecture 2022-08-12 20:10:40 +04:00
Kamran Ahmed
34fc5a9f7a Add high order components docs 2022-08-12 20:06:12 +04:00
Kamran Ahmed
59bedd2100 Add render props in react 2022-08-12 20:05:07 +04:00
Kamran Ahmed
4bcadc7313 Add react refs docs 2022-08-12 20:03:35 +04:00
Kamran Ahmed
2070483971 Add react context docs 2022-08-12 20:03:23 +04:00
Kamran Ahmed
a16946da6c Add hooks refernce 2022-08-12 20:03:16 +04:00
Kamran Ahmed
04113464fb Add advanced react hooks docs 2022-08-12 20:03:05 +04:00
Kamran Ahmed
d21582ac4d Fix broken group mapping in react roadmap 2022-08-12 19:55:47 +04:00
Kamran Ahmed
dc451e68fc Add the hooks docs 2022-08-12 19:48:32 +04:00
Kamran Ahmed
9e08eb1a98 Add composition vs inheritance docs 2022-08-12 19:28:28 +04:00
Kamran Ahmed
a512aeeaf8 Add lists and keys docs 2022-08-12 19:28:17 +04:00
Kamran Ahmed
d91c8add76 Add component lifecycle docs 2022-08-12 19:28:09 +04:00
Kamran Ahmed
0eba1d36e3 Add conditional rendering content 2022-08-12 19:18:48 +04:00
Kamran Ahmed
b07f40f652 Props vs state content 2022-08-12 19:18:41 +04:00
Durrez Ahmed
5075529030 Add content for networking protocols 2022-08-12 16:50:43 +04:00
Kamran Ahmed
298c76dad2 Update content/roadmaps/101-backend/content/103-learn-a-language/105-javascript.md 2022-08-12 16:50:17 +04:00
Eleni Papanicolas
6e8308506f Add eloquent js to javascript language node.
Hi there! This book has helped me greatly with learning javascript. It is so pleasant to read but highly detailed, eloquently written as the title suggests. The book includes exercises for every chapter, with solutions, multiple projects, and has everything available with its own code sandbox. I have the paperback copy, but I love having all of the extra features with the online version. It is 100% free.
2022-08-12 16:50:17 +04:00
Kamran Ahmed
d2e9bef50f Fix height for the react roadmapgst 2022-08-12 16:49:09 +04:00
Kamran Ahmed
387c6026d4 Add props vs state introduction 2022-08-12 16:49:09 +04:00
Kamran Ahmed
0b8ee5ca78 Add components introduction docs 2022-08-12 16:49:09 +04:00
Kamran Ahmed
40a447e6d3 Add class components introduction 2022-08-12 16:49:09 +04:00
Kamran Ahmed
02185886f5 Add functional components resources 2022-08-12 16:49:09 +04:00
Kamran Ahmed
f655934a03 Add JSX introduction 2022-08-12 16:49:09 +04:00
Kamran Ahmed
6b7d141cd7 Add content for create-react-app 2022-08-12 16:49:09 +04:00
Kamran Ahmed
7ae8d5824d Add content for react fundamentals 2022-08-12 16:49:09 +04:00
Kamran Ahmed
b0592a540b Add content for react 2022-08-12 16:49:09 +04:00
Kamran Ahmed
7ab66a3605 Add content directories for react roadmap 2022-08-12 16:49:09 +04:00
Kamran Ahmed
15306862cb Make react roadmap interactive 2022-08-12 16:49:09 +04:00
HS
a428071ee6 Add Elastic Stack docs
* Update 100-elastic-stack.md

* Update content/roadmaps/102-devops/content/107-monitoring/102-logs-management/100-elastic-stack.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-11 18:34:44 +04:00
Kamran Ahmed
2cadbbee28 Add video link for tree data structure 2022-08-11 16:01:59 +04:00
Archit Sharma
8879e694bf Resources added for HTTP (#1453) 2022-08-11 12:30:15 +04:00
Durrez Ahmed
875b78007d Add content for managing servers (#1457)
* Add content for managing servers

* Update content/roadmaps/102-devops/content/102-managing-servers/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-11 12:29:58 +04:00
andran777
a4eb636bd4 Add content for sed, cat, grep, sort and awk
* awk content with syntax and reference links

* awk content updates

* added sed content

* Added Grep Content

* Updates to Sed content

* Sort Content added

* Update 122-grep.md

* Cat Command

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/120-awk.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/121-sed.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/122-grep.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/123-sort.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/126-cat.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-11 12:29:07 +04:00
Kamran Ahmed
37bf6713b4 Add ecosystem content for vue.js 2022-08-09 23:41:44 +04:00
Kamran Ahmed
4b1fc37946 Fix frontend content 2022-08-09 23:41:33 +04:00
Kamran Ahmed
327b93ae26 Add content for SSR 2022-08-09 23:41:05 +04:00
Kamran Ahmed
a2eec9ff51 Add routing and forms docs content 2022-08-09 23:12:28 +04:00
Kamran Ahmed
355c6f99f7 Add slot transition and transition group docs 2022-08-09 23:02:25 +04:00
Kamran Ahmed
12d5500da6 Add plugin and watcher docs 2022-08-09 23:02:14 +04:00
Kamran Ahmed
f01b8ee272 Add custom events docs 2022-08-09 23:02:04 +04:00
Kamran Ahmed
e6fea586fe Add custom directive docs 2022-08-09 23:01:56 +04:00
Kamran Ahmed
c95ed6400e Add async/teleport components and provide/inject 2022-08-09 22:35:30 +04:00
Kamran Ahmed
503a5f793c Add Composition API docs 2022-08-09 22:32:24 +04:00
Kamran Ahmed
76f33486c8 Add content for computed properties 2022-08-09 21:19:35 +04:00
Kamran Ahmed
4b7ea2cce1 Add content for events handling 2022-08-09 21:18:09 +04:00
Kamran Ahmed
6a83ab598e Add content for forms handling 2022-08-09 21:18:02 +04:00
Kamran Ahmed
960eb225e3 Add content for lifecycle hooks 2022-08-09 21:17:54 +04:00
Kamran Ahmed
095f2b083f Add content for lifecycle hooks 2022-08-09 21:11:44 +04:00
Kamran Ahmed
9b5b53d4d6 Add content for conditional rendering 2022-08-09 21:10:46 +04:00
Kamran Ahmed
5e7a52d981 Add rendering lists docs 2022-08-09 21:10:05 +04:00
Kamran Ahmed
4706a8f37e Add vue.js templates/directives and api styles docs 2022-08-09 21:06:40 +04:00
Kamran Ahmed
c208219564 Add content for components section 2022-08-09 20:53:53 +04:00
Kamran Ahmed
f8a207e8b7 Add single file component resources 2022-08-09 20:47:59 +04:00
Kamran Ahmed
8c5b9ae3ea Add component docs 2022-08-09 20:46:55 +04:00
Kamran Ahmed
229e515580 Add Vue CLI docs 2022-08-09 20:45:29 +04:00
Andrea Mihaljević
0b19be0a14 App Configurations Intro (#1452)
* App Configurations Intro

* Update content/roadmaps/105-vue/content/100-fundamental-topics/105-app-configurations.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-09 20:44:32 +04:00
Kamran Ahmed
d4be159f35 Add vue introduction 2022-08-09 20:34:07 +04:00
Andrea Mihaljević
2ec14cfb48 Vue CLI Overview (#1451)
* Vue CLI Overview

* Update content/roadmaps/105-vue/content/100-fundamental-topics/100-vue-cli.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-09 20:26:29 +04:00
Archit Sharma
c984691429 Resources added for LXC Container (#1448)
* Resources added for LXC Container

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/101-lxc.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-09 19:12:41 +04:00
HS
01c4275315 Add prometheus resources 2022-08-09 19:11:52 +04:00
HS
608c8a2b00 Add grafana resources 2022-08-09 19:10:19 +04:00
Paul Marsicovetere
b2bb10079a Add azure devops resources
Azure DevOps documentation
2022-08-09 12:41:09 +04:00
Paul Marsicovetere
442e460b71 Add drone resources
Drone documentation
2022-08-09 12:40:47 +04:00
Paul Marsicovetere
191f71566c Add AWS CDK resources
* Update 101-aws-cdk.md

AWS CDK Documentation

* Update 101-aws-cdk.md
2022-08-09 12:40:31 +04:00
Paul Marsicovetere
49a82d073a Add cloudformation resources
CloudFormation documentation
2022-08-09 12:40:12 +04:00
Paul Marsicovetere
4a15f59a17 Add pulumi resources
Pulumi documentation
2022-08-09 12:39:48 +04:00
Paul Marsicovetere
1bbbc7d67c Add ansible resource
Ansible documentation
2022-08-09 12:39:28 +04:00
Paul Marsicovetere
5388354493 Add Salt resources
Salt documentation
2022-08-09 12:39:08 +04:00
Paul Marsicovetere
ff063bd0d2 Add puppet resources
Puppet documentation
2022-08-09 12:38:50 +04:00
Paul Marsicovetere
0feba5bed1 Add google cloud docs
Google Cloud documentation
2022-08-09 12:38:25 +04:00
Paul Marsicovetere
f6a721a4d0 Add digitalocean resources
DigitalOcean documentation
2022-08-09 12:38:05 +04:00
Paul Marsicovetere
b21e3a4aed Add azure resources
Azure documentation
2022-08-09 12:37:27 +04:00
Paul Marsicovetere
df394605e6 Update 103-heroku.md
Heroku documentation
2022-08-09 12:37:01 +04:00
Kamran Ahmed
aa3467430e Fix responsiveness flicker on interactive vue roadmap 2022-08-08 20:43:34 +04:00
Kamran Ahmed
2d591b63c4 Fix label direction for API calls section 2022-08-08 20:43:34 +04:00
Kamran Ahmed
0069be44f6 Change color for grouped nodes 2022-08-08 20:43:34 +04:00
Kamran Ahmed
079f491c0f Add interactive page for vue roadmap 2022-08-08 20:43:34 +04:00
Kamran Ahmed
780fb66c8b Add content directories for vue roadmap 2022-08-08 20:43:34 +04:00
Kamran Ahmed
3680e8f52c Add groups and names to roadmap JSON 2022-08-08 20:43:34 +04:00
HS
1676d156e7 Add nagios resources
- Add Nagios website, documentation and knowledge base
2022-08-08 20:09:54 +04:00
Kamran Ahmed
de0894c83c Add vue roadmap link to readme 2022-08-08 18:34:23 +04:00
Kamran Ahmed
d22fb3664f Add Vue developer roadmap (#1433) 2022-08-08 18:30:49 +04:00
Sergey Lanzman
a60d8f312f add ngrep (#1432) 2022-08-08 17:40:07 +04:00
Max
b070cb84bd add: Nomad description (#1431) 2022-08-08 15:49:56 +04:00
Kamran Ahmed
3676721a14 Fix broken build 2022-08-08 12:46:34 +04:00
Paul Marsicovetere
074cbddce5 Add CentOS resources
CentOS documentation
2022-08-08 12:45:23 +04:00
Paul Marsicovetere
b0e29ae801 Add Ubuntu resources
Ubuntu Documentation
2022-08-08 12:44:43 +04:00
Paul Marsicovetere
a55e94e9c6 Add RHEL resources
RHEL documentation
2022-08-08 12:43:37 +04:00
Paul Marsicovetere
beb3bbf81a Add suse linux resources
openSUSE documentation
2022-08-08 12:43:20 +04:00
Paul Marsicovetere
8b941feeab Add fedora resources 2022-08-08 12:42:57 +04:00
Paul Marsicovetere
6e9adaa50d Add debian resource
Debian documentation
2022-08-08 12:42:33 +04:00
Paul Marsicovetere
732b156588 Add FreeBSD resources
FreeBSD documentation
2022-08-08 12:42:12 +04:00
Paul Marsicovetere
de79afa645 Add OpenBSD resources
OpenBSD documentation
2022-08-08 12:41:28 +04:00
Paul Marsicovetere
66576bae01 Add NetBSD resources
NetBSD documentation
2022-08-08 12:40:55 +04:00
Paul Marsicovetere
127b9f58d2 Add jenkins resources
Jenkins Documentation
2022-08-08 12:40:28 +04:00
Paul Marsicovetere
9955095e93 Add bamboo resources
Bamboo documentation
2022-08-08 12:39:55 +04:00
Paul Marsicovetere
303a97a6c7 Add teamcity resources
TeamCity documentation
2022-08-08 12:39:27 +04:00
Archit Sharma
32e8cfafec Resources added for Docker (#1417) 2022-08-07 21:55:49 +04:00
Karan Batra
a068d14efe Suggestion to also add roadmap links for nodes (#1415) 2022-08-06 20:28:51 +04:00
Aroyan
2a076bbb0e feat: add HTML templates resource (#1414) 2022-08-06 11:20:34 +04:00
Aroyan
47f91098fd feat: add web.dev learning form course (#1408) 2022-08-06 11:19:34 +04:00
Pavan S Patil
a58b484716 corrected sentence (#1411) 2022-08-06 11:19:20 +04:00
Aroyan
48580ce0ad feat: add shadow dom resource (#1412) 2022-08-06 11:18:35 +04:00
Aroyan
afbd737496 feat: add custom elements resource (#1413) 2022-08-06 11:18:14 +04:00
Esoterydactyl
b215e2d915 Fix typo 2022-08-05 22:59:07 +04:00
Esoterydactyl
1385e6bc3d Add kubernetes resources
* Update 104-kubernetes.md

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/104-kubernetes.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 22:58:51 +04:00
Ulises Rodriguez
74f9a812fb Add resource in JavaScript 2022-08-05 22:54:34 +04:00
ANI
28f388e5be Added Dynamo DB to the NoSQL DB
Added Dynamo DB to the NoSQL DB
2022-08-05 21:13:15 +04:00
levis8989
413934b6d4 Add bash scripting resources
Greetings friend I share with you some of the bash information that has been useful to me, I hope it will be useful for your roadmap which is great.
2022-08-05 19:57:18 +04:00
Sojin
22f20909fe A Concrete Guide to JavaScript Fetch API (#1400)
Talks about the JavaScript Fetch API and how to use it to make asynchronous HTTP requests. This post goes through Sending a Request to Handling the status codes of the Response. Extremely beginner-friendly, easy-to-understand examples.
2022-08-05 19:56:37 +04:00
Aroyan
ea3cf02ee5 feat: add GitHub Actions resources (#1401)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap

* Add Version Control System description

* Add Jekyll content on Frontend roadmap

* Add VuePress content on Frontend roadmap

* Revert "Add VuePress content on Frontend roadmap"

This reverts commit 05625604c2.

* Add Gatsbyjs content on Frontend roadmap

* Update content/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md

* Add content for Gridsome

* Add content for NuxtJS

* Revert "Add content for NuxtJS"

This reverts commit bd533a6ba9.

* Add content for Nuxt.js in Front End roadmap

* feat: add github actions resources

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 19:55:25 +04:00
Kamran Ahmed
c354fa9121 Fix#138 Ungroup certain devops groups 2022-08-05 17:08:35 +04:00
Esoterydactyl
9c0e54262f Update to Infra Provisioning Section (#1380)
* Update readme.md

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:46:43 +04:00
Esoterydactyl
c96f05e245 Update Infrastructure Monitoring (#1381)
* Update readme.md

* Update content/roadmaps/102-devops/content/107-monitoring/100-infrastructure-monitoring/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:45:53 +04:00
Esoterydactyl
46333c42a4 Update Cloud Providers with stub (#1382)
* Update readme.md

* Update content/roadmaps/102-devops/content/108-cloud-providers/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:45:03 +04:00
Esoterydactyl
3bd446577b Update Infrastructure as Code (#1383)
* Update readme.md

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:42:30 +04:00
Esoterydactyl
85d1f33bb0 Add Chef resources
* Update 101-chef.md

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/102-configuration-management/101-chef.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:40:16 +04:00
Esoterydactyl
9b68d69797 Add python resources
Please note that Python 2 is EOL and we should be directing learners exclusively to 3.
2022-08-05 16:37:26 +04:00
Esoterydactyl
ec5c6c592b Add content for containers
* Update 101-containers.md

* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/101-containers.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:36:39 +04:00
Paul Marsicovetere
2b425eaa5e Add nginx resources 2022-08-05 16:34:12 +04:00
Paul Marsicovetere
82faa52d8b Add apache resources
Matching content from https://github.com/kamranahmedse/developer-roadmap/blob/master/content/roadmaps/101-backend/content/122-web-servers/101-apache.md
2022-08-05 16:33:56 +04:00
Paul Marsicovetere
7a1664328b Add caddy resources
Matching content from https://github.com/kamranahmedse/developer-roadmap/blob/master/content/roadmaps/101-backend/content/122-web-servers/102-caddy.md
2022-08-05 16:33:31 +04:00
Paul Marsicovetere
9d5fe1ec76 Add IIS resources
Matching content from https://github.com/kamranahmedse/developer-roadmap/blob/master/content/roadmaps/101-backend/content/122-web-servers/103-ms-iis.md
2022-08-05 16:33:05 +04:00
Paul Marsicovetere
ef77420e8c Add GitLab CI resources
* Update 100-gitlab-ci.md

GitLab CI documentation

* Update 100-gitlab-ci.md

* Update content/roadmaps/102-devops/content/106-ci-cd/100-gitlab-ci.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:32:38 +04:00
Paul Marsicovetere
b4e67232ac Add Travis CI resources
Travis CI documentation
2022-08-05 16:31:16 +04:00
Paul Marsicovetere
27f39b37cf Add Circle CI resources
CircleCI documentation
2022-08-05 16:28:54 +04:00
Kamran Ahmed
05ef7deebb Add aws resources 2022-08-05 16:28:00 +04:00
Paul Marsicovetere
c801c52dda Add terraform content
Terraform documentation
2022-08-05 16:26:21 +04:00
Paul Marsicovetere
4a4ff9c9b4 Add AWS content
* Update 100-aws.md

AWS documentation

* Update content/roadmaps/102-devops/content/108-cloud-providers/100-aws.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:25:23 +04:00
Lorenzo Bloedow
c673672cdc Add content for module bundlers
* Add text and link.

* Update module bundlers

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-05 16:23:19 +04:00
Esoterydactyl
b55772c017 Add content for application monitoring 2022-08-04 22:55:48 +04:00
Esoterydactyl
4ca06bb183 Add networking resources
Simple change to provide more guidance in the networking node.

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-04 22:39:47 +04:00
Kamran Ahmed
bb4c8e7227 Add content for os concepts 2022-08-04 22:36:59 +04:00
Esoterydactyl
671972a5af Add linux resources 2022-08-04 22:36:24 +04:00
Kamran Ahmed
42e6f77a69 Add language content in DevOps roadmap 2022-08-04 18:49:03 +04:00
Kamran Ahmed
e3ecc5ef41 Add content for learn a language 2022-08-04 18:41:40 +04:00
Kamran Ahmed
d70d35feb7 Remove sponsors information from the roadmap pages 2022-08-04 18:34:01 +04:00
Kamran Ahmed
00d189d110 Move resource 2022-08-04 16:56:31 +04:00
Kamran Ahmed
45435ef247 Remove the thanks page 2022-08-04 16:35:36 +04:00
Jon K
259bf45b4e Add content for basic terminal commands
* Update 104-basic-terminal-commands.md

* Update 104-basic-terminal-commands.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-04 16:30:44 +04:00
Jeff Gaboni
18141ac580 Add API brief description (#1196)
* Add API brief description

* Update content/roadmaps/101-backend/content/109-apis/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-04 16:29:22 +04:00
Max Tiessler
b981dc0ecb Add SOAP resources
* Update 102-soap.md

added soap reading

* Update content/roadmaps/101-backend/content/109-apis/102-soap.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-04 16:14:08 +04:00
Wahyu Rahmana
e78a46e016 add learn restfull api tutorial (#1273) 2022-08-04 16:10:21 +04:00
Kamran Ahmed
dafaa96360 Role vs tool distinction in roadmaps 2022-08-04 15:59:52 +04:00
Pieter
a4d946964f Mention short video animation explaining Docker (#1246) 2022-08-04 13:37:12 +04:00
qrav
4fa7486b22 Update OpenID resources
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-04 12:27:23 +04:00
Noah salor
54fbfae7cc Operating systems resources
This is a great series on operating systems in general beginner-friendly

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-04 12:25:46 +04:00
Aroyan
85ff76021f feat: add Lighthouse blog post (#1204)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-04 12:10:54 +04:00
Gabriel Fernandes
5d868989fc Fixed typo in Github workflow (#1247) 2022-08-04 12:06:38 +04:00
Favour Olumese
d08eefe8c3 Update readme.md (#1376)
- Changed "represents" to "represent" because the former is used with singular nouns, while the latter is used with plural nouns (e.g., roadmaps)
- Added commas to "i.e." and "e.g."
- Changed ! to an interrobang (?!)
- Added determiners (the) to "value" and "curator"
2022-08-04 10:57:20 +04:00
Filippo Tessarotto
bfefec4e43 OWASP Security Risks: update link to official Github org (#1291) 2022-08-03 20:06:51 +04:00
Kamran Ahmed
c80a3d546b Add content for pinia 2022-08-03 20:05:35 +04:00
Marcus Vinicius Gomes
0b78983398 Add content for pinia 2022-08-03 20:02:46 +04:00
Deshan D. Abeykoon
ef4cb31517 Added a reading point (#1300)
* Added a reading point

* Update content/roadmaps/100-frontend/content/100-internet/101-what-is-http.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 20:01:10 +04:00
Disney
2973d8c9a5 Fix typo in resource
Change Miss to Mess, typo

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 20:00:11 +04:00
Archit Sharma
2f13b3ddbf Resources added for Open ID (#1316)
* Resources added for Open ID

* Update content/roadmaps/101-backend/content/109-apis/106-authentication/105-openid.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:59:14 +04:00
Adrian Krzemiński
425f656433 Add content for Angular Universal
* Update 100-universal.md

* Update content/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:58:01 +04:00
Sidra Waseem
aaaeb56dc2 Add Sass Video 2022-08-03 19:57:10 +04:00
Dev Patel
92ba7d5913 Adding Column-DBs content (#1323)
* add column-db content

* Add content to Build-Tools

* Update content/roadmaps/101-backend/content/107-nosql-databases/101-column-databases.md

* Update content/roadmaps/100-frontend/content/110-build-tools/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:54:49 +04:00
Jingning Zhang
29b28e224b Add Redis video (#1324)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:51:58 +04:00
potatoJs
e356f4e1ac Add intro to web servers
* filled it up, with most help from the mdn docs

youtube link added( gud vid ), with the mdn docs

* Update content/roadmaps/101-backend/content/122-web-servers/readme.md

Co-authored-by: CookedPotato-1428 <103060805+CookedPotato-1428@users.noreply.github.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:49:59 +04:00
Aroyan
6be452d80b feat: add resources for Database Normalization (#1327)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:46:56 +04:00
Touseef Ahmad
d160e1f515 Add PWA APIs content
* Update 100-apis.md

* Update content/roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:43:43 +04:00
Osman Furkan
6cc0c84956 Fix jwt website link (#1332) 2022-08-03 19:39:11 +04:00
wrongbyte
e8bba697ab Add content in 108-posix-basics (#1333)
* Add content in 108-posix-basics

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/108-posix-basics.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:38:18 +04:00
Evin Weissenberg
7c394ec3f8 Add cookie based authentication content
* Update 100-cookie-based.md

* Update content/roadmaps/101-backend/content/109-apis/106-authentication/100-cookie-based.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:31:57 +04:00
Kamran Ahmed
f705c17523 Add tauri roadmap 2022-08-03 19:29:08 +04:00
ANI
35f844276e Add tauri to frontend roadmap
* Create 103 Tauri.md

Tauri is a great alternative for electron.js. Its super fast and small and secure. A great option every developer must consider.

* Add tauri docs

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:27:57 +04:00
Kamran Ahmed
97cde66096 Add updated devops pdf roadmap 2022-08-03 19:24:22 +04:00
Sojin
e54a44876a Add react native course link
* A Concrete Guide to React Native basics 

I wasn't comfortable following the react native documentation when I was starting out as a web developer (even after learning javascript). this free react native course from udemy was my go-to guide to dive deep into react native basics. After playing with the basic knowledge you will acquire from this course then you'll be able to dive deep into react native documentation. This course structure follows a learn by build format. so you'll not be bored yet you'll be excited to build your first react native app ever.

* Update content/roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-03 19:22:24 +04:00
Sojin
ef46632587 8 Must Know SEO Best Practices For Developers (#1374)
In these SEO guidelines, the article talks about the importance of Clean Code, Site Architecture, Correct Title Tag, Meta Description, Optimized URLs, Meta Robot Tags, Structured Data, internal linking, Page Loading Speed, Website Responsiveness, and Security. which all of these play a crucial part from an SEO perspective for a web developer.
2022-08-03 19:20:01 +04:00
Kamran Ahmed
1a9a9010e1 Adds interactivity to DevOps roadmap (#1375)
* Make devops roadmap interactive

* Add content skeleton for devops roadmap
2022-08-03 19:18:53 +04:00
Kamran Ahmed
0ef4bfa052 Remove issue templates 2022-08-03 18:51:14 +04:00
Kamran Ahmed
b41ed8726d Update browser lists 2022-08-02 21:25:42 +04:00
Archit Sharma
05f39d2492 Resources added for Server side (#1305)
* Resources added for Server side

* Update Server side caching
2022-08-01 16:39:39 +04:00
Sojin
51afe7b099 A Concrete Guide to Document Object Model (#1370)
I found this ebook 2yrs ago explaining about Document Object Model. it was very helpful in my Journey to programming. A must-read for all DOM manipulators of the web.
2022-08-01 16:37:55 +04:00
Ehsan A. Kian
5e5314707a Add Memcached description and ref (#1371)
* Add Memcached description and ref

* Update content/roadmaps/101-backend/content/110-caching/101-server-side/101-memcached.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 16:37:15 +04:00
Mohammad Saleh
c6aa1df112 fix typo in the thanks section (#1342) 2022-08-01 13:32:43 +04:00
Robert Reinold
d112e59179 initd spelling (#1343)
Co-authored-by: Robby Reinold <robby@superconductive.com>
2022-08-01 13:31:49 +04:00
Ehsan A. Kian
5c0601db32 Add Database normalization description and ref (#1345)
* Add Database normalization description and ref

* Update content/roadmaps/101-backend/content/108-more-about-databases/104-database-normalization.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 13:29:07 +04:00
Ikramul Murad
8f7c7d5e6b Resources added for IO management (#1346)
* Resources added for IO management

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/107-io-management.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 13:25:25 +04:00
Sophia Iroegbu
0bb2397cec Add resources for data replication
* Update 106-data-replication.md

I added a short description and video link that explains data replication within four minutes. Please take a look at it, thanks :)

* Update content/roadmaps/101-backend/content/108-more-about-databases/106-data-replication.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 13:23:22 +04:00
jinxm
a001bfa106 doc: Server side rendering (#1349)
* Update readme.md

* Update readme.md

* Update content/roadmaps/100-frontend/content/118-server-side-rendering/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 13:22:12 +04:00
Kamran Ahmed
28df585d1a Add C++ resources 2022-08-01 13:21:52 +04:00
Jordan
7f54175531 Add Resources for Redis (#1350)
* Add Resources for Redis

* Add Resources for Redis - Official website

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 13:18:11 +04:00
Parisa Khaleghi
de28ff99ef Add C++ resources 2022-08-01 13:17:08 +04:00
Jawad
60b6b997e7 Add description to the type checkers (#1356)
* adding description to the type checkers

* Update content/roadmaps/100-frontend/content/116-type-checkers/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 13:16:17 +04:00
acethical
d2b35ca191 Update 100-redis.md (#1357) 2022-08-01 13:12:46 +04:00
Emerson Castillo
e01fe4df5f Added MDN article (#1359) 2022-08-01 13:09:38 +04:00
Hossein Askari
632ecfd8ff Add timeseries database 2022-08-01 13:08:01 +04:00
Mohammed Habib
84141cc535 Add command line resource
Add command line challenge as an interactive learning tool
2022-08-01 11:32:57 +04:00
Mirodil Kamilov
95c0550e53 Add new PHP resource (video tutorial) (#1362) 2022-08-01 11:30:32 +04:00
yao-shang
e00bb9219d Fixed link to "Journey to HTTP/2" article (#1364)
I noticed a single forwardslash broke the link for the "Journey to HTTP/2" article. Same as commit 9a212dc but for the front-end roadmap.
2022-08-01 11:29:41 +04:00
Sojin
576951014c Added a New resource to Fetch API (#1365)
* Added a New resource to Fetch API

RapidAPI gives an in-depth explanation of fetch API. what it is, How to use it to process API responses, HTTP Methods with Fetch API and How can errors be handled. Suited For Beginners and the content is packed with real-time examples.

* Update content/roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 11:29:17 +04:00
Julian Insua
ec2ee855d4 Update gRPC deffinition (#1368)
* Update gRPC deffinition

I thought that some high-level definition of this would be nice.

* Update content/roadmaps/101-backend/content/109-apis/103-grpc.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-08-01 11:19:21 +04:00
AliGaygisiz
cc523dc168 Updated as 6th most starred repo (#1369) 2022-08-01 11:17:18 +04:00
Kamran Ahmed
293c287ae6 Fix broken build 2022-07-14 10:24:56 +05:00
Ehsan A. Kian
0f1ba869ea Update 101-domain-driven-design.md (#1336)
* Update 101-domain-driven-design.md

* Update content/roadmaps/101-backend/content/114-design-and-development-principles/101-domain-driven-design.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-07-14 10:06:48 +05:00
Caleb Joshua
39fc32559e Add 'DNS Records for Newbies' (#1337)
DNS Records for Newbies - How To Manage Website Records - https://www.youtube.com/watch?v=YV5tkQYcvfg
2022-07-14 10:04:33 +05:00
Taeik Lim
b416244be9 Fix typo in journey to http2 (#1326) 2022-07-14 10:02:18 +05:00
Dava
9a212dc65a fix Journey to HTTP/2 link (#1339) 2022-07-14 10:01:57 +05:00
Leonardo Romanini
2939a7e7a1 Add resouce for cqrs and event sourcing (#1307) 2022-06-28 15:02:16 +04:00
Aroyan
fae0bef2f8 fix: remove empty badge at ChakraUI (#1308) 2022-06-28 15:01:58 +04:00
Kamran Ahmed
5d8b14e9c3 Update sponsors section 2022-06-24 01:00:00 +04:00
Taeik Lim
3b0923ce74 Change md5 wiki link to english wiki (#1306) 2022-06-23 20:59:06 +04:00
Kamran Ahmed
ed9cc647ce Remove doppler from sponsors 2022-06-22 13:59:44 +04:00
Arminder Singh
295f404d7b Adding Content and Resources for CSS Frameworks (#1287) 2022-06-22 11:39:35 +04:00
Archit Sharma
786acc072d Resources added for Database indexes (#1301) 2022-06-20 14:57:08 +04:00
Archit Sharma
9c6438726a Resources added for oracle (#1298)
* Resources added for oracle

* Update content/roadmaps/101-backend/content/106-relational-databases/104-oracle.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-06-18 14:13:25 +04:00
Kamran Ahmed
b1fc074416 Remove sponsor 2022-06-18 14:12:28 +04:00
Kamran Ahmed
355f1e610e Update PDFs path 2022-06-14 20:21:44 +04:00
Kamran Ahmed
e5d5043bca Trigger build 2022-06-14 20:12:41 +04:00
Kamran Ahmed
01c4870a63 Update PDFs path 2022-06-14 20:10:39 +04:00
Gabriel Nunes
04b434bdcb Add content for Operating Systems
* Update 101-how-oss-work-in-general.md

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-06-14 16:26:30 +04:00
Alberto Vinícius A. dos Santos
f3366d1fd3 fix: the word "compatible" is written wrong (#1297) 2022-06-14 16:25:17 +04:00
Kamran Ahmed
8eda9bb049 Remove carbon ads 2022-06-14 16:24:53 +04:00
Danil
b845ddad09 Fix wrong content description for Freeze and Seal in JavaScript (#1293) 2022-06-13 11:47:29 +04:00
Archit Sharma
4759604e14 Resources added for Graph databases (#1294) 2022-06-13 11:47:13 +04:00
Archit Sharma
eb29d5348e Resources added for Solr (#1281) 2022-06-07 11:57:28 +04:00
Nico Domino
3de4eaafec Add 'messwithdns.com' julia evans DNS playground (#1283) 2022-06-07 11:56:57 +04:00
helmut a carter
05eefc9e30 corrected grammar: it's -> its (#1284) 2022-06-07 11:56:33 +04:00
Archit Sharma
c9c5349926 Resources added for Neo4j (#1263) 2022-05-24 23:00:07 +04:00
Anu
d47bf04f9e Fixed issue #1217 - missing read label (#1272)
Fixed a typo that was causing missing "read" label on a resource link in frontend developer roadmap, pwa node.
2022-05-24 22:59:45 +04:00
Anu
cd676cacfd Add PWA resource (#1266)
#### What roadmap does this PR target?

- [ ] Code Change
- [x] Frontend Roadmap
- [ ] Backend Roadmap
- [ ] DevOps Roadmap
- [ ] All Roadmaps
- [ ] Guides

#### Please acknowledge the items listed below

- [x] I have discussed this contribution and got a go-ahead in an issue before opening this pull request.
- [x] This is not a duplicate issue. I have searched and there is no existing issue for this.
- [x] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed.
- [x] I have read the [contribution docs](../contributing) before opening this PR.

#### Enter the details about the contribution

I am suggesting the addition of PWA tutorials from MDN Web Docs. Apart from basic introduction to PWAs, it has numerous helpful How-to's such as using client-side storage with IndexedDB and Web Storage API, making mobile-first and installable PWAs, enabling "add to home screen", using notifications and push API etc.
2022-05-21 20:57:46 +04:00
Gustavo Ribeiro
fb79348426 Add scrypt content for back-end roadmap (#1267) 2022-05-21 20:57:31 +04:00
Gustavo Ribeiro
e468763346 Add SSL/TLS content for back-end roadmap (#1268) 2022-05-21 20:57:14 +04:00
Anu
e18df2b24b Add content to PWA peformance node (#1269)
#### What roadmap does this PR target?

- [ ] Code Change
- [x] Frontend Roadmap
- [ ] Backend Roadmap
- [ ] DevOps Roadmap
- [ ] All Roadmaps
- [ ] Guides

#### Please acknowledge the items listed below

- [x] I have discussed this contribution and got a go-ahead in an issue before opening this pull request.
- [x] This is not a duplicate issue. I have searched and there is no existing issue for this.
- [x] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed.
- [x] I have read the [contribution docs](../contributing) before opening this PR.

#### Enter the details about the contribution

I have added a description and several resources that I have used myself and found useful in learning the topic of PWA performance analysis. 
-1st link is from google web.dev and provides several articles on what is speed, how does it matter and how one can measure and optimize the performance of PWAs. 
-2nd link gives detailed explanation on what is PRPL pattern and how it works. 
-3rd resource is from google web.dev and teaches how to implement PRPL pattern to instantly load PWAs
-4th resource is from google web.dev and gives a detailed account about RAIL model and its implementation
-5th resource is from freecodecamp and gives an introduction to Chrome Lighthouse
-6th resource is from PWA training module of Google Developers (Web)
-7th resource is a 5 minute tutorial on how to use Lighthouse to audit your PWAs

I was unable to find a resource on devtools that is specifically catered to PWAs compared to general website performance analysis. Will add later if needed and this contribution gets approval!
2022-05-21 20:56:58 +04:00
Kamran Ahmed
30bc570dc7 Add missing sponsors 2022-05-19 21:51:35 +04:00
Archit Sharma
b18bee3828 Resources added for Linters formatters (#1261) 2022-05-16 19:57:42 +04:00
Nis-chal-Jain
ec6606d9d8 Added Bootstrap Documentation (#1262) 2022-05-16 19:57:20 +04:00
Aroyan
b60e1ee8e8 Add gRPC content on Backend roadmap (#1260)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap

* Add Version Control System description

* Add Jekyll content on Frontend roadmap

* Add VuePress content on Frontend roadmap

* Revert "Add VuePress content on Frontend roadmap"

This reverts commit 05625604c2.

* Add Gatsbyjs content on Frontend roadmap

* Update content/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md

* Add content for Gridsome

* Add content for NuxtJS

* Revert "Add content for NuxtJS"

This reverts commit bd533a6ba9.

* Add content for Nuxt.js in Front End roadmap

* feat(content):add gRPC content on backend roadmap

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-05-13 22:34:09 +04:00
amq
8467abf624 Fix line length issue looking as a typo (#1255) 2022-05-11 16:03:19 +04:00
Gustavo Ribeiro
ef706f700b Add SHA family content for the back-end roadmap (#1257) 2022-05-11 15:56:36 +04:00
Paul Marsicovetere
39b87fdab3 Update 104-basic-terminal-commands.md (#1205)
* Update 104-basic-terminal-commands.md

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/104-basic-terminal-commands.md

* Update 104-basic-terminal-commands.md

* Update 104-basic-terminal-commands.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-04-23 01:33:01 +04:00
Andrey Kudinov
44291d828b Remove extra empty line (#1232) 2022-04-23 01:29:35 +04:00
Andrey Kudinov
d81b56d321 Add vue content (#1233) 2022-04-23 01:29:23 +04:00
Andrey Kudinov
2f36199637 Add react content (#1234) 2022-04-23 01:28:58 +04:00
Andrey Kudinov
eff757633e Add angular content (#1235)
* Add content

* Update content/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-04-23 01:28:22 +04:00
Max Tiessler
bc5dcee8fb Add SOA resources
added reference model for SOA
2022-04-23 01:27:45 +04:00
Paul Marsicovetere
544a530fcb Update 102-mariadb.md (#1206) 2022-04-19 13:17:22 +04:00
Archit Sharma
289d52d135 Resources added for JSON api (#1208)
* Resources added for JSON api

* Update content/roadmaps/101-backend/content/109-apis/101-json-apis.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-04-19 13:16:40 +04:00
Mochammad Daffa Putra Karyudi
814cf7b137 Update 100-orms.md (#1231)
* Update 100-orms.md

* Update content/roadmaps/101-backend/content/108-more-about-databases/100-orms.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-04-19 13:14:43 +04:00
Himanshu Jangid, हिमांशु जाँगिड़
87c3fb0aa8 Update 101-after-js.md added introduction and links (#1210)
* Update 101-after-js.md added introduction

* Update content/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-04-16 16:50:25 +04:00
Saeed Farahi Mohassel
2d17f12caf updated message-borkers pages (#1219)
* updated message-borkers pages

* Update content/roadmaps/101-backend/content/117-message-brokers/100-rabbitmq.md

* Update content/roadmaps/101-backend/content/117-message-brokers/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-04-16 16:48:28 +04:00
Pieter
b6345f9de1 Add explanation of glue records in DNS (#1222) 2022-04-16 16:33:30 +04:00
Lucas Souza
ff4485a871 Add the Vox video "How Does the Internet Works?" (#1227)
* Add the Vox video "How  Does the Internet Works?"

As the article that describes how the internet works, Vox also have a very intersing video about the topic. It's a great production that covers the whole process among sending and receiving a picture between mobile phones.

* Update content/roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-04-16 16:31:01 +04:00
Aroyan
1b9d74525a fix: remove colorScheme attribute at React Native video tutorial (#1201) 2022-03-22 11:50:38 +04:00
Archit Sharma
17120b4db0 Resource add -> Containerization vs Virtualization (#1198) 2022-03-21 10:54:36 +04:00
Aroyan
39a17ec525 fix: remove colorScheme for Ionic video tutorial (#1199) 2022-03-21 10:53:48 +04:00
Archit Sharma
1c8efaf136 Resources added for Web Security Knowledge (#1195) 2022-03-19 17:44:02 +04:00
Archit Sharma
bdd9787690 Resources added for MS IIS (#1194)
* Resources added for MS IIS

* Update content/roadmaps/101-backend/content/122-web-servers/103-ms-iis.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-19 11:15:28 +04:00
Archit Sharma
47542ddfa3 Resources added for CaddyServer (#1191)
* Resources added for CaddyServer

* Update content/roadmaps/101-backend/content/122-web-servers/102-caddy.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-18 10:56:22 +04:00
Aroyan
9e60b1d847 Add Enzyme content on Front End roadmap (#1192) 2022-03-18 10:54:32 +04:00
Marcela Pedrini Duarte
540ec027d7 fix memory management resource type (#1193) 2022-03-18 10:54:16 +04:00
Marcela Pedrini Duarte
fbb9729d01 Update 103-threads-and-concurrency.md (#1185) 2022-03-16 15:24:23 +04:00
Aroyan
04f30d4e2b Add links to ElectronJS on Front End Roadmap (#1187)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap

* Add Version Control System description

* Add Jekyll content on Frontend roadmap

* Add VuePress content on Frontend roadmap

* Revert "Add VuePress content on Frontend roadmap"

This reverts commit 05625604c2.

* Add Gatsbyjs content on Frontend roadmap

* Update content/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md

* Add content for Gridsome

* Add content for NuxtJS

* Revert "Add content for NuxtJS"

This reverts commit bd533a6ba9.

* Add content for Nuxt.js in Front End roadmap

* Add links for ElectronJS in Front End Roadmap

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-16 15:23:24 +04:00
Archit Sharma
601be80bf3 Resources added for Nginx (#1188)
* Resources added for Nginx

* Update content/roadmaps/101-backend/content/122-web-servers/100-nginx.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-16 15:22:36 +04:00
Jack Logan
f3565cf48a Add content - threads and concurrency (#1189) 2022-03-16 15:21:00 +04:00
narasimhauppala
f9b8b8043a update 108-owasp.md (#1161)
* update 108-owasp.md

* Update content/roadmaps/101-backend/content/111-web-security-knowledge/108-owasp.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-14 21:20:11 +04:00
Aroyan
e19d202230 Add content for Nuxt.js in Front End roadmap (#1155)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap

* Add Version Control System description

* Add Jekyll content on Frontend roadmap

* Add VuePress content on Frontend roadmap

* Revert "Add VuePress content on Frontend roadmap"

This reverts commit 05625604c2.

* Add Gatsbyjs content on Frontend roadmap

* Update content/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md

* Add content for Gridsome

* Add content for NuxtJS

* Revert "Add content for NuxtJS"

This reverts commit bd533a6ba9.

* Add content for Nuxt.js in Front End roadmap

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-14 21:18:30 +04:00
Cedrick
cba1419163 Update devops.json - fix typo (#1168) 2022-03-14 21:17:57 +04:00
JAIHARISHAN AV
7110b35b97 Added resources for Basics of SEO in Frontend Development Roadmap (#1169)
* Added resources for Basics of SEO in Frontend Development Roadmap

* Update content/roadmaps/100-frontend/content/101-html/105-seo-basics.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-14 21:17:33 +04:00
Marcela Pedrini Duarte
370e343b91 Added Process Management definition and resources (#1182)
* Update 102-process-management.md

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/102-process-management.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-03-14 19:06:49 +04:00
ncn000
9c4ccf27dc Fixed typo in Java and Go meta descriptions (#1183) 2022-03-14 19:05:27 +04:00
Archit Sharma
44f2f12dd9 Resources added for WebSockets (#1184) 2022-03-14 19:04:24 +04:00
Ameer Hamza
90204a07ff n+1 problem article link (#1160) 2022-03-12 22:53:05 +04:00
Koodies
dd1a31d577 Add MongoDB content (#1162)
Co-authored-by: kewei <tan.kewei@stengg.com>
2022-03-12 22:52:37 +04:00
Archit Sharma
9cecf34b1a Resources added for Relay Modern (#1172) 2022-03-12 22:50:51 +04:00
Archit Sharma
0ba8999121 Resources added for OWASP (#1174) 2022-03-12 22:49:28 +04:00
Archit Sharma
c4ef89be3c Resources added for Content Security policy (#1177) 2022-03-12 22:48:50 +04:00
Abhishek Jindal
c58d956224 Add Angular definition and official docs link (#1179) 2022-03-12 22:48:12 +04:00
Himanshu Hiranandani
b141f0bcc2 Adds Basic details for the Open API Spec (#1163)
* Adds Basic details for the Open API Spec

* Removes paid content and adds a free course
2022-03-03 10:11:08 +04:00
Archit Sharma
9e955a61a9 Resources added for GraphQL (#1164) 2022-03-03 10:10:40 +04:00
Archit Sharma
b105b2eb5f Resources added for Apollo (#1167) 2022-03-03 10:10:09 +04:00
Archit Sharma
17d0c3d41b Resources added for Jasmine (#1149)
* Resources added for Jasmine

* Update content/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md

* Update content/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-25 14:15:24 +04:00
Archit Sharma
a30f1ee9c9 Resources added for Hugo (#1150) 2022-02-25 14:13:15 +04:00
Aroyan
ead5e1d399 Add content for Gridsome (#1151)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap

* Add Version Control System description

* Add Jekyll content on Frontend roadmap

* Add VuePress content on Frontend roadmap

* Revert "Add VuePress content on Frontend roadmap"

This reverts commit 05625604c2.

* Add Gatsbyjs content on Frontend roadmap

* Update content/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md

* Add content for Gridsome

* Add content for NuxtJS

* Revert "Add content for NuxtJS"

This reverts commit bd533a6ba9.

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-25 14:12:47 +04:00
Kamran Ahmed
d3f18267a1 Update thanks 2022-02-24 15:35:14 +04:00
Masoumeh Afshar
4eec5b025f Add link to JavaScript concepts 2022-02-21 10:17:40 +04:00
Kamran Ahmed
07cb445d06 Add hash table video link 2022-02-21 03:35:57 +04:00
Archit Sharma
b2c5d6184c Resources added for Ava (#1147) 2022-02-20 14:11:41 +04:00
Archit Sharma
2a57bb91f0 Resources added for Chai js (#1146)
* Resources added for Chai js

* Update content/roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-19 05:24:10 +04:00
Kamran Ahmed
69ebb08c9e Fix JSON ld response 2022-02-18 20:50:01 +04:00
Kamran Ahmed
1637ef20a6 Fix broken build 2022-02-18 14:18:26 +04:00
Kamran Ahmed
5cbc5e0fdc Update CAP theorem content 2022-02-18 13:07:03 +04:00
Kodey Thomas
8595cc56b5 CAP Theorem Resources (#1099)
* Updated HATEOAS

* Removed Colour Scheme

* CAP Theorem

* Update content/roadmaps/101-backend/content/108-more-about-databases/108-cap-theorem.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-17 18:38:18 +04:00
Himanshu Soni
4199ab05a0 Add cypress content
* Update 102-cypress.md

update documentation

* Update content/roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-17 18:36:40 +04:00
Himanshu Soni
f3b6cd87f4 Add content for react testing library
* Update 101-react-testing-library.md

updated Documentation

* Update content/roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-17 18:34:27 +04:00
narasimhauppala
3dc6bcd8d6 Add content for memory management
* update 105-memory-management

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/105-memory-management.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-17 18:30:53 +04:00
Archit Sharma
c0b19fec32 Added Resources for Mocha (#1141)
* Added Resources for Mocha

* Update content/roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-17 18:19:21 +04:00
Patrick Shushereba
ca092f69f6 [100-github] - Added course to list. (#1143) 2022-02-17 18:18:35 +04:00
Pawel Pisulski
616422b023 Update opensource-banner.tsx (#1144)
Update most starred rank
2022-02-17 16:35:51 +04:00
Kamran Ahmed
0f889af8ab Add doppler logo 2022-02-16 22:27:54 +04:00
Kamran Ahmed
462b532a94 Change doppler logo 2022-02-16 22:26:39 +04:00
Archit Sharma
83611cdbe1 Resources added for VuePress (#1139) 2022-02-15 16:05:10 +04:00
Aroyan
6dbf88d0a6 Add Gatsbyjs content on Frontend roadmap (#1140)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap

* Add Version Control System description

* Add Jekyll content on Frontend roadmap

* Add VuePress content on Frontend roadmap

* Revert "Add VuePress content on Frontend roadmap"

This reverts commit 05625604c2.

* Add Gatsbyjs content on Frontend roadmap

* Update content/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-15 16:04:51 +04:00
Kamran Ahmed
e0c660dcff Add queue data structure video 2022-02-15 04:09:13 +04:00
Kamran Ahmed
0ac5875237 Add queue data structure video 2022-02-15 03:54:29 +04:00
Archit Sharma
35107862cb Added resources for Proton Native (#1134)
* Added resources for Proton Native

* Update content/roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-13 21:57:53 +04:00
Archit Sharma
a2a6d7f3cf Added content for Pick a Framework (#1107)
* Added content for Pick a Framework

* Update content/roadmaps/100-frontend/content/111-pick-a-framework/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-12 20:58:24 +04:00
narasimhauppala
6023376452 Add terminal usage resources
* update 100-terminal-usage.md

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/100-terminal-usage.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-12 13:58:18 +04:00
Archit Sharma
c6def19bcd Added resources for Rollup (#1130)
* Added resources for Rollup

* Update content/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-12 13:56:53 +04:00
Paul Marsicovetere
a18daa7356 Add JWT resources
* Update 104-jwt.md

* Update content/roadmaps/101-backend/content/109-apis/106-authentication/104-jwt.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-12 13:56:09 +04:00
Paul Marsicovetere
9ec90f6abe Add bitbucket resources 2022-02-12 13:54:54 +04:00
Archit Sharma
f4183b7174 Added resources for Parcel (#1133)
* Added resources for Parcel

* Update content/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md

* Update content/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-12 13:54:21 +04:00
Cabir Bayram
d82ca9b5c4 Add Esbuild to "Esbuild" (#1106)
* Add Esbuild to "Esbuild"

* Update content/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md

* Update content/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md

* Update content/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-09 20:17:24 +04:00
qrav
778d21558d Update 102-bcrypt.md (#1108)
* Update 102-bcrypt.md

* Update 102-bcrypt.md
2022-02-09 20:14:27 +04:00
Ivan Kalashnikov
d529ac3a12 HTML abbreviation – fixed typo. (#1109) 2022-02-09 20:13:52 +04:00
Archit Sharma
869716212f Added content in Standardjs (#1111)
* Added content in Standardjs

* Update content/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md

* Update content/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-09 20:13:35 +04:00
Rasyad Subandrio
aab8895998 Add design patterns information
* Update 100-gof-design-patterns.md

Add resources for design patterns.

* Update content/roadmaps/101-backend/content/114-design-and-development-principles/100-gof-design-patterns.md

* Update content/roadmaps/101-backend/content/114-design-and-development-principles/100-gof-design-patterns.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-09 20:12:29 +04:00
Archit Sharma
5f302bf844 Added content for Carlo (#1120) 2022-02-09 20:02:22 +04:00
Paul Marsicovetere
b3db659a9c Update 100-cdn.md (#1123) 2022-02-09 20:01:25 +04:00
qrav
97f2583e0c Update 101-apache.md (#1124) 2022-02-09 20:01:04 +04:00
Paul Marsicovetere
e757f429dc Update 101-oauth.md (#1125) 2022-02-09 20:00:34 +04:00
Kamran Ahmed
258beade8d Add video for stack data structure 2022-02-08 18:17:42 +04:00
Josué Ayala
864c8fb57a Update 102-nuxt-js.md (#1113) 2022-02-06 18:19:05 +04:00
Archit Sharma
00f9a2f523 Added Resources for Less (#1116)
* Added Resources for Less

* Update content/roadmaps/100-frontend/content/109-css-preprocessors/102-less.md

* Update content/roadmaps/100-frontend/content/109-css-preprocessors/102-less.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-06 18:17:42 +04:00
Kamran Ahmed
f32c61b690 Add new sponsors 2022-02-06 18:13:26 +04:00
Cecilia La Place
52a21ba9ac Repaired broken flexbox.io link in Backend Frontend Basics (CSS) (#1100)
* Repaired broken flexbox.io link

* Repaired broken link in CSS README
2022-02-04 10:14:26 +04:00
Kyle Thorpe
8d7911b35d Add content for Monolithic applications (#1102) 2022-02-04 10:14:08 +04:00
Kyle Thorpe
71d0218953 Add content for Microservices (#1103)
Add description and resources for Microservices pattern
2022-02-04 10:13:52 +04:00
Kyle Thorpe
dff393a20b Add content for Serverless (#1104)
Add description and resources for serverless
2022-02-04 10:13:37 +04:00
Archit Sharma
0e83a361e3 Resources added for Styled Components (#1105)
* Resources added for Styled Componenets

* Update content/roadmaps/100-frontend/content/112-modern-css/100-styled-components.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-04 09:58:16 +04:00
Aroyan
6145be9d1b Add Jekyll content on Frontend roadmap (#1095)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap

* Add Version Control System description

* Add Jekyll content on Frontend roadmap
2022-02-03 23:56:04 +04:00
marinerbob
8d25145db6 Update 117-progressive-web-apps topic (#1097) 2022-02-03 23:55:50 +04:00
marinerbob
ff212753f6 Update 102-css topic (#1096) 2022-02-03 23:55:42 +04:00
Archit Sharma
23bb1e18be Added resources for Styled jsx (#1098)
* Added resources for Styled jsx

* Update content/roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md

* Update content/roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-03 23:54:43 +04:00
Archit Sharma
ed991df832 Added Resources for Emotion css (#1094)
* Added Resources for Emotion css

* Update content/roadmaps/100-frontend/content/112-modern-css/103-emotion.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-03 00:20:51 +04:00
marinerbob
26bc8c0e70 Update 102-responsive-design-and-media-queries.md (#1092) 2022-02-02 18:38:33 +04:00
Archit Sharma
0ce8e58f9f Added Resources for Material UI (#1093)
* Added Resources for Material UI

* Update content/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-02 18:38:17 +04:00
Kodey Thomas
b65cf6a026 Updated HATEOAS (#1090)
* Updated HATEOAS

* Removed Colour Scheme
2022-02-02 15:38:58 +04:00
Archit Sharma
bc80ba4194 Added Resources for Radix UI (#1091)
* Added Resources for Radix UI

* Add Radix UI content

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-02-02 15:38:25 +04:00
Uriell
7883875126 Added Resources for HTTP (#1088)
* Adding an extra resource on HTTP

I've recently read this 3-part series on HTTP, mostly focused on HTTP/3 and QUIC, but the first part covers basic concepts about HTTP and how it evolved to HTTP/3 (which is really HTTP/2-over-QUIC) and I find it might be a great reading resource on the topic.

I'm not recommending the 2nd and 3rd parts as they're linked through the 1st one and they diverge a little from the topic of HTTP (going into performance improvements and deployment of QUIC)

* Replicating new HTTP resource to back end roadmap
2022-02-01 10:48:55 +04:00
Archit Sharma
46d53b50eb Resources added for NativeScript framework (#1083) 2022-02-01 10:47:22 +04:00
Archit Sharma
6879b9827b Resources added for Web Assembly (#1084) 2022-02-01 10:47:09 +04:00
Kamran Ahmed
3b8144aafc Add linked list data structure video 2022-01-31 19:51:08 +04:00
Archit Sharma
82af3e2880 Resources added for static site generators (#1087)
* Resources added for static site generators

* Update readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-31 13:36:10 +04:00
Archit Sharma
c791dbb70c Added Resources for Ionic Framework (#1081) 2022-01-30 00:26:49 +04:00
Leandro Morais Azevedo
24559a32ee Added Resources for Interprocess Communication (#1082)
* Added Resources for Interprocess Communication

* Update 106-interprocess-communication.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-30 00:26:11 +04:00
Surya Vamsi
45a66feac9 Remove redundant link (#1077)
The link to the Official Relay Modern website is displayed thrice.
2022-01-29 16:48:23 +04:00
Tóth Bence
272d871d47 Fix badge text for ESLint 2022-01-29 13:24:31 +04:00
Anaxímeno Brito
7cb36ca7ff Update 101-rust.md (#1043)
Added content for the Rust programming language.
Contents: link to the official online book and the rust by example official web page.
2022-01-29 01:28:02 +04:00
Archit Sharma
d55b6927b8 Resources added for RxJS (#1044)
* Resources added for RxJS

* Update content/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/100-rxjs.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-29 01:27:27 +04:00
Archit Sharma
c054a3f56c Resources added for NgRx (#1045)
* Resources added for NgRx

* Update content/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/101-ngrx.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-29 01:25:55 +04:00
LJS
a3b7b45ef3 Update 107-eleventy.md (#1047)
* added resource

Not sure if badge text "read" is fitting. 11ty.rocks is more like a resource treasure chest for 11ty starters.
2022-01-29 01:25:19 +04:00
Nomar Gómez Cabreja
a41ee92931 Add content to Css modules (#1048)
* Add content to Css modules

Also I think you guys should change CSS Modules to Alternative Option as is not used much anymore.

* Update 101-css-modules.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-29 01:24:45 +04:00
Archit Sharma
6db1e89628 Resources added for Flow (#1049) 2022-01-29 01:23:12 +04:00
Paul Marsicovetere
7c9159b5b4 Update 100-npm.md (#1052) 2022-01-29 01:22:56 +04:00
Paul Marsicovetere
c6d35aa63c Update readme.md (#1053) 2022-01-29 01:22:28 +04:00
Paul Marsicovetere
3dc11ae726 Update readme.md (#1054) 2022-01-29 01:22:05 +04:00
Paul Marsicovetere
85186c7fe6 Add HTML resource 2022-01-29 01:21:48 +04:00
Paul Marsicovetere
432c6d5ac3 Add CSS resource 2022-01-29 01:21:25 +04:00
Paul Marsicovetere
f876d2f604 Add Git resource 2022-01-29 01:20:59 +04:00
Madukoma Blessed
ba889de406 Add PostgreSQL resources
* Update 100-postgresql.md

* Update 100-postgresql.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-29 01:20:19 +04:00
Tóth Bence
11e8cf4630 Add ESLint resources
* Update 101-eslint.md

* Update 101-eslint.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-29 01:17:34 +04:00
Kamran Ahmed
ba211922b2 Delete slnx.sqlite 2022-01-29 01:14:06 +04:00
Kyle Zamora
50f078a884 Update 113-ci-cd.md (#1064)
* Update 113-ci-cd.md

* Update 113-ci-cd.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-29 01:13:45 +04:00
Paul Marsicovetere
b8c8dfcab1 Update 100-go.md (#1066) 2022-01-29 01:10:07 +04:00
Paul Marsicovetere
a5093ef4e0 Add Ruby resources 2022-01-29 01:09:45 +04:00
Paul Marsicovetere
883c28cf39 Add MySQL Resources 2022-01-29 01:09:23 +04:00
Paul Marsicovetere
b26dbc2a62 Update 103-mssql.md (#1069) 2022-01-29 01:08:48 +04:00
qrav
bb0788e357 Update-100-md5.md (#1072)
* Update-100-md5.md

* Minor typo change

* Update content/roadmaps/101-backend/content/111-web-security-knowledge/100-md5.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-28 14:41:40 +04:00
Paul Marsicovetere
684d3d9c4a Update readme.md (#1070) 2022-01-28 14:26:19 +04:00
qrav
1bdc3ebd14 Update 102-java.md (#1071) 2022-01-28 14:25:30 +04:00
Kamran Ahmed
52fa640dcf Update WorkOS logo background 2022-01-28 02:33:58 +04:00
Kamran Ahmed
2f0ee7f3ae Add WorkOS logo 2022-01-28 02:29:22 +04:00
Kamran Ahmed
178aa830f1 Add WorkOS Logo 2022-01-28 02:26:37 +04:00
Kamran Ahmed
0ca59ab032 Add workos logo 2022-01-28 02:22:31 +04:00
y8l
594ff9ab81 Add Relational Databases Content (#1034)
* Add Relational Databases Content

* Update readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-22 21:28:33 +04:00
Archit Sharma
fd8ba60b02 Resources added for MobX (#1041) 2022-01-22 21:27:12 +04:00
Archit Sharma
ce4e5a21a0 Resources added for Recoil.js (#1042) 2022-01-22 21:26:35 +04:00
Kyle Thorpe
439d622e11 Add content for Docker (#1039)
Add a description and resources for Docker. However, Docker is a big topic and could probably use some more information.
2022-01-22 21:25:58 +04:00
Kyle Thorpe
ceffafd4ae Add content for Functional Testing (#1038)
Add a description and resources for Functional Testing
2022-01-22 21:25:14 +04:00
Kyle Thorpe
1b5900f5d7 Add content for Unit Testing (#1037)
Add a description and resources for Unit Testing
2022-01-22 21:24:52 +04:00
Kyle Thorpe
800263d195 Add content for Integration Testing (#1036)
Add a description and resources for Integration Testing
2022-01-22 21:24:11 +04:00
Kyle Thorpe
38bf960e0d Add content for Testing (#1035)
* Add content for Testing

Add a description and resources for testing

* Update readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-22 21:23:41 +04:00
Vilmar Pavesi Junior
63ad44a90d Add resources for ACID compliance
* Update 101-acid.md

I add some content to ACID on backend roadmap

* Update 101-acid.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-22 14:21:27 +04:00
Kamran Ahmed
f5f238d779 Add sponsor link — Thanks @kevin-bog 🙌 2022-01-22 13:39:30 +04:00
Archit Sharma
0b00f55238 Progressive Web Apps resources added (#1009) 2022-01-22 13:33:29 +04:00
Archit Sharma
622a6f76b0 React Native resources added (#1022)
* React Native resources added

* Update 100-react-native.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-22 13:32:35 +04:00
Paul Marsicovetere
1adecfacde Add HTML resource
Add free course from Codecademy
2022-01-22 13:31:21 +04:00
Paul Marsicovetere
63f68c4b52 Update 101-css.md (#1025)
Adding codecademy CSS courses
2022-01-22 13:31:06 +04:00
Paul Marsicovetere
6064177f6f Add python resources
* Update 106-python.md

Python additions

* Update 106-python.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-22 13:30:45 +04:00
Paul Marsicovetere
7bbb7979c5 Update 105-javascript.md (#1027)
Add codecademy course
2022-01-22 13:29:16 +04:00
Kyle Thorpe
f7738262ef Add content for Version Control Systems (#1028)
Add a description and resources for version control systems
2022-01-22 13:28:41 +04:00
Kyle Thorpe
2e28eebae1 Add content for Repo Hosting Services (#1029)
Add description and resources for repo hosting services
2022-01-22 13:28:06 +04:00
Kyle Thorpe
7b1d664261 Add content for Scaling (#1030)
* Add content for Scaling

- Add description and resources for vertical and horizontal scaling
- Fix typo

* Update 103-horizontal-vertial-scaling.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-22 13:27:12 +04:00
Kyle Thorpe
729db8f40f Add content for Test Driven Development (#1031)
Add description and resources for TDD
2022-01-22 13:24:46 +04:00
Sachin Kotian
a0095a9b96 Update 100-elasticsearch.md (#1011)
* Update 100-elasticsearch.md

* Add elasticsearch details

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-22 10:29:50 +04:00
Kyle Thorpe
d8b7986a6d Description and resources for SOLID (#1021)
Add a description and resources for the SOLID design principles
2022-01-21 18:08:18 +04:00
Archit Sharma
2eab2b77ac Resources added for NPM Scripts (#1012)
* Resources added for NPM Scripts

* Update 100-npm-scripts.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-21 09:27:15 +04:00
Mark Rossetti
d03f91cb01 Add link to Roy Fielding's paper (#1017)
* Add link to Roy Fielding's paper

The backend diagram makes reference to Roy Fielding's dissertation. I thought it would be helpful to have a direct link to his paper for convenience.

* Update 100-rest.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-21 09:24:15 +04:00
Kyle Thorpe
fbb252baf3 KISS description and resources (#1018)
Add description and resources for KISS software development/design principle
2022-01-21 09:21:39 +04:00
Kyle Thorpe
1678bb8910 YAGNI description and resources (#1019)
* YAGNI description and resources

Add description and resources for YAGNI software development/design principle

* Update 105-yagni.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-21 09:21:15 +04:00
Kyle Thorpe
cdbfa8ae9a DRY description and resources (#1020)
* DRY description and resources

Add a description and resources for DRY software development/design principle

* Minor space change

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-21 09:20:16 +04:00
tigor7
7b1f8c32af Fixed 'dns and how it works' button/node (#1014) 2022-01-19 10:25:48 +04:00
Kamran Ahmed
8899bab70d Add getform logo 2022-01-18 13:32:46 +04:00
Kamran Ahmed
d892107e6e Add getform logo 2022-01-18 13:29:52 +04:00
Amjith OS
b8247b6d77 added content in JavaScript (learn a language) in backend roadmap (#1006)
* added content in JavaScript (learn a language) in backend roadmap

* Update node.js resources

Co-authored-by: Amjith <amjithomy@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-17 14:53:39 +04:00
Archit Sharma
a912acd6d7 Added Resources for Vue.js (#1008)
* Added Resources for Vue.js

* Update content/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md

* Update content/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-17 14:48:05 +04:00
Archit Sharma
084a4d3569 Apollo Description and Content added (#999)
* Apollo Description and Content added

* Update content/roadmaps/100-frontend/content/119-graphql/100-apollo.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-15 21:11:21 +04:00
Truncgil Technology
2f23c69323 Add PHP resources
* Update 103-php.md

* Update content/roadmaps/101-backend/content/103-learn-a-language/103-php.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-15 21:05:36 +04:00
Archit Sharma
be22e8dc6b Added Description and Resources for Relay Modern (#1000)
* Added Description and Resources for Relay Modern

* Update content/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md

* Update content/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md

* Update content/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md

* Update content/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md

* Update content/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-15 20:55:48 +04:00
LJS
02a0b864a5 Update 107-eleventy.md (#1004)
* Update 107-eleventy.md

* added summary

* added resource

* Update content/roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-15 20:50:15 +04:00
LJS
894eda60ad Update 104-accessibility.md (#1002)
* Update 104-accessibility.md

What I did: added new resource item
Why I chose it: Helped me several times to find a) a starting point on how to build an accessible web experience regarding a specific component and b) provides usually links with in-depth examples

* Update content/roadmaps/100-frontend/content/101-html/104-accessibility.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-15 12:27:48 +04:00
Anshul Yadav
48d8086884 🎯Added a resource - (YouTube Video) (#1001)
✌️Added a youtube video as a watchable resource I found very useful and enough. I think knowing that much about how the browsers work is enough for the Front-end journey. The video covered all the important topics from User-Interface to Rendering Engine.
2022-01-15 12:25:48 +04:00
Archit Sharma
efad09de7f GraphQL free Course for Beginners added (#997) 2022-01-14 20:06:09 +04:00
Santiago Bioletto
28e92ac515 Add Os and General KnowKnowledge content at backend roadmap (#998)
* Add Os and General KnowKnowledge content at backend roadmap

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-14 20:05:52 +04:00
Kamran Ahmed
a4d5c7c353 Add PostCSS content 2022-01-13 19:47:38 +04:00
Ragul
c2737d8a42 Update 106-cors.md (#995)
* Update 106-cors.md

* Update description

* Add resources for CORS

* Update content/roadmaps/101-backend/content/111-web-security-knowledge/106-cors.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-13 17:40:47 +04:00
Aroyan
f7dd8e71fd Add HTTPS content on Backend roadmap (#996)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap

* Add HTTPS content on Backend roadmap
2022-01-13 17:33:42 +04:00
Vijeth
791c402878 Added a new course (#994) 2022-01-12 17:37:18 +04:00
Karan Shah
8ed9d0c106 Update 100-go.md (#993)
- added a one liner explaining what Go does
- added the Go resources listed on the go.dev website
2022-01-12 10:18:00 +04:00
Aroyan
542b0ce117 Add Git content on Backend roadmap (#992)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap

* Add Git content on Backend roadmap
2022-01-11 22:26:57 +04:00
Aroyan
cacddd10f2 Add GitLab content on backend roadmap (#991)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content

* Add GitLab content at backend roadmap
2022-01-11 15:20:20 +04:00
Md. Jamal Uddin
350d160eb7 Chakra UI resources (#989)
* add react.js resources

* add css resources

* add graphql resources

* add redux resources

* add typescript resources

* add next.js resources

* add chakra-ui resources

* Remove duplicate links

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-11 11:25:01 +04:00
Chris
f22b73bb7a Add official Jest website (#990) 2022-01-11 11:24:00 +04:00
Emmanuel Allison
874437586e Add content for C#
* Update 103-csharp.md

* Fix broken link for resource

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-01-10 10:15:01 +04:00
Aroyan
40ab1f6c77 Add GitHub content (#987)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content

* Add GitHub content

* Add GitHub content

* Add GitHub content
2022-01-10 10:13:33 +04:00
Kamran Ahmed
5dce3dd7ab Add links to resources 2022-01-09 13:54:12 +04:00
Kamran Ahmed
13f018893a Add array data structure video 2022-01-09 12:04:54 +04:00
Kamran Ahmed
0400b1d6c0 Add interactivity for the backend roadmap 2022-01-09 11:29:22 +04:00
Aroyan
a0cb4e2568 Add Vite content (#984)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content

* Add Vite content
2022-01-08 11:23:14 +04:00
Aroyan
157dde2bfb Add Prettier content (#982)
* Add Bootstrap CSS content

* Add Bulma CSS content

* Add Prettier content
2022-01-07 10:21:58 +04:00
Aroyan
07ad7bb476 Add Bulma CSS content (#981)
* Add Bootstrap CSS content

* Add Bulma CSS content
2022-01-06 09:47:44 +04:00
Kamran Ahmed
f721af1251 Update dependencies 2022-01-05 19:29:32 +04:00
Aroyan
42ed79e117 Add Bootstrap CSS content (#979) 2022-01-05 19:28:30 +04:00
Justin Irabor
07916250f5 Suggest content to 'Testing your apps' component (#980) 2022-01-05 19:26:30 +04:00
Yankang LI
a7dd2df70e bug fix: added testing files (#978)
Co-authored-by: Loetsli <loetsli@MacBook-Pro-von-Loetsli.local>
2022-01-02 15:38:41 +04:00
Kamran Ahmed
22e0758c6e Update sponsors 2022-01-01 18:53:58 +04:00
Kamran Ahmed
b27a3abc10 Add typescript and next.js resources 2022-01-01 18:38:13 +04:00
Md. Jamal Uddin
b0e5530f24 Add Next.js Resources (#974)
* add react.js resources

* add css resources

* add graphql resources

* add redux resources

* add typescript resources

* add next.js resources
2022-01-01 18:35:24 +04:00
Kamran Ahmed
8da5180062 Update year 2022 2022-01-01 18:34:03 +04:00
Vineet Likhitkar
d82a96b693 Add CSS Preprocessor Resources (#975) 2022-01-01 18:29:32 +04:00
Kamran Ahmed
1277089793 Update typescript resources 2021-12-26 19:11:59 +04:00
Md. Jamal Uddin
623d9398f2 Add TypeScript resources (#973)
* add react.js resources

* add css resources

* add graphql resources

* add redux resources

* add typescript resources
2021-12-26 19:08:44 +04:00
Md. Jamal Uddin
09f92bf601 Redux resources (#956)
* add react.js resources

* add css resources

* add graphql resources

* add redux resources
2021-12-26 14:05:52 +04:00
Kamran Ahmed
3ae18b3d30 Add vuex resources 2021-12-26 14:05:34 +04:00
Hassan TAJIRI
c498adc530 Update 100-vuex.md (#963)
Vuex quick description
2021-12-26 14:03:13 +04:00
Kamran Ahmed
399c548570 Add typescript resources 2021-12-26 13:54:53 +04:00
sehajanand
acfca9f169 Update 100-typescript.md (#957) 2021-12-26 13:48:05 +04:00
Jody Zhou
0312a89d8c Updated the Electron section (#965)
* Updated the Electron section

Updated the Electron section in the front end road map

* Update 100-electron.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2021-12-22 00:10:02 +04:00
Eihab Khan
5e441f647b Added [course] Flexbox learning resource 2021-12-22 00:09:20 +04:00
Kamran Ahmed
8be9eb6101 Add translations link 2021-12-21 14:42:02 +04:00
Kamran Ahmed
0c799cb43b Update sponsors information 2021-12-20 14:31:18 +04:00
Kamran Ahmed
6fd69d71e0 Add doppler logo 2021-12-18 12:12:48 +04:00
Kamran Ahmed
0bb93aeef0 Add data structures video link 2021-12-12 22:17:39 +01:00
Felipe Sousa
fb55ccc5cf Add content to "Webpack" 2021-12-12 20:20:42 +01:00
Kamran Ahmed
8054ac8d0e Add JS course link 2021-12-11 20:04:10 +01:00
Kamran Ahmed
6846ed12f2 Add CSS architecture resources 2021-12-11 03:05:08 +01:00
Kamran Ahmed
684b9667a4 Fix broken license link 2021-12-11 02:54:16 +01:00
Kamran Ahmed
a35c7ffaf0 Add package managers content 2021-12-11 02:49:22 +01:00
Kamran Ahmed
8127fbb4ee Add security content for cors and owasp 2021-12-11 02:25:41 +01:00
Kamran Ahmed
7afa06fc95 Add web security resources 2021-12-11 02:17:47 +01:00
Kamran Ahmed
8991d2c934 Add keywords for roadmapsg 2021-12-11 01:39:36 +01:00
Kamran Ahmed
39542ffa37 Add resources for git and version control systems 2021-12-11 01:26:31 +01:00
Kamran Ahmed
6e05d1c992 Add JavaScript concepts resources 2021-12-11 01:02:26 +01:00
Kamran Ahmed
12fc4e671e Add Modern JavaScript resources 2021-12-11 00:24:55 +01:00
Kamran Ahmed
3f7d706f04 Add Fetch API resources 2021-12-11 00:19:14 +01:00
Kamran Ahmed
712d65d0e6 Add DOM and JavaScript resources 2021-12-10 23:31:26 +01:00
Kamran Ahmed
5f44649f5e Add sass links 2021-12-10 23:06:12 +01:00
sehajanand
873be4ad85 Update 100-sass.md (#955)
* Update 100-sass.md

* Update title for link

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2021-12-10 23:00:56 +01:00
sehajanand
8df92be9bc Update 104-accessibility.md (#953)
* Update 104-accessibility.md

* Append the resource

* Update badge text

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2021-12-10 22:56:16 +01:00
Kamran Ahmed
38a83316b1 Add responsive web design content 2021-12-10 19:45:36 +01:00
Kamran Ahmed
02826f10d3 Add SEO content 2021-12-10 19:38:20 +01:00
Kamran Ahmed
aa7413ce7a Add pinterest domain verification 2021-12-10 19:14:08 +01:00
Kamran Ahmed
fb8f14a0db Add support for rich snippets 2021-12-10 15:15:13 +01:00
Kamran Ahmed
220efadfaa Add rel=nofollow for resource links 2021-12-10 14:39:47 +01:00
Kamran Ahmed
77a9c31c6b Fix bad CLS score for frontend roadmapg 2021-12-10 14:21:51 +01:00
Kamran Ahmed
fb5a7fb09f Add making layouts and html best practices links 2021-12-10 14:02:17 +01:00
Kamran Ahmed
6eb10b4cfd Update accessibility resources 2021-12-10 13:54:26 +01:00
Samarth Gupta
de2b672760 Added Accessibility content (#949) 2021-12-10 13:52:33 +01:00
Md. Jamal Uddin
fe716af733 add graphql resources (#950)
* add react.js resources

* add css resources

* add graphql resources
2021-12-10 13:51:25 +01:00
Kamran Ahmed
fdacc02dcf Add forms and validations resources 2021-12-10 13:50:14 +01:00
Johan Melin
867e3f2a8c Update 102-forms-and-validations.md
Added information and link.
2021-12-10 13:33:32 +01:00
Kamran Ahmed
6e451ef5cf Add JavaScript and VCS content and fix rendering issue 2021-12-10 00:52:40 +01:00
Kamran Ahmed
56816d15f8 Add OOCSS content 2021-12-10 00:28:53 +01:00
Kamran Ahmed
15669982d9 Update resource styling for BEM 2021-12-10 00:24:50 +01:00
Kamran Ahmed
88c6b47d01 Update dependencies 2021-12-10 00:21:50 +01:00
Lucas Vargas
ed84e905ed Update 100-bem.md
Add info and resources of BEM
2021-12-10 00:21:28 +01:00
Kamran Ahmed
3d0153b2fe Fix invalid marking of done nodes 2021-12-09 23:13:37 +01:00
Kamran Ahmed
a174590424 Add semantic HTML section 2021-12-09 23:07:54 +01:00
Kamran Ahmed
a155832f69 Add flutter courses 2021-12-09 22:56:25 +01:00
Lucas Vargas
75eb3a0237 Update 102-flutter.md
Add links with more information about Flutter and tutorials
2021-12-09 22:56:25 +01:00
Kamran Ahmed
a1576fd348 Fix multiple group marking as done 2021-12-09 22:42:44 +01:00
Kamran Ahmed
8a296d99c4 Add CSS resources 2021-12-09 22:38:04 +01:00
Kamran Ahmed
10f9043516 Add CSS resources 2021-12-09 22:37:27 +01:00
Kamran Ahmed
37155e7d3c Add CSS resources 2021-12-09 22:32:53 +01:00
Kamran Ahmed
ff7d24d725 Update style of resources 2021-12-09 22:32:53 +01:00
Eihab Khan
7794386573 Added CSS Flexbox learning resource 2021-12-09 22:32:53 +01:00
Md. Jamal Uddin
952884ec99 add CSS resources (#946)
* add react.js resources

* add css resources
2021-12-09 22:32:31 +01:00
Kamran Ahmed
22fa464cca Add CSS resources 2021-12-09 20:54:06 +01:00
Kamran Ahmed
66f939f361 Update style of resources 2021-12-09 20:54:06 +01:00
Kamran Ahmed
25b6700812 Bump roadmap in GitHub ranking 2021-12-09 20:54:06 +01:00
Kamran Ahmed
7c53be8892 Change finished node marking 2021-12-09 20:54:06 +01:00
Kamran Ahmed
be61c144e0 Change finished node marking 2021-12-09 20:54:06 +01:00
Kamran Ahmed
537ffc365e Marking progress on roadmap 2021-12-09 20:54:06 +01:00
Kamran Ahmed
dd7306cd6d Make edit page less attention grabbing 2021-12-09 20:54:06 +01:00
Kamran Ahmed
ed1c8e3709 Update banner colors 2021-12-09 20:54:06 +01:00
Eihab Khan
36e2e95ab9 Added CSS Flexbox learning resource 2021-12-09 18:48:45 +01:00
Kamran Ahmed
7309e9640c Fix link on the frontend roadmap 2021-12-09 18:48:45 +01:00
Kamran Ahmed
be17f594fe Bump roadmap in GitHub ranking 2021-12-09 18:17:02 +01:00
Kamran Ahmed
06329b27c1 Change finished node marking 2021-12-09 18:09:32 +01:00
Kamran Ahmed
0e05128980 Change finished node marking 2021-12-09 18:05:01 +01:00
Kamran Ahmed
9a22a457f5 Marking progress on roadmap 2021-12-09 16:39:09 +01:00
Kamran Ahmed
985da9ae30 Make edit page less attention grabbing 2021-12-09 13:30:55 +01:00
Kamran Ahmed
47e2a9b968 Update banner colors 2021-12-09 13:25:01 +01:00
Kamran Ahmed
074adee8f0 Fix link on the frontend roadmap 2021-12-08 20:05:32 +01:00
Kamran Ahmed
9f68c096a9 Add github resources 2021-12-08 19:52:14 +01:00
Kamran Ahmed
e4654022f0 Fix positioning for frontend roadmaps 2021-12-08 19:40:34 +01:00
Kamran Ahmed
c4291394fe Add react resources 2021-12-08 19:40:34 +01:00
Kamran Ahmed
9b29d240e3 Add tailwind CSS content 2021-12-08 19:40:34 +01:00
Alen Abraham
d09c91247e feat: added github learning resources 2021-12-08 19:40:24 +01:00
Md. Jamal Uddin
51895be81e add react.js resources 2021-12-08 19:27:52 +01:00
Ahmad Moghazi
a79b65a1b4 Add interactive content for tailwind-css 2021-12-08 19:12:00 +01:00
Kamran Ahmed
3fe41d2071 Change hover interactions for mobile 2021-12-08 19:10:44 +01:00
Kamran Ahmed
b25111415f Change homepage roadmap items interaction 2021-12-08 18:59:56 +01:00
Kamran Ahmed
0c3ea386f5 Update sponsors 2021-12-08 18:55:09 +01:00
Kamran Ahmed
d1f6951da2 Fix roadmap responsivness 2021-12-08 16:22:21 +01:00
Kamran Ahmed
7ac1dd9b9c Add interactive frontend roadmap version 2021-12-08 14:59:16 +01:00
Kamran Ahmed
ba21172d20 Add interactive frontend roadmap version 2021-12-08 14:47:05 +01:00
Kamran Ahmed
93b538f4e1 Add interactive frontend roadmap version 2021-12-08 14:27:39 +01:00
Kamran Ahmed
7cac02f4b4 Update resources 2021-12-08 14:06:56 +01:00
Kamran Ahmed
42e98e9cc6 Add interactive button 2021-12-08 14:00:12 +01:00
Kamran Ahmed
0221964362 Add interactive button 2021-12-08 13:48:08 +01:00
Ryan Williams
cbf0b2c496 Fix DBA Link that 404s 2021-12-07 23:35:17 +01:00
Kamran Ahmed
1ff9c11361 Refactor and add json url 2021-12-07 14:13:13 +01:00
Kamran Ahmed
b681aaa52e Refactor and add json url 2021-12-07 14:12:40 +01:00
Kamran Ahmed
8a99ecbecd Refactor and add json url 2021-12-07 14:05:13 +01:00
Kamran Ahmed
82456021ad Refactor roadmap header 2021-12-07 13:10:17 +01:00
Kamran Ahmed
6eba4a2afd Add resources for internet and http 2021-12-06 22:55:09 +01:00
Kamran Ahmed
c3704107a3 Add interactive roadmap error handling and loading 2021-12-06 22:18:57 +01:00
Kamran Ahmed
102cd8885c Add interactive roadmap error handling and loading 2021-12-06 22:18:19 +01:00
Kamran Ahmed
8259a83921 Add loader screen 2021-12-06 21:54:14 +01:00
Kamran Ahmed
c1ecf9d8a5 Add doppler logo 2021-12-06 15:24:43 +01:00
Kamran Ahmed
381801120e Add doppler logo 2021-12-06 14:46:27 +01:00
Kamran Ahmed
fe458e0790 Unbind window listeners on content drawer 2021-12-05 02:46:27 +01:00
Kamran Ahmed
a42e92781a Styling for badge links 2021-12-05 02:38:42 +01:00
Kamran Ahmed
8255f69257 Fix broken build 2021-12-05 02:04:20 +01:00
Kamran Ahmed
30e6c15ddb Add resource group 2021-12-05 02:03:07 +01:00
Kamran Ahmed
3eb13043ce Interactive frontend roadmap with contribution links 2021-12-05 01:50:05 +01:00
Kamran Ahmed
16b2019d06 Fix drawer size 2021-12-05 00:44:17 +01:00
Kamran Ahmed
a0a5e74281 Fix pinch zoom not working on resources 2021-12-04 20:27:35 +01:00
Kamran Ahmed
5881c27526 Fetch roadmap json for interactive version 2021-12-04 20:11:24 +01:00
Kamran Ahmed
c16bed02ca Fix drawer width 2021-12-04 19:53:52 +01:00
Muhammad Asad Jivani
37432582c0 fix: link to golang road map. 2021-12-04 16:05:24 +01:00
Kamran Ahmed
0d71b2b1e6 Add drawer for interactive roadmap 2021-12-04 16:04:31 +01:00
Kamran Ahmed
ff3d0489cc Group page and content loading 2021-12-04 14:04:44 +01:00
Kamran Ahmed
a94af0ec14 Add group name to content dirs 2021-12-04 14:04:23 +01:00
Kamran Ahmed
4f1d4feff6 Add breadcrump on roadmap page 2021-12-04 13:11:20 +01:00
Kamran Ahmed
7bc3b4a0f3 Fix group page 2021-12-04 12:43:29 +01:00
Kamran Ahmed
9d9a6506cc Update roadmap 2021-12-04 12:41:57 +01:00
Kamran Ahmed
3b47cd3542 Add group age 2021-12-04 12:21:06 +01:00
Kamran Ahmed
f500d49275 Refactor roadmap page logic 2021-12-03 20:44:49 +01:00
Kamran Ahmed
098303b78b Refactor roadmap page logic 2021-12-03 19:58:25 +01:00
Kamran Ahmed
bf56db60bc Add logic for content file path generation 2021-12-03 15:01:23 +01:00
Kamran Ahmed
cdc362625a Add logic for content file path generation 2021-12-03 14:36:31 +01:00
Kamran Ahmed
2ec335edc8 Rename content path to landing path 2021-12-03 14:16:41 +01:00
Kamran Ahmed
064f97108e Update repository link 2021-12-02 18:20:48 +01:00
Kamran Ahmed
7d0bc2e8a2 Add website link 2021-12-02 18:10:50 +01:00
Kamran Ahmed
ea4de11e30 Update sponsors section 2021-12-02 17:53:30 +01:00
Kamran Ahmed
4e7d8512cc Update readme 2021-12-02 17:52:13 +01:00
Kamran Ahmed
91ef32722a Update deployment workflow 2021-12-02 17:47:15 +01:00
Kamran Ahmed
87fba80759 Trigger build 2021-12-02 17:46:27 +01:00
Kamran Ahmed
0acd1d1fcd Trigger build 2021-12-02 17:42:17 +01:00
Kamran Ahmed
5228fe936f Update badges 2021-12-02 17:37:39 +01:00
Kamran Ahmed
b221016269 Remove twitter link 2021-12-02 17:36:46 +01:00
Kamran Ahmed
f7d1d61528 Add license and code of conduct 2021-12-02 17:32:51 +01:00
Kamran Ahmed
1467865e45 Update readme 2021-12-02 17:27:00 +01:00
Kamran Ahmed
17e2ffd110 Update readme 2021-12-02 17:24:31 +01:00
Kamran Ahmed
d177a13aa6 Update readme 2021-12-02 17:22:01 +01:00
Kamran Ahmed
1afe684699 Add roadmap path generation 2021-12-02 16:57:13 +01:00
Kamran Ahmed
1fbdf68573 Add interactive roadmap setup 2021-12-01 22:53:40 +01:00
Kamran Ahmed
3feea57204 Add eventual consistency video 2021-11-30 23:52:03 +01:00
Kamran Ahmed
00d8877a12 Add sponsors 2021-11-30 23:47:49 +01:00
Kamran Ahmed
67c4407d30 Add docs for roadmap content 2021-11-27 21:05:03 +01:00
Kamran Ahmed
69679addc3 Add roadmap content skeleton generation command 2021-11-27 20:44:24 +01:00
Kamran Ahmed
272eafa013 Add roadmap content skeleton generation command 2021-11-27 20:10:26 +01:00
Kamran Ahmed
a19b4da20d Add content dir setup command 2021-11-27 19:12:37 +01:00
Kamran Ahmed
47349f00c2 Update video titles 2021-11-27 15:17:36 +01:00
Kamran Ahmed
dbedae78ca Fix broken hover state on mobile 2021-11-27 12:46:24 +01:00
Kamran Ahmed
5733476fd9 Update frontend roadmap files 2021-11-27 02:13:16 +01:00
Kamran Ahmed
5c17deddf5 Add SSH, TLS, SSL video 2021-11-25 21:35:36 +01:00
Kamran Ahmed
f1b5357358 Update sticky banner color 2021-11-22 17:34:42 +01:00
Kamran Ahmed
6a319fe6cc Update roadmap block color 2021-11-22 17:30:10 +01:00
Kamran Ahmed
269e9eb90b Upcoming roadmaps design 2021-11-22 16:53:12 +01:00
Kamran Ahmed
844a38e739 Redesign homepage 2021-11-22 16:49:32 +01:00
Kamran Ahmed
6c8b899a35 Add grouping to frontend roadmap 2021-11-19 18:25:23 +01:00
Kamran Ahmed
f246b065a1 Update dependencies 2021-11-19 14:01:14 +01:00
Kamran Ahmed
97826210fa Add sponsors 2021-11-15 14:25:04 +01:00
Kamran Ahmed
ff5706c82f Add video links 2021-11-15 14:05:00 +01:00
Kamran Ahmed
609cce403a Update sitemap 2021-11-05 21:36:16 +01:00
Kamran Ahmed
87ad491b2c Fix spelling mistakes 2021-11-03 20:30:27 +01:00
Kamran Ahmed
ef25a14af1 Upgrade dependencies 2021-10-28 23:51:16 +02:00
Kamran Ahmed
3ac1de7fb0 Rearrange sections on homepage 2021-10-27 00:34:56 +02:00
Kamran Ahmed
09e8796159 Add big-o notation video 2021-10-27 00:32:15 +02:00
Kamran Ahmed
0d3c3eea11 Add java developer roadmap title 2021-10-24 12:30:43 +02:00
Kamran Ahmed
992b6990a3 Add pdf URL 2021-10-23 01:31:02 +02:00
Kamran Ahmed
ffa18538ff Add pdf URL 2021-10-23 01:30:45 +02:00
Kamran Ahmed
65307e7cc1 Add yaml video link 2021-10-23 01:26:32 +02:00
Kamran Ahmed
46d9fd66f3 Add java developer roadmap 2021-10-23 01:24:15 +02:00
Kamran Ahmed
2344e6c4c3 Add sponsor link 2021-10-10 20:02:14 +02:00
Kamran Ahmed
8899b0d196 Add video for floating point math 2021-10-10 16:01:42 +02:00
Kamran Ahmed
d4613330f4 Update sponsors list 2021-10-09 18:38:58 +02:00
Kamran Ahmed
283632713a Add sponsor link 2021-10-09 18:33:36 +02:00
Kamran Ahmed
d3b96d20cc Enable carbon ads 2021-10-09 18:31:55 +02:00
Kamran Ahmed
374e8a04fd Add cap theorem video 2021-10-05 08:05:24 +02:00
Kamran Ahmed
f1b6d13928 Add youtube header on roadmap pages 2021-10-05 07:55:44 +02:00
Kamran Ahmed
6a4af77ba8 Compress roadmaps images 2021-10-01 11:19:38 +02:00
Kamran Ahmed
a2db93873b Redirect youtube videos to youtuube 2021-10-01 10:59:46 +02:00
Kamran Ahmed
f523b077a4 Update go roadmap title 2021-09-30 23:22:21 +02:00
Kamran Ahmed
412eaa004e Add golang pdf download 2021-09-30 23:20:34 +02:00
Kamran Ahmed
8e71b3c448 Add go developer roadmap 2021-09-30 23:10:41 +02:00
Kamran Ahmed
12030deeea Add sponsor info 2021-09-29 17:47:37 +02:00
Kamran Ahmed
5a89ecf2d8 Add angular developer roadmap 2021-09-29 17:36:57 +02:00
Kamran Ahmed
991d344a77 Add python roadmap pdf 2021-09-29 14:51:58 +02:00
Kamran Ahmed
cc06819a50 Update python roadmap 2021-09-27 20:34:46 +02:00
Kamran Ahmed
eb1beecfa7 Add python roadmap 2021-09-27 11:32:20 +02:00
Kamran Ahmed
135ef6a11a Fix date for proxy-servers guideg 2021-09-27 10:52:29 +02:00
Kamran Ahmed
e902c062fc Fix z-index issue on the ad 2021-09-26 22:04:14 +02:00
Kamran Ahmed
685c402f28 Add python roadmap 2021-09-26 22:02:59 +02:00
Kamran Ahmed
c88e04f809 Update project files 2021-09-26 20:47:26 +02:00
Kamran Ahmed
d2167555da Move content/project to public 2021-09-26 20:36:57 +02:00
Kamran Ahmed
3f61854ccc Add acid video 2021-09-26 17:09:58 +02:00
Kamran Ahmed
9ca201709d Add react-query to API calls in react roadmap 2021-09-26 16:48:07 +02:00
Kamran Ahmed
0c3486df37 Remove tweet links from guides 2021-09-26 09:47:47 +02:00
Kamran Ahmed
27d3704390 Remove sysadmin roadmap 2021-09-25 23:04:31 +02:00
Kamran Ahmed
86bd47c45d Fix styling for nested lists 2021-09-24 10:34:51 +02:00
Kamran Ahmed
b8c2056557 Fix styling for nested lists 2021-09-24 10:33:46 +02:00
Kamran Ahmed
c190a94bc6 Fix styling for nested lists 2021-09-24 10:33:05 +02:00
Kamran Ahmed
eafbcd5867 Disable ugly focus 2021-09-22 20:42:51 +02:00
Kamran Ahmed
170b14df4c Sticky banner update 2021-09-22 20:39:54 +02:00
Kamran Ahmed
694315026e Add studio3t sponsor 2021-09-22 14:56:16 +02:00
Kamran Ahmed
a9183dacc7 Add sysadmin roadmap 2021-09-22 14:50:03 +02:00
Kamran Ahmed
d46b543659 Add park.io sponsor 2021-09-18 12:03:03 +02:00
Kamran Ahmed
9a63e576c7 Add click tracking on YouTube banner 2021-09-14 20:34:24 +02:00
Kamran Ahmed
69ef7615fe Add guide for render blocking JavaScript 2021-09-13 13:12:27 +02:00
Kamran Ahmed
68950ab2c9 Add helmet to thanks page 2021-09-09 22:57:34 +02:00
Kamran Ahmed
305d0a41ac Add thanks page 2021-09-09 22:41:57 +02:00
Kamran Ahmed
e43c21a01d Fix responsiveness issues 2021-09-09 22:32:12 +02:00
Kamran Ahmed
b6205af02c Change youtube banner color 2021-09-09 22:09:20 +02:00
Kamran Ahmed
6de2867d8a Disable carbon ads 2021-09-09 22:00:43 +02:00
Kamran Ahmed
13612323d7 Disable carbon ads 2021-09-09 21:55:53 +02:00
Kamran Ahmed
edd10470a7 Right align the carbon ad 2021-09-09 21:50:02 +02:00
Kamran Ahmed
d5b8d761d5 Update sponsor ads and carbon ad styling 2021-09-09 21:48:31 +02:00
Kamran Ahmed
9f7119694b Revert custom ad changes 2021-09-09 21:36:06 +02:00
Kamran Ahmed
8fbde17c22 Add carbon ads 2021-09-09 21:13:20 +02:00
Kamran Ahmed
e16947bd78 Enable custom ad 2021-09-09 16:38:30 +02:00
Kamran Ahmed
33af054161 Enable carbon ads 2021-09-08 23:33:08 +02:00
Kamran Ahmed
8913d5c5e4 Add youtube logo 2021-09-07 17:41:06 +02:00
Kamran Ahmed
0040d568b1 Add sponsor 2021-09-06 14:28:39 +02:00
Kamran Ahmed
706070e42a Add resources page 2021-09-05 22:52:18 +02:00
Kamran Ahmed
f79fb62ff9 Add sli, slo and sla guide 2021-09-05 22:38:37 +02:00
Kamran Ahmed
5c428540dc Add web vitals png 2021-09-05 22:24:38 +02:00
Kamran Ahmed
35ae0a74b3 Add keywords to frontend roadmap 2021-09-05 22:19:09 +02:00
Kamran Ahmed
a1606521d4 Fix missing title and description on video page 2021-09-05 22:13:49 +02:00
Kamran Ahmed
6545c8de36 Add youtube link to video page 2021-09-05 22:09:22 +02:00
Kamran Ahmed
0f713cbfd8 Add sticky banner for youtube 2021-09-05 21:58:44 +02:00
Kamran Ahmed
333894b75b Fix style for sponsor button 2021-09-05 21:19:51 +02:00
Kamran Ahmed
c73a500ffd Add back to roadmaps button 2021-09-05 21:17:51 +02:00
Kamran Ahmed
a489bc0fde Update dimmed button 2021-09-05 21:08:28 +02:00
Kamran Ahmed
09ef6bfbb0 Header logo fix 2021-09-05 20:55:22 +02:00
Kamran Ahmed
67d2f5cb57 Add support for environment variables 2021-09-05 20:38:08 +02:00
Kamran Ahmed
b28deab192 Update build workflow 2021-09-05 20:28:35 +02:00
Kamran Ahmed
290a73c8b0 Update dependencies 2021-09-05 20:25:48 +02:00
Kamran Ahmed
579d39e104 Merge branch 'master' of github.com:kamranahmedse/roadmap-next 2021-09-05 20:22:27 +02:00
Kamran Ahmed
e7c32958c9 Remove initial version 2021-09-05 20:22:21 +02:00
Kamran Ahmed
7c5d28b68b Add sponsor ad 2021-09-01 22:15:55 +02:00
Larah Armstrong
2f8c0c5748 Update what-is-internet.md (#190) 2021-02-02 09:36:38 +04:00
Kamran Ahmed
5e08af99b2 Update year 2021-01-08 14:41:49 +04:00
Yago Azedias
2882815313 Updating year to 2021 (#228) 2021-01-07 11:27:51 +04:00
Kamran Ahmed
e093f98a42 Add funding info 2020-11-23 01:19:34 +04:00
Kamran Ahmed
d3f8e0517b Add transport protocols video 2020-11-22 00:50:00 +04:00
Kamran Ahmed
efc874163b Add link to tcp/ip model video 2020-11-07 02:36:29 +04:00
Kamran Ahmed
3e8abbed13 Add sponsor and youtube link 2020-10-25 01:07:02 +04:00
Kamran Ahmed
244d336d8e Add link to osi model video 2020-10-24 23:34:57 +04:00
Kamran Ahmed
9d24b98f67 Add video for seal and freeze objects in JavaScript 2020-10-16 21:34:07 +04:00
Kamran Ahmed
007bd7feb0 Remove roadmaps from top nav 2020-10-16 15:17:03 +04:00
Kamran Ahmed
7619945028 Add http caching video link 2020-10-06 00:16:12 +04:00
Peter Thaleikis
3265f9729d Fixing missing 'mailto:' and broken link in Terms (#204)
* Fixing missing 'mailto:'

* Fixing broken link in Terms
2020-10-04 15:35:58 +04:00
Kamran Ahmed
4591ad2336 Add video for CDN 2020-09-26 22:01:22 +04:00
Kamran Ahmed
163e03f578 Update DBA roadmap 2020-09-21 23:42:07 +04:00
Kamran Ahmed
2215174c20 Update the DBA roadmap 2020-09-19 18:19:09 +04:00
Kamran Ahmed
aa52e08ac4 Add load balancers video link 2020-09-19 12:07:30 +04:00
lesovsky
96acb6c93e Add PostgreSQL DBA roadmap. 2020-09-09 08:36:15 +05:00
Kamran Ahmed
69ebd50a90 Add video link for dns records 2020-08-31 16:05:53 +05:00
Kamran Ahmed
e2eaf7d19c Add link to DNS video 2020-08-17 03:13:08 +04:00
Kamran Ahmed
da7ba5bf4c Add link to system design video 2020-08-09 09:18:44 +04:00
Kamran Ahmed
0d17cf145c Update URL for fetch api video 2020-08-02 22:20:27 +04:00
Kamran Ahmed
8a7f7a4a83 Update banner and new video link 2020-08-02 22:10:42 +04:00
Kamran Ahmed
7d3255576b Add video link for system design 2020-07-27 14:51:30 +04:00
Kamran Ahmed
97529cbf54 chore: trigger build 2020-07-26 13:31:58 +04:00
Kamran Ahmed
52af178a19 Update guide URL and add images 2020-07-26 12:19:16 +04:00
Ebrahim Bharmal
f0425fd964 Adding guide for forward and reverse proxy servers (#185)
* Add files via upload

* Update forward&reverse_proxy.md

* Update forward&reverse_proxy.md

* Update forward&reverse_proxy.md

Checking links

* Update forward&reverse_proxy.md

Updated all links. Now images show up properly

* Update forward&reverse_proxy.md

Updated headings. Made changes to the format.

* Update forward&reverse_proxy.md

Changes made againnnnnn

* Update forward&reverse_proxy.md

Updated structure. Added more content.

* Update forward&reverse_proxy.md

* Update forward&reverse_proxy.md

Added table of contents

* Update forward&reverse_proxy.md

Corrected some lines

* Update forward&reverse_proxy.md

Updated final version: Fixed spelling mistakes and errors

* Added picture of ebrahimbharmal007

Contributing to guides: forward&reverse_proxy.md

* Updated authors.json: add author ebrahimbharmal007

Added ebrahimbharmal007 in authors.json for submitting guide forward&reverse_proxy.md

* Updated guides.json

Added meta data for guide forward&reverse_proxy.md by ebrahimbharmal007
2020-07-26 12:06:29 +04:00
Kamran Ahmed
570d6a04b1 Add promises video link 2020-07-21 01:02:45 +04:00
Kamran Ahmed
1e677183aa Add react roadmap 2020-07-18 15:59:04 +04:00
Kamran Ahmed
14a29b4634 Add react map files 2020-07-18 04:13:19 +04:00
Kamran Ahmed
bc66a805e3 Add react roadmap 2020-07-18 04:12:33 +04:00
Kamran Ahmed
f6c10d7344 Fix invalid links for the videos 2020-07-18 00:43:47 +04:00
Kamran Ahmed
4e96943374 Add links to podcast and watch in footer 2020-07-17 15:44:47 +04:00
Kamran Ahmed
1235459d7a Add post on ci/cd 2020-07-17 15:39:48 +04:00
Kamran Ahmed
0d35fe0364 Add webstorm project history image 2020-07-17 15:26:57 +04:00
Kamran Ahmed
76d6fab581 Add guide on single sign on 2020-07-17 15:19:19 +04:00
Kamran Ahmed
da39147539 Add youtube videos page 2020-07-17 15:14:28 +04:00
lincarters
9e230a01a2 Update resources.md
Spelling fix
2020-07-16 14:58:47 +04:00
Kamran Ahmed
4c3452926a Fix image URL for oauth 2020-07-02 16:48:30 +04:00
Kamran Ahmed
b36c5b3c26 Add oauth post 2020-07-02 15:31:04 +04:00
Kamran Ahmed
95fe79a0f1 Add podcasts menu 2020-06-22 01:58:52 +04:00
Kamran Ahmed
850a9ffc9d Add podcasts page 2020-06-22 01:52:29 +04:00
Kamran Ahmed
2b8d18d880 Refactor deployment action 2020-06-22 00:25:22 +04:00
Kamran Ahmed
9b551a69a7 Fix deployment step failing 2020-06-22 00:20:21 +04:00
Kamran Ahmed
cdb9201b2f Refactor build steps 2020-06-22 00:14:16 +04:00
Kamran Ahmed
ab15d91614 Add deployment github action 2020-06-22 00:06:44 +04:00
Kamran Ahmed
9d2fdfa7cf Add support for environment variables 2020-06-21 23:38:38 +04:00
Kamran Ahmed
bcad685e27 Update contribution guides 2020-06-21 23:01:47 +04:00
Kamran Ahmed
74ae339fe1 Add JWT Authentication guide 2020-06-20 23:16:04 +04:00
Kamran Ahmed
5811fd8832 feat: add png for android roadmap 2020-06-11 19:58:34 +04:00
Kamran Ahmed
6c710a92c1 Add token authentication guide 2020-06-04 12:41:21 +04:00
Kamran Ahmed
51f068085d Update android roadmap 2020-05-30 02:46:13 +04:00
Kamran Ahmed
1795bc1495 Update twitter URL 2020-05-26 23:00:41 +04:00
Kamran Ahmed
d4ef930187 Add community badge 2020-05-26 22:39:09 +04:00
Kamran Ahmed
54fae335c2 Update twitter URL 2020-05-26 18:57:32 +04:00
Kamran Ahmed
0f886e9def Create SVG for android roadmap 2020-05-26 14:27:42 +04:00
Kamran Ahmed
3f299cdd8b Create SVG for android roadmap 2020-05-26 14:16:53 +04:00
Kamran Ahmed
7fccd6b399 Fix typos and minor alignment fixes 2020-05-26 13:28:07 +04:00
Kamran Ahmed
f75512e96a Add android developer roadmap 2020-05-26 13:23:06 +04:00
Kamran Ahmed
32ff9a700b Add android developer roadmap 2020-05-26 04:11:58 +04:00
Kamran Ahmed
6976202171 Replace homepage with roadmaps page 2020-05-25 22:34:16 +04:00
Kamran Ahmed
cf1cca7cb3 Add guide on session based authentication 2020-05-25 22:29:52 +04:00
Kamran Ahmed
2236c3f93c Add basic authentication guide 2020-05-19 01:22:07 +04:00
Kamran Ahmed
4f067504a2 Add character encodings post 2020-05-14 02:52:15 +04:00
Kamran Ahmed
42747f4f97 Add unfamiliar codebase post 2020-05-04 23:32:17 +04:00
Kamran Ahmed
1d952f75f8 Add unfamiliar codebase post 2020-05-04 23:29:26 +04:00
Peter Thaleikis
9e61ef5dd1 Add guide "Why “build it and they will come” alone won’t work anymore" 2020-05-04 23:09:40 +04:00
Kamran Ahmed
c7770cc64c Add dhcp illustration 2020-04-28 13:16:11 +04:00
Kamran Ahmed
af7e25dc92 Fix github buttons width 2020-04-28 11:13:22 +04:00
Kamran Ahmed
cf3365e778 feat: add carbon 2020-04-24 22:45:23 +04:00
Kamran Ahmed
bd69872059 feat: add guide SSL/TLS/HTTPS/SSH 2020-04-24 20:45:32 +04:00
Jefferson Ye
746ee3d548 Small grammar fix, "ambition" to "ambitious" 2020-04-22 13:37:48 +04:00
Kamran Ahmed
73c55a0eaa Add scaling databases post 2020-04-03 12:01:15 +04:00
Kamran Ahmed
299d0f3ada Add guide for asymptotic notation 2020-04-03 11:41:12 +04:00
Kamran Ahmed
98097f939a Update youtube URL 2020-03-30 01:51:09 +04:00
Kamran Ahmed
f4904da3f8 Update github link in page nav 2020-03-28 20:35:58 +04:00
Kamran Ahmed
465c00b4d5 Update dependencies and add github link in nav 2020-03-28 20:23:17 +04:00
Myles Webster
69c54e5dfe fix incorrect link for resource in FE dev roadmap 2020-03-25 18:29:44 +04:00
Kamran Ahmed
6f4898c216 Add illustrations for some topics 2020-03-23 22:33:39 +04:00
Kamran Ahmed
b8cc07c29e Update channel link 2020-03-15 16:13:36 +04:00
Kamran Ahmed
eae0ad3ecb Update alignment for share links 2020-03-14 12:49:26 +04:00
Kamran Ahmed
56bf52e641 Add hackernews share url 2020-03-14 12:48:11 +04:00
Kamran Ahmed
689f24e0f1 Add random numbers guide 2020-03-14 12:37:31 +04:00
Kamran Ahmed
63d66b3f4e Add big-o-notation guide 2020-03-14 02:40:57 +04:00
Kamran Ahmed
4930c00f78 Update roadmap pdfs 2020-03-14 01:54:46 +04:00
Kamran Ahmed
5745fc56bf Update pdfs for the roadmaps 2020-03-14 01:45:05 +04:00
Kamran Ahmed
55d5ced587 Type updates and banner change 2020-03-14 01:37:27 +04:00
Kamran Ahmed
018be76895 Add youtube banner 2020-03-14 01:02:04 +04:00
Kamran Ahmed
b268106684 Add youtube banner 2020-03-14 01:00:06 +04:00
Kamran Ahmed
56e2108be2 Add resources link in SSG 2020-03-03 00:18:32 +04:00
Kamran Ahmed
9dfbceda7c Update forntend resources 2020-03-03 00:10:33 +04:00
Kamran Ahmed
c698265f42 Add frontend resources 2020-03-03 00:06:25 +04:00
Kamran Ahmed
752d4614b8 Add resources to frontend 2020-03-02 10:52:48 +04:00
Kamran Ahmed
d73e08f8f6 Add resources setup 2020-03-01 10:27:15 +04:00
Kamran Ahmed
cf648924cf Add resources pages and new guide 2020-02-29 17:49:04 +04:00
Kamran Ahmed
2d15290566 Add menu items for resources and project ideas 2020-02-28 19:58:29 +04:00
Kamran Ahmed
06dd1934f3 Fix typo 2020-02-27 10:46:06 +04:00
Christoph Geschwind
316ada1259 Update levels-of-seniority.md
Fixes a tiny typo, at least I think it does.

Thanks for the great article!
2020-02-27 10:46:06 +04:00
Sohail Ahmad
30d2f15433 Fix typo ('compabitility' -> 'compatibility') 2020-02-26 20:27:31 +04:00
Kamran Ahmed
4ac1319d8d Update sponsor banner text 2020-02-22 21:44:05 +04:00
Andrew Petro
4e924981c1 fix: diction and typo ("its", "simplest") 2020-02-11 12:50:29 +04:00
Andrew Petro
fdf3fd050b fix: use "its" rather than "it's" when appropriate
Use "its" for the possessive, rather than "it's" (contraction of for "it is").
2020-02-11 12:50:29 +04:00
Will 保哥
79afd0a6a8 Update history-of-javascript.md
Add a space in a paragraph.
2020-02-11 12:47:13 +04:00
Will 保哥
03e35ee928 Update history-of-javascript.md
Typos: ECMASript -> ECMAScript
2020-02-11 12:44:15 +04:00
Curtis Gibby
eaaedb8034 Update name of Dunning–Kruger effect 2020-02-07 22:46:13 +04:00
Kamran Ahmed
84e87a501e Add do logo 2020-02-04 02:00:27 +04:00
Kamran Ahmed
8fca669787 Add do logo 2020-02-04 01:57:27 +04:00
Kamran Ahmed
3c1d41119f Add sponsor information 2020-02-01 18:05:57 +04:00
Kamran Ahmed
495fd37eae Add sponsor information 2020-02-01 17:55:54 +04:00
Kamran Ahmed
4cfeb1c372 Add pdfs for roadmaps 2020-02-01 17:23:53 +04:00
Kamran Ahmed
91a47faec0 Add sponsor information 2020-02-01 17:08:34 +04:00
Kamran Ahmed
8c03aedea1 Add sponsor banner 2020-02-01 13:33:14 +05:00
Kamran Ahmed
9a515f85c1 Hide sponsors nav item on mobile 2020-02-01 08:07:42 +05:00
Kamran Ahmed
0a2468aad2 Make frontend roadmap summary 2020-01-29 13:53:39 +05:00
Kamran Ahmed
fc2eb36d58 Resolve merge conflicts 2020-01-29 12:49:49 +05:00
Kamran Ahmed
3c5ea2131d Add detailed version for frontend roadmap 2020-01-29 12:48:18 +05:00
Kamran Ahmed
75e1f67ee8 Use on heading per page 2020-01-29 11:28:20 +05:00
Kamran Ahmed
b40894cfdc SEO optimization through titles/descriptions 2020-01-29 11:14:34 +05:00
Kamran Ahmed
4fb2e1f46d Fix SEO titles and keywords 2020-01-29 10:42:52 +05:00
Kamran Ahmed
8eccfd22e3 Update copy 2020-01-29 09:43:24 +05:00
Kamran Ahmed
d84800fcaf feat: detailed roadmap preparation 2020-01-28 17:48:22 +05:00
Kamran Ahmed
bb3260f4b7 Update contribution guidelines 2020-01-27 13:09:16 +05:00
Kamran Ahmed
9a2e1fd673 Add contribution guide for writing roadmap 2020-01-27 12:41:02 +05:00
Kamran Ahmed
3f599fab35 Remove gads 2020-01-22 12:13:25 +04:00
Kamran Ahmed
cdc710123f Add codefund 2020-01-22 12:11:24 +04:00
Kamran Ahmed
bb43c8eba6 Update sponsors info 2020-01-21 10:42:34 +04:00
Kamran Ahmed
c01d595546 Update sponsors info 2020-01-21 00:27:46 +04:00
Kamran Ahmed
77a66fd25d Add sponsors page 2020-01-21 00:20:25 +04:00
Kamran Ahmed
a93ac86766 Update sitemap 2020-01-20 11:24:36 +04:00
Kamran Ahmed
4044dbea91 Update sitemap path 2020-01-20 11:24:02 +04:00
Kamran Ahmed
3fc9ffe8b4 Update copy on sponsors page 2020-01-20 11:17:37 +04:00
Kamran Ahmed
880475f6de Add sponsors page 2020-01-20 10:58:39 +04:00
Kamran Ahmed
a26945288b Rename storage directory 2020-01-18 22:47:48 +04:00
Kamran Ahmed
b97ae52a1b Add PDF for devops roadmap 2020-01-18 16:56:27 +04:00
Kamran Ahmed
76ddeeedb2 Add devops roadmap 2020 update 2020-01-18 16:30:03 +04:00
Kamran Ahmed
00b7fe6e7f fix: electro misspelling and color for legend 2020-01-18 11:00:51 +04:00
Kamran Ahmed
c43442f127 Merge branch 'master' of github.com:kamranahmedse/roadmap.sh 2020-01-18 10:45:12 +04:00
Kamran Ahmed
68c62d218d feat: update 2020-01-18 10:44:58 +04:00
Kamran Ahmed
47b10a1a1a Fix broken logo in readme 2020-01-18 01:12:41 +04:00
Kamran Ahmed
1fd135d1c1 Move static to public and update paths 2020-01-18 01:08:47 +04:00
Kamran Ahmed
61bdc80f5a Update dependencies 2020-01-18 01:05:13 +04:00
Kamran Ahmed
4fbefd5ae9 Update site meta and title update for post 2020-01-18 00:56:49 +04:00
Jesse Li
835476ed31 Update PULL_REQUEST_TEMPLATE.md 2020-01-17 21:39:27 +04:00
Jesse Li
83745ae1b4 Add Guide: BitTorrent client 2020-01-17 21:39:27 +04:00
Kamran Ahmed
9465cfb5c2 feat: update author meta 2020-01-17 19:32:50 +04:00
Kamran Ahmed
4edd398770 chore: add contribution docs for writing guides 2020-01-17 19:29:04 +04:00
Kamran Ahmed
21b3b7cbdf fix: invalid canonicalization 2020-01-17 19:18:47 +04:00
Kamran Ahmed
ae6763bf83 Fix search engines section in backend 2020-01-12 10:31:22 +04:00
Kamran Ahmed
be5a61b697 Fix typo in backend roadmap 2020-01-12 00:44:15 +04:00
Kamran Ahmed
8e25dca636 Update PDF files and add 2020 version 2020-01-12 00:09:33 +04:00
Kamran Ahmed
b91d404f17 Merge branch 'master' of github.com:kamranahmedse/roadmap.sh 2020-01-10 18:55:00 +04:00
Kamran Ahmed
80f2cb8cbc Fix typos in frontend roadmap 2020-01-10 18:54:47 +04:00
Kamran Ahmed
2dc3d4fd24 Fix typos in frontend 2020-01-10 18:52:16 +04:00
Joshua Mamawag
2432ff9fd4 Fix typos and punctuations 2020-01-10 17:49:42 +04:00
Kamran Ahmed
8f1f8846c9 Update badges 2020-01-04 18:34:19 +04:00
Kamran Ahmed
7dac8665a0 Update badges 2020-01-04 18:33:21 +04:00
Kamran Ahmed
f0181ff08f Add PDFs for roadmaps 2020-01-04 18:01:21 +04:00
Kamran Ahmed
0ad95c2dd0 Update links 2020-01-04 17:57:50 +04:00
Kamran Ahmed
d184e93519 Add PDF for frontend roadmap 2020-01-04 17:41:03 +04:00
Kamran Ahmed
4ef31700a5 Update frontend and intro maps for 2020 2020-01-04 17:39:39 +04:00
Kamran Ahmed
087f4e5c25 Add license and github templates 2020-01-04 17:38:43 +04:00
Kamran Ahmed
c5ae26458a Update roadmaps for 2020 2020-01-04 17:35:41 +04:00
Kamran Ahmed
0c6de5d89b Add contribution guide 2020-01-02 09:59:41 +04:00
Kamran Ahmed
124d113162 Update sitemap and roadmaps 2020-01-02 09:54:52 +04:00
Kamran Ahmed
c88b0f3b1a Update sitemap, roadmap meta 2020-01-02 09:49:01 +04:00
Kamran Ahmed
06d72599d9 Resolve merge conflicts 2020-01-02 09:42:48 +04:00
Kamran Ahmed
eb9cd6cdcc Update dependencies 2020-01-02 09:40:55 +04:00
Kamran Ahmed
c7589b8325 Update summary pages for roadmaps 2019-12-06 18:18:33 +04:00
Kamran Ahmed
4c07ac509b Add SVG for the logo 2019-12-06 15:47:40 +04:00
Kamran Ahmed
1240b6b1bc Fix typos in guide 2019-12-04 01:02:58 +04:00
Kamran Ahmed
ad05c49570 Fix - Breaking build 2019-12-03 18:09:47 +04:00
Kamran Ahmed
c01a854a5a Fix - Duplicated meta tags on pages 2019-12-03 17:54:34 +04:00
Kamran Ahmed
7b1dde1d62 Fix Typos in Guide 2019-12-03 17:34:20 +04:00
Kamran Ahmed
56b0275b06 Update the conclusion on guide 2019-12-03 17:22:19 +04:00
Kamran Ahmed
7a0d784d81 Update twitter card image 2019-12-03 17:03:12 +04:00
Kamran Ahmed
2c9eb1f9ee Make twitter card logo square 2019-12-03 16:58:58 +04:00
Kamran Ahmed
e4ca1c9598 Add guide: Levels of Seniority 2019-12-03 16:40:31 +04:00
Kamran Ahmed
2b8e06d651 Add senior section 2019-12-03 02:55:56 +04:00
Kamran Ahmed
56088a838c Add section for mid-level developers 2019-12-03 01:30:00 +04:00
Kamran Ahmed
542d82c2dc Developer seniority junior section 2019-12-03 00:12:51 +04:00
Kamran Ahmed
980322bae0 Add Guide: Developer seniority 2019-12-02 17:08:49 +04:00
Kamran Ahmed
56fbe9a685 Add Guide: history of JavaScript 2019-12-02 13:06:35 +04:00
Kamran Ahmed
6939240d59 Add junior frontend landscape 2019-12-02 12:20:06 +04:00
Kamran Ahmed
4caaee3da5 Update badges 2019-12-02 03:31:25 +04:00
Kamran Ahmed
e829af3e62 Update summary 2019-12-02 02:13:21 +04:00
Kamran Ahmed
7ba0fa9004 Update meta 2019-12-02 02:12:26 +04:00
Kamran Ahmed
74433cd0d3 Sticky sidebar 2019-12-02 02:11:49 +04:00
Kamran Ahmed
dec3e992b3 Update frontend roadmap summary 2019-12-02 01:58:31 +04:00
Kamran Ahmed
7a4c27460f Add summary details for frontend developer 2019-12-02 00:28:10 +04:00
Kamran Ahmed
5553b411eb Add summary 2019-12-02 00:00:57 +04:00
Kamran Ahmed
98cc968ed1 Add roadmap summary for frontend 2019-12-01 23:51:23 +04:00
Kamran Ahmed
3de37468a6 Render page markdown 2019-12-01 17:06:53 +04:00
Kamran Ahmed
3364eae0a6 Change sitemap priority for hidden pages 2019-12-01 16:17:29 +04:00
Kamran Ahmed
a06eaec5d4 Add summary pages to landscape 2019-12-01 16:16:45 +04:00
Kamran Ahmed
10e433f538 Do not display hidden pages 2019-12-01 15:49:13 +04:00
Kamran Ahmed
129deed6a9 Roadmap author and contributors page 2019-12-01 15:46:13 +04:00
Kamran Ahmed
ce35a8112f Remove utm params from share URLs 2019-12-01 15:11:28 +04:00
Kamran Ahmed
35f6070133 Relevant page loading on detail page 2019-12-01 15:01:22 +04:00
Kamran Ahmed
629f1058f2 Make mobile sidebar responsive 2019-11-30 18:12:07 +04:00
Kamran Ahmed
199310df93 Add share icons on roadmap detail page 2019-11-30 17:15:56 +04:00
Kamran Ahmed
0d45fcbf79 Add share icons to roadmap header 2019-11-30 17:07:50 +04:00
Kamran Ahmed
47cbcde5dc Add detailed roadmap 2019-11-30 14:33:22 +04:00
Kamran Ahmed
5b12eb9e02 Split roadmap summaries and detailed roadmap 2019-11-30 14:27:37 +04:00
Kamran Ahmed
6632b46d98 Fix - Guide having space on top 2019-11-30 14:27:21 +04:00
Kamran Ahmed
25e009a63f Update roadmaps summaries 2019-11-30 14:26:03 +04:00
Kamran Ahmed
9ae7eed1e3 Remove static images 2019-11-30 14:25:31 +04:00
Kamran Ahmed
8db62cb19f Update badges 2019-11-30 11:21:14 +04:00
Kamran Ahmed
d1a991b18c Add badges 2019-11-30 11:14:42 +04:00
Kamran Ahmed
8107e008ff Overflowing scroll on page 2019-11-30 10:28:37 +04:00
Kamran Ahmed
944858bbb1 Make upcoming badge take to signup 2019-11-30 10:27:39 +04:00
Kamran Ahmed
b864c60ea3 Upcoming roadmap page 2019-11-30 10:00:44 +04:00
Kamran Ahmed
618b55f601 Split roadmap header to separate component 2019-11-30 09:06:06 +04:00
Kamran Ahmed
b5c65b408b Update meta script 2019-11-30 00:43:29 +04:00
Kamran Ahmed
21f2ef80ba Upcoming roadmap UI 2019-11-30 00:20:24 +04:00
Kamran Ahmed
ebd351e133 Refactor markdown rendering 2019-11-29 18:36:49 +04:00
Kamran Ahmed
77dab81b92 Add padding around container 2019-11-29 18:13:19 +04:00
Kamran Ahmed
0350da2929 Split markdown rendering 2019-11-29 18:13:07 +04:00
Kamran Ahmed
59c07c9000 Minor update 2019-11-29 11:51:43 +04:00
Kamran Ahmed
79ab31dec7 Update sitemap generation for roadmap pages 2019-11-29 11:49:50 +04:00
Kamran Ahmed
16983cb950 Update path-map generation 2019-11-29 11:23:48 +04:00
Mazhar Zandsalimi
e29fe52cb1 minor modification: max-age=3600 means 60 minutes 2019-11-29 10:48:40 +04:00
Kamran Ahmed
7921acb666 Add roadmaps meta generator 2019-11-28 00:19:03 +04:00
Kamran Ahmed
b53f8c982c Update pathmap generation for roadmap routes 2019-11-27 20:53:29 +04:00
Kamran Ahmed
0b72a07147 Add roadmap pathmap generator 2019-11-25 21:00:37 +04:00
Konstantinos Psychas
5155a0c358 Update design-patterns-for-humans.md
A typo that may cause confusion.
2019-11-24 11:26:49 +04:00
Kamran Ahmed
bd5663ab26 Add roadmap text 2019-11-23 16:30:48 +04:00
Kamran Ahmed
af3ccd5bb5 Fix broken build 2019-11-21 18:22:57 +04:00
B3nnyL
035eaa47e8 [fix]canonical url and og:url 2019-11-21 11:57:21 +04:00
Pat Laundy
3541d4e717 Adding missed word in opening paragraph 2019-11-19 09:33:25 +04:00
Kamran Ahmed
e8dcfe97f2 Fix - Subscription form throws warning 2019-11-16 16:16:50 +04:00
Kamran Ahmed
8f3307e53e Update sitemap and build 2019-11-16 16:15:05 +04:00
Kamran Ahmed
dcc825416d Push dev configuration 2019-11-16 16:13:37 +04:00
Kamran Ahmed
f8fcb8d600 Update build script 2019-11-16 16:12:18 +04:00
Kamran Ahmed
40919dec14 Add configuration and build changes 2019-11-16 16:11:08 +04:00
Kamran Ahmed
f3592155bf Add build check for .env file 2019-11-16 15:35:37 +04:00
Kamran Ahmed
927ee73be7 Add dotenv file loading 2019-11-16 15:21:40 +04:00
Kamran Ahmed
4f81d5374e Fix - Analytics not working 2019-11-16 15:07:10 +04:00
Kamran Ahmed
e95fd69886 Update subscribe button in top nav 2019-11-16 14:18:43 +04:00
Kamran Ahmed
11d9da5afb Update FAQ page 2019-11-16 14:06:31 +04:00
Kamran Ahmed
cea8abc5ef Update build script 2019-11-16 14:02:16 +04:00
Kamran Ahmed
7169d3bb8f Add FAQ page in top nav 2019-11-16 13:54:36 +04:00
Kamran Ahmed
ae9c1c4992 Add about page 2019-11-16 13:51:10 +04:00
Kamran Ahmed
58e560af7d Do not send analytics for dev mode 2019-11-16 13:50:30 +04:00
Kamran Ahmed
09fa166f56 Delete .nojekyll 2019-11-15 02:12:02 +04:00
Kamran Ahmed
6ed7d9c25f Create .nojekyll 2019-11-15 02:11:24 +04:00
Kamran Ahmed
e59fc5e4e9 Update canonical URL 2019-11-15 02:09:54 +04:00
Kamran Ahmed
f5da05c3ec Update canonical URL 2019-11-15 02:08:45 +04:00
Kamran Ahmed
07b200b878 Update readme.md 2019-11-14 22:31:12 +04:00
Kamran Ahmed
ccca782f25 Update readme 2019-11-14 22:30:49 +04:00
Kamran Ahmed
77d9846d9b Update readme 2019-11-14 22:22:04 +04:00
Kamran Ahmed
8da175e9d8 Update readme 2019-11-14 21:32:28 +04:00
Kamran Ahmed
467634889b Update repository URL 2019-11-14 21:29:30 +04:00
Kamran Ahmed
b46b425b41 Fix twitter share URL issue 2019-11-14 21:26:01 +04:00
Kamran Ahmed
9e23439f0c Add sitemap generation and remove extra files 2019-11-14 21:21:56 +04:00
Kamran Ahmed
c6db625e35 Update license 2019-11-14 12:09:51 +04:00
Kamran Ahmed
672245e4e4 Fix invalid URL being generated 2019-11-13 23:44:45 +04:00
Kamran Ahmed
e4ce3475c6 Update repository URLs 2019-11-13 23:38:29 +04:00
Kamran Ahmed
d15b97db73 Update bundle application 2019-11-13 23:29:52 +04:00
Kamran Ahmed
8f040e5e8a Add gh-pages deployment 2019-11-13 23:13:45 +04:00
Kamran Ahmed
888800d2a0 Update contribution docs 2019-11-13 23:07:29 +04:00
Kamran Ahmed
51b2c70586 Restructure and update imports 2019-11-13 23:06:07 +04:00
Kamran Ahmed
5b4cc86f61 Restructure and update readme 2019-11-13 22:59:27 +04:00
Kamran Ahmed
9952ee5805 Resolve merge conflicts 2019-11-13 22:48:43 +04:00
Stéphane Klein
dacbf09f55 Remove JSCS (deprecated) and add StandardJS linter (#605) 2019-07-10 10:26:35 +04:00
Kamran Ahmed
a16787ab58 Remove myself from github sponsors 2019-07-07 15:59:19 +04:00
Rahul Madhav Upakare
7d45c8e462 Corrected language name for Go programming language (#601) 2019-07-05 18:05:06 +04:00
Kamran Ahmed
796bde76c9 Update copy 2019-07-01 13:33:06 +04:00
Kamran Ahmed
22d5622e1e Add funding.yml 2019-05-23 16:30:44 +04:00
Eric Jeker
2312fdd608 Duplicated word in the CSS Architecture comment box. Removed 'push'. 2019-05-17 16:59:23 +04:00
Kamran Ahmed
bc2ecea03b Update license 2019-05-13 02:47:20 +04:00
Kamran Ahmed
84a551f906 Fix transparency of roadmaps 2019-05-06 13:04:27 +04:00
Kamran Ahmed
9fab5c7134 Update devops map 2019-05-06 12:21:47 +04:00
Kamran Ahmed
c61f4a845d Fix some typos and update banner 2019-05-06 12:07:28 +04:00
Kamran Ahmed
025753b279 Fix spelling mistake 2019-05-06 11:17:24 +04:00
Kamran Ahmed
6b9901db28 Update the banner 2019-05-05 01:18:22 +04:00
Kamran Ahmed
34f0e483ec Update repo banneer 2019-05-05 00:44:15 +04:00
Kamran Ahmed
0ae9bc0e3e Update repo banner 2019-05-05 00:40:46 +04:00
Kamran Ahmed
3f17f60daf Update headeer 2019-05-05 00:30:36 +04:00
Kamran Ahmed
7f2acba352 Add sponsor 2019-03-18 00:44:13 +04:00
johnoct
907fb9915f fix the cut off names teamcity, LXC, and puppet 2019-03-17 10:06:19 +04:00
Kamran Ahmed
fd2e64ec50 Update sponsors 2019-03-12 10:29:23 +04:00
Kamran Ahmed
3fd5b9e744 Update sponsor text 2019-02-06 10:11:16 +04:00
Kamran Ahmed
edff9156ff Update sponsor link 2019-02-05 15:20:32 +04:00
Kamran Ahmed
e1c89585e9 Add sponsor link 2019-02-05 15:05:15 +04:00
Kamran Ahmed
abaa839b26 Fix transparency for backend roadmap 2019-01-26 14:55:41 +04:00
Kamran Ahmed
1bc7384929 Minor markdown change 2019-01-04 10:10:55 +04:00
Kamran Ahmed
6a148295f7 Update sponsors section 2019-01-04 10:10:30 +04:00
Kamran Ahmed
ea25f2d99b Update readme 2019-01-02 21:48:30 +04:00
Kamran Ahmed
08303c0623 Update badge 2019-01-01 14:26:33 +04:00
Kamran Ahmed
f18f9fb5b3 Fix tweet URL 2018-12-30 21:10:46 +04:00
Kamran Ahmed
dfc07e0753 Remove emojis 2018-12-29 23:32:52 +04:00
Kamran Ahmed
64a19fdc3c Update badge 2018-12-29 23:23:39 +04:00
Kamran Ahmed
1b3e8712ff Rearrange badges 2018-12-29 22:51:56 +04:00
Kamran Ahmed
f242c6e358 Update badges and intro section 2018-12-29 22:51:10 +04:00
Kamran Ahmed
7e2121bed9 Merge branch 'master' of github.com:kamranahmedse/developer-roadmap 2018-12-29 22:48:26 +04:00
Kamran Ahmed
bb80ceb7ba Update intro map 2018-12-29 22:48:19 +04:00
Kamran Ahmed
25dfb28368 Update badge 2018-12-29 22:32:58 +04:00
Kamran Ahmed
a1c75bb9f8 Update badges 2018-12-29 22:32:37 +04:00
Kamran Ahmed
efdb628120 Update badges 2018-12-29 22:31:20 +04:00
Kamran Ahmed
ac23dddeb9 Update header 2018-12-29 21:44:43 +04:00
Kamran Ahmed
b208eaa1bd Update frontend roadmap for 2019 2018-12-29 20:39:20 +04:00
Kamran Ahmed
8ebf97277c Add updated frontend roadmap 2018-12-29 20:37:25 +04:00
Kamran Ahmed
928d79e3fb Update frontend roadmap image 2018-12-29 17:27:52 +04:00
Kamran Ahmed
9b95218eb8 Update frontend roadmap image 2018-12-29 17:20:02 +04:00
Kamran Ahmed
8bcdd84f0f Update frontend developer roadmap 2018-12-29 17:17:46 +04:00
Asad Mansoor
67a72aab11 added container orchestration to devops roadmap (#518)
* added container orchestration to devops roadmap

* Added kubernetes as preferred
2018-11-29 10:25:13 +04:00
Kamran Ahmed
771f3a9cb7 Merge branch 'bekicot-fetch-api-for-frontend' 2018-10-16 12:19:23 +04:00
Kamran Ahmed
38b6b34437 Resolve merge conflicts 2018-10-16 12:19:10 +04:00
Kamran Ahmed
548dfd85e7 Add Fetch API 2018-10-16 12:14:43 +04:00
Kamran Ahmed
971d23c43a Contribution docs update 2018-10-16 12:11:07 +04:00
Kamran Ahmed
3aac8de849 Add contribution docs 2018-10-16 12:00:49 +04:00
Ahmad Awais ⚡️
8d605735b2 👌 IMPROVE: Contribution Docs + Fix Frontend RoadMap (#498)
* 📦 NEW: No auto formatting for JSON in VSCode

* 👌 IMPROVE: lingo for several libraries/software

* 👌 IMPROVE: alt text for Web Developer Roadmap Introduction

* 👌 IMPROVE: alt text for Frontend Roadmap

* 👌 IMPROVE: alt text for Back-end Roadmap

* 👌 IMPROVE: alt text for DevOps Roadmap

*  📖 DOC: make contribution fun again with more details

* 🐛 FIX: names of several libraries/software
2018-10-16 11:21:44 +04:00
Yana Agun Siswanto
7debdb90c1 frontend-map.json: add Fetch API as recomendation
Fetch API should be added instead of XMLHttpRequest(XHR) API
as fetch uses promises which enables a simpler and cleaner API.
However, understanding both Fetch/XHR is required for frontend.

Closes #475
2018-10-16 05:28:00 +07:00
Andre Christoga Pramaditya Sion
f6f5c821b3 Emoji for both genders (#502)
Because the tech isn't for males only.
2018-10-12 00:48:08 +04:00
Kamran Ahmed
227e08b7c4 Don't need coffee 2018-09-09 22:18:27 +04:00
Kamran Ahmed
16651606fb Add badge 2018-09-08 20:11:23 +04:00
Kamran Ahmed
0ea67f695d Remove sponsor 2018-07-02 14:44:32 +04:00
Kamran Ahmed
6c4386ed7d Update license 2018-06-09 17:56:23 +04:00
Kamran Ahmed
e65ba9365b Add license 2018-06-09 17:53:56 +04:00
Kamran Ahmed
e5843568dd Add License 2018-06-09 17:52:57 +04:00
Kamran Ahmed
7968151c44 Update backend map 2018-06-09 04:35:03 +04:00
Kamran Ahmed
9f0753f098 Add devops map 2018-06-09 04:24:11 +04:00
Kamran Ahmed
98d0aa5103 Update backend roadmap 2018-06-08 18:14:13 +04:00
Kamran Ahmed
c1706e2c18 Remove banner 2018-06-06 21:28:24 +04:00
Kamran Ahmed
84e74096b7 Update readme 2018-05-05 23:02:07 +02:00
Kamran Ahmed
3d96fdf1df Update weekly 2018-04-08 00:24:35 +02:00
Kamran Ahmed
a157605b2b Update readme.md 2018-04-07 23:34:34 +02:00
Kamran Ahmed
ec83830577 Update readme 2018-04-07 02:49:19 +02:00
Kamran Ahmed
6babeb3f21 Add esguy link 2018-04-07 02:48:03 +02:00
Kamran Ahmed
0b9754c9ae Add disclaimer 2018-04-07 02:38:48 +02:00
Kamran Ahmed
c2f7754b0d Add updated backend developer roadmap 2018-04-02 18:28:52 +02:00
Kamran Ahmed
4df519845f Update roadmaps 2018-03-27 00:46:00 +02:00
Kamran Ahmed
910bd371dd Add backend and devops text files 2018-03-26 22:09:12 +02:00
Kamran Ahmed
0aa6db6007 Update textual form 2018-03-26 22:07:12 +02:00
Kamran Ahmed
01be603780 Rename readme 2018-03-26 22:04:14 +02:00
Kamran Ahmed
55a3ce4def Rename readme 2018-03-26 22:04:04 +02:00
Kamran Ahmed
a21264eb5e Remove splits 2018-03-26 22:00:43 +02:00
Kamran Ahmed
8c216782e5 Update markdown 2018-03-26 21:59:32 +02:00
Kamran Ahmed
ed9823245b Update structure 2018-03-26 21:56:13 +02:00
Kamran Ahmed
378e53eba4 Update frontend roadmap 2018-03-25 21:19:48 +02:00
Kamran Ahmed
66b68bc26f Add frontend map 2018-03-25 21:17:37 +02:00
Kamran Ahmed
0785d28bb4 Temp commit 2018-03-25 21:17:12 +02:00
Kamran Ahmed
f43dda522d Update frontend roadmap 2018-03-25 20:53:37 +02:00
Kamran Ahmed
ba98142d5b Remove recommendation 2018-03-25 18:16:24 +02:00
Kamran Ahmed
43160d3058 Put images in the repository 2018-03-25 18:03:57 +02:00
Kamran Ahmed
d40a858c6a Add disclaimer 2018-03-25 16:43:19 +02:00
Kamran Ahmed
4024005c4a Remove splits 2018-03-25 16:40:24 +02:00
Kamran Ahmed
91d1fc7245 Add massive disclaimer 2018-03-25 16:39:28 +02:00
Kamran Ahmed
328efa6ff6 Update frontend roadmap 2018-03-25 16:13:40 +02:00
Kamran Ahmed
cb352aba68 Add fancy splits 2018-02-27 21:31:39 +01:00
Kamran Ahmed
625ca5dcf4 Update youtube link 2018-02-27 13:53:02 +01:00
Kamran Ahmed
25d686ae5c Fix blog URL 2018-02-27 12:57:46 +01:00
Kamran Ahmed
0ab94faa95 Update README.md 2018-02-27 12:55:35 +01:00
Kamran Ahmed
5299a04acd Update README.md 2018-02-27 12:49:37 +01:00
Kamran Ahmed
f326a58bee Update readme 2018-02-27 12:49:07 +01:00
Kamran Ahmed
d8d52a6e86 Update readme 2018-02-27 12:42:05 +01:00
Kamran Ahmed
ba09cc4b86 Update readme 2018-02-27 12:22:14 +01:00
andrea
5804deb8ac Added a list of Linux & Unix server distributions, and Emacs as text editor (#328)
* Added a list of Linux & Unix server distributions, and Emacs as text editor

* Updated Linux server list personal preference and possibilities

* Added OpenBSD and NetBSD as unix suitable OS's
2018-02-27 09:57:27 +01:00
Zeeshan Ahmad
63b3f0199b Update README.md (#418) 2018-02-26 15:10:25 +01:00
Kamran Ahmed
0b0addaee4 Update readme 2018-02-24 20:44:01 +01:00
Kamran Ahmed
aab6d380aa Update project files 2018-01-06 17:16:47 +04:00
Ricardo N Feliciano
79b5c09a06 Add CircleCI, Packer, remove TeamCity, fix SaltStack. (#308) 2018-01-05 22:40:04 +04:00
Kamran Ahmed
3bd4ad5874 Update devops 2018-01-05 11:25:25 +04:00
Kamran Ahmed
79887dc7d5 Update intro 2018-01-05 03:16:54 +04:00
Kamran Ahmed
dc8cb8e777 Update charts for 2018 2018-01-05 03:14:25 +04:00
Kamran Ahmed
a8059e73c0 Update header image 2018-01-05 01:57:58 +04:00
PlanB
ee2b3e5de0 Change Flask's color to '16770457' (#292) 2017-11-28 09:21:36 +05:00
Kamran Ahmed
807e5ea2c1 Add sponsor link 2017-11-16 00:18:53 +04:00
Kamran Ahmed
f7b42203a4 Remove sponsor link 2017-11-03 12:27:26 +04:00
2006 changed files with 40356 additions and 148856 deletions

View File

@@ -5,7 +5,6 @@ on:
env:
ROADMAP_GA_SECRET: ${{ secrets.GA_SECRET }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PAT: ${{ secrets.PAT }}
CI: true
NEXT_TELEMETRY_DISABLED: 1
jobs:
@@ -13,11 +12,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
- uses: actions/setup-node@v1
with:
node-version: 16
node-version: 14
- name: Setup Environment
run: |
npm install

1
.gitignore vendored
View File

@@ -5,7 +5,6 @@ out
/node_modules
/.pnp
.pnp.js
yarn.lock
# testing
/coverage

View File

@@ -1,69 +1,37 @@
import { Box, Flex, Heading, Image, Link } from '@chakra-ui/react';
import { event } from '../lib/gtag';
function getPageSlug() {
const pathname = (typeof window !== 'undefined' ? window : {} as any)?.location?.pathname || '';
return pathname?.replace(/\//g, '');
}
export const CustomAd = () => {
const slug = getPageSlug();
if (slug !== 'devops') {
return null;
}
return (
<Link
href='https://www.getambassador.io/edge-stack-guide-v4?utm_source=roadmap.sh&utm_medium=ebook&utm_campaign=edgestack-guide'
id='custom-ad'
pos='fixed'
bottom='15px'
right='20px'
zIndex={999}
display='flex'
maxWidth='330px'
bg='white'
boxShadow='0 1px 4px 1px hsla(0, 0%, 0%, .1)'
_hover={{ textDecoration: 'none' }}
rel="noopener sponsored"
target={'_blank'}
onClick={() => {
event({
category: 'SponsorClick',
action: `Ambassador EBook Redirect`,
label: `Clicked Ambassador EBook Link`
});
}}
>
<Image
src='https://i.imgur.com/0bH1Vl6.png'
alt='Custom Logo'
height={['100px', '100px', '100px', 'auto']}
width='130'
style={{ maxWidth: '130px', border: 'none' }}
/>
<Flex as='span' flexDirection='column' justifyContent='space-between'>
<Box as='span' p='10px'>
<Heading as='span' fontSize='14px' mb='5px' display='block'>Free eBook</Heading>
<Box display='block' as='span' fontSize='13px' lineHeight={1.5} fontWeight={500} color='gray.500'>
Learn about API Gateways, Microservices, Load Balancing, and more with this free eBook.
</Box>
</Box>
<Box as='span'
textAlign='center'
fontWeight={600}
fontSize='9px'
letterSpacing='0.5px'
textTransform='uppercase'
padding='5px 10px'
display={'block'}
background='repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4)'
<div id='carbonads'>
<span>
<span className='carbon-wrap'>
<a
href='https://freemote.com/strategy?sl=roadmap'
className='carbon-img'
target='_blank'
>
<img
src='/fm-img.png'
alt='Custom Logo'
height='100'
width='130'
style={{ maxWidth: '130px', border: 'none' }}
/>
</a>
<a
href='https://freemote.com/strategy?sl=roadmap'
className='carbon-text'
target='_blank'
>
He Went from ZERO TO $74,000 as a Full Time Developer in 7 Weeks
</a>
</span>
<a
href='https://github.com/sponsors/kamranahmedse'
className='carbon-poweredby'
target='_blank'
>
Partner Content
</Box>
</Flex>
</Link>
Sponsored by
</a>
</span>
</div>
);
};

View File

@@ -1,13 +1,11 @@
import { Box, Container, Flex, Image, Link, SimpleGrid, Stack, Text } from '@chakra-ui/react';
import { Box, Container, Flex, Image, Link, Stack, Text } from '@chakra-ui/react';
import siteConfig from '../content/site.json';
import { CustomAd } from './custom-ad';
import React from 'react';
function NavigationLinks() {
return (
<>
<Stack isInline display={['none', 'none', 'flex']} justifyContent='center' color='gray.400' fontWeight={600}
spacing='30px'>
<Stack isInline d={['none', 'none', 'flex']} color='gray.400' fontWeight={600} spacing='30px'>
<Link _hover={{ color: 'white' }} href='/roadmaps'>Roadmaps</Link>
<Link _hover={{ color: 'white' }} href='/guides'>Guides</Link>
<Link _hover={{ color: 'white' }} href='/watch'>Videos</Link>
@@ -15,7 +13,7 @@ function NavigationLinks() {
<Link _hover={{ color: 'white' }} href={siteConfig.url.youtube} target='_blank'>YouTube</Link>
</Stack>
<Stack display={['flex', 'flex', 'none']} color='gray.400' fontWeight={600} spacing={0}>
<Stack d={['flex', 'flex', 'none']} color='gray.400' fontWeight={600} spacing={0}>
<Link py='7px' borderBottomWidth={1} borderBottomColor='gray.800' _hover={{ color: 'white' }}
href='/roadmaps'>Roadmaps</Link>
<Link py='7px' borderBottomWidth={1} borderBottomColor='gray.800' _hover={{ color: 'white' }}
@@ -37,53 +35,33 @@ export function Footer() {
<Container maxW='container.md'>
<NavigationLinks />
<SimpleGrid mt={['40px', '40px', '50px']} mb='40px' gap={['40px', '40px', '75px']} columns={[1, 1, 2, 2]} justifyContent='space-between'>
<Box maxWidth={'550px'}>
<Flex gap={0} alignItems='center' color='gray.400'>
<Link d='flex' alignItems='center' fontWeight={600} _hover={{ textDecoration: 'none', color: 'white' }}
href='/'>
<Image alt='' h='25px' w='25px' src='/logo.svg' mr='6px' />
roadmap.sh
</Link>
<Text as='span' mx='7px'>by</Text>
<Link bg='blue.500' px='6px' py='2px' rounded='4px' color='white' fontWeight={600} fontSize='13px'
_hover={{ textDecoration: 'none', bg: 'blue.600' }} href={siteConfig.url.twitter}
target='_blank'>@kamranahmedse</Link>
</Flex>
<Text my='15px' fontSize='14px' color='gray.500'>Community created roadmaps, articles, resources and
journeys to help you choose your path and grow in your career.</Text>
<Text fontSize='14px' color='gray.500'>
<Text as='span' mr='10px'>&copy; roadmap.sh</Text>&middot;
<Link href='/about' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>FAQs</Link>&middot;
<Link href='/terms' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>Terms</Link>&middot;
<Link href='/privacy' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>Privacy</Link>
</Text>
</Box>
<Box maxWidth={'550px'} textAlign={['left', 'left', 'right']}>
<Link display='flex' justifyContent={['flex-start', 'flex-start', 'flex-end']} fontWeight={600}
_hover={{ textDecoration: 'none', color: 'white' }} href='https://thenewstack.io?utm_source=roadmap-sh&utm_medium=Referral&utm_campaign=Footer' target='_blank'>
<Image alt='' w='195px' src='/tns.png' />
<Box mt={['40px', '40px', '50px']} mb='40px' maxW='500px'>
<Flex spacing={0} alignItems='center' color='gray.400'>
<Link d='flex' alignItems='center' fontWeight={600} _hover={{ textDecoration: 'none', color: 'white' }}
href='/'>
<Image alt='' h='25px' w='25px' src='/logo.svg' mr='6px' />
roadmap.sh
</Link>
<Text as='span' mx='7px'>by</Text>
<Link bg='blue.500' px='6px' py='2px' rounded='4px' color='white' fontWeight={600} fontSize='13px'
_hover={{ textDecoration: 'none', bg: 'blue.600' }} href={siteConfig.url.twitter}
target='_blank'>@kamranahmedse</Link>
</Flex>
<Text my='15px' fontSize='14px' color='gray.500'>The leading DevOps resource for Kubernetes, cloud-native
computing, and the latest in at-scale development, deployment, and management.</Text>
<Text my='15px' fontSize='14px' color='gray.500'>Community created roadmaps, articles, resources and
journeys to help you choose your path and grow in your career.</Text>
<Text fontSize='14px' color='gray.500'>
<Link href='https://thenewstack.io/category/devops/?utm_source=roadmap-sh&utm_medium=Referral&utm_campaign=Footer' target='_blank' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400' mx='10px' ml={['0', '0', '10px']}>DevOps</Link>&middot;
<Link href='https://thenewstack.io/category/kubernetes/?utm_source=roadmap-sh&utm_medium=Referral&utm_campaign=Footer' target='_blank' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400' mx='10px'>Kubernetes</Link>&middot;
<Link href='https://thenewstack.io/category/cloud-native/?utm_source=roadmap-sh&utm_medium=Referral&utm_campaign=Footer' target='_blank' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400' mx='10px'>Cloud-Native</Link>
</Text>
</Box>
</SimpleGrid>
<Text fontSize='14px' color='gray.500'>
<Text as='span' mr='10px'>&copy; roadmap.sh</Text>&middot;
<Link href='/about' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>FAQs</Link>&middot;
<Link href='/terms' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>Terms</Link>&middot;
<Link href='/privacy' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>Privacy</Link>
</Text>
</Box>
</Container>
<CustomAd />
</Box>
);
}

View File

@@ -1,25 +1,16 @@
import { useState } from 'react';
import { HamburgerIcon } from '@chakra-ui/icons';
import { Box, CloseButton, Container, Flex, IconButton, Link, Stack, Text } from '@chakra-ui/react';
import { Box, CloseButton, Container, Flex, IconButton, Image, Link, Stack, Text } from '@chakra-ui/react';
import RoadmapLogo from '../components/icons/roadmap.svg';
import siteConfig from '../content/site.json';
type MenuLinkProps = {
text: string;
link: string;
target?: '_blank' | '_self' | '_parent' | '_top';
isFancy?: boolean;
};
function MenuLink(props: MenuLinkProps) {
const { text, link, target = '_self', isFancy = false } = props;
const gradientProp = isFancy ? {
bgGradient: 'linear(to-r, yellow.100, teal.100)',
bgClip: 'text',
_hover: {
color: 'yellow.100'
}
} : {};
const { text, link } = props;
return <Link
borderBottomWidth={0}
@@ -27,8 +18,6 @@ function MenuLink(props: MenuLinkProps) {
_hover={{ textDecoration: 'none', borderBottomColor: 'white' }}
fontWeight={500}
href={link}
target={target}
{...gradientProp}
>
{text}
</Link>;
@@ -40,13 +29,7 @@ function DesktopMenuLinks() {
fontSize='15px'>
<MenuLink text={'Roadmaps'} link={'/roadmaps'} />
<MenuLink text={'Guides'} link={'/guides'} />
<MenuLink
target={'_blank'}
text={'Hiring a DevRel'}
isFancy
link={'https://docs.google.com/forms/d/e/1FAIpQLSesFpPxgKx_8-L5hm7fw6NQpgGixrMGC4Cg3M8NHPQhFfSajQ/viewform'}
/>
<MenuLink text={'Videos'} link={'/watch'} />
<Link ml='10px' bgGradient='linear(to-l, yellow.700, red.600)' p='7px 10px' rounded='4px'
_hover={{ textDecoration: 'none', bgGradient: 'linear(to-l, red.800, yellow.700)' }}

View File

@@ -1,5 +1,4 @@
import { Badge, Box, Heading, Link, Text } from '@chakra-ui/react';
import { GuideType } from '../../lib/guide';
type GuideGridItemProps = {
title: string;
@@ -8,7 +7,6 @@ type GuideGridItemProps = {
date: string;
isNew?: boolean;
colorIndex?: number;
type?: GuideType['type'];
};
const bgColorList = [
@@ -17,14 +15,14 @@ const bgColorList = [
];
export function GuideGridItem(props: GuideGridItemProps) {
const { title, subtitle, date, isNew = false, colorIndex = 0, href, type } = props;
const { title, subtitle, date, isNew = false, colorIndex = 0, href } = props;
return (
<Box _hover={{ textDecoration: 'none', transform: 'scale(1.02)' }} as={Link} href={href} shadow='xl' p='20px'
rounded='10px' bg={bgColorList[colorIndex] ?? bgColorList[0]} flex={1}>
<Text mb='10px' fontSize='13px' color='gray.400' textTransform='capitalize'>
<Text mb='10px' fontSize='13px' color='gray.400'>
{isNew && <Badge colorScheme={'green'} mr='10px'>New</Badge>}
{type} Guide
{date}
</Text>
<Heading color='white' mb={'6px'} fontSize='20px'>{title}</Heading>
<Text color='gray.300' fontSize='14px'>{subtitle}</Text>

View File

@@ -1,13 +1,13 @@
import NextHead from 'next/head';
import siteConfig from '../content/site.json';
import { RoadmapType } from '../lib/roadmap';
import { roadmapTheme } from '../styles/theme';
type HelmetProps = {
title?: string;
keywords?: string[];
canonical?: string;
description?: string;
noIndex?: boolean;
roadmap?: RoadmapType;
};
@@ -41,7 +41,7 @@ function getRichSnippetJson(roadmap: RoadmapType) {
}
const Helmet = (props: HelmetProps) => {
const { roadmap, title, canonical, description, keywords, noIndex = false } = props;
const { roadmap, title, canonical, description, keywords } = props;
return (
<NextHead>
@@ -59,8 +59,6 @@ const Helmet = (props: HelmetProps) => {
content={keywords ? keywords.join(',') : siteConfig.keywords.join(',')}
/>
{noIndex && <meta name="robots" content="noindex" /> }
<meta
name="viewport"
content="width=device-width, user-scalable=yes, initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0"

View File

@@ -1,73 +0,0 @@
import { RoadmapType } from '../../lib/roadmap';
import { SimpleGrid, Tag } from '@chakra-ui/react';
import { HomeRoadmapItem } from '../roadmap/home-roadmap-item';
type FeaturedRoadmapsListProps = {
roadmaps: RoadmapType[];
title: string;
};
export const upcomingRoadmaps = [
{
type: 'Role Based',
title: 'React Native',
description: 'Step by step guide to become a React Native Developer',
id: 'react-native'
},
{
type: 'Role Based',
title: 'Cyber Security',
description: 'Step by step guide to become a Cyber Security Expert',
id: 'cyber-security'
},
// {
// type: 'Skill Based',
// title: 'TypeScript',
// description: 'Step by step guide to learn TypeScript in 2022',
// id: 'typescript'
// },
// {
// type: 'Skill Based',
// title: 'Rust',
// description: 'Step by step guide to learn Rust in 2022',
// id: 'rust'
// },
];
export function FeaturedRoadmapsList(props: FeaturedRoadmapsListProps) {
const { roadmaps, title } = props;
return (
<>
<Tag bg='gray.400' mb={4}>{title}</Tag>
<SimpleGrid columns={[1, 2, 3]} spacing={['10px', '10px', '15px']} mb='40px'>
<>
{roadmaps.map((roadmap: RoadmapType, counter: number) => (
<HomeRoadmapItem
isUpcoming={roadmap.isUpcoming}
url={`/${roadmap.id}`}
key={roadmap.id}
colorIndex={counter}
title={roadmap.featuredTitle === 'Software Design and Architecture' ? 'Software Design' : roadmap.featuredTitle}
isCommunity={roadmap.isCommunity}
isNew={roadmap.isNew}
subtitle={roadmap.featuredDescription}
/>
))}
{upcomingRoadmaps
.filter(roadmap => roadmap.type === title)
.map((roadmap, counter) => (
<HomeRoadmapItem
isUpcoming={true}
url={`/upcoming?id=${roadmap.id}`}
key={`upcoming-${roadmap.id}`}
colorIndex={9}
title={roadmap.title}
subtitle={roadmap.description}
/>
))}
</>
</SimpleGrid>
</>
);
}

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"/></svg>

Before

Width:  |  Height:  |  Size: 507 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"/></svg>

Before

Width:  |  Height:  |  Size: 515 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d="M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"/></svg>

Before

Width:  |  Height:  |  Size: 840 B

View File

@@ -2,8 +2,8 @@ import { Box, Container, Heading, Link, Text } from '@chakra-ui/react';
export function OpensourceBanner() {
return (
<Box bg='white' borderTopWidth={1} py={['45px', '45px', '70px']} textAlign='center'>
<Container maxW='container.sm'>
<Box bg='white' borderTopWidth={1} pt={['45px', '45px', '70px']} pb={['60px', '60px', '90px']} textAlign='center'>
<Container maxW='container.md'>
<Heading fontSize={['25px', '25px', '35px']} mb={['10px', '10px', '20px']}>Open Source</Heading>
<Text lineHeight='26px' fontSize={['15px', '15px', '16px']} mb='20px'>The project is OpenSource,&nbsp;
<Link
@@ -20,9 +20,26 @@ export function OpensourceBanner() {
scrolling='0'
width='170'
height='30'
style={{ margin: 'auto' }}
style={{ margin: 'auto', marginBottom: '30px' }}
title='GitHub'
/>
<Text lineHeight={['25px', '25px', '26px']} fontSize={['15px', '15px', '16px']} mb='15px'>A considerable amount of my time is spent doing unpaid
community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to
produce more open-source and free educational material consumed by hundreds of thousands of developers every
month.</Text>
<Box>
<iframe
src='https://ghbtns.com/github-btn.html?user=kamranahmedse&type=sponsor&size=large'
frameBorder='0'
scrolling='0'
width='260'
height='30'
title='GitHub'
style={{ margin: 'auto' }}
/>
</Box>
</Container>
</Box>
);

View File

@@ -1,5 +1,6 @@
import { Box, Container, Heading, Text } from '@chakra-ui/react';
import { Badge, Box, Container, Heading, Link, Text } from '@chakra-ui/react';
import React from 'react';
import siteConfig from '../content/site.json';
type PageHeaderProps = {
title: string;

View File

@@ -1,80 +0,0 @@
import { Badge, Box, Button, Container, Link, Stack, Text } from '@chakra-ui/react';
import { RoadmapType } from '../lib/roadmap';
type RelatedRoadmapsProps = {
roadmaps: RoadmapType[];
};
const colorsList = [
'gray.700',
'purple.700',
'blue.700',
'red.700',
'green.700',
'teal.700',
'yellow.700',
'cyan.700',
'pink.700'
];
const roadmapTitleMapping: Record<string, string> = {
"Software Design and Architecture": "Software Design",
}
export function RelatedRoadmaps(props: RelatedRoadmapsProps) {
const { roadmaps } = props;
if (!roadmaps.length) {
return null;
}
return (
<Box borderTopWidth={1} bgColor='gray.50' pb='35px' pt='5px'>
<Container maxW='container.md'>
<Box display='flex' position='relative' top='-23px' alignItems='center' justifyContent='space-between'>
<Text textAlign='center' borderWidth={1} bg='white' p='4px' fontWeight='bold' rounded='md' px={'15px'}>
Related Roadmaps
</Text>
<Button as={Link} variant='outline' bg='white' size='sm' _hover={{ textDecoration: 'none', bg: 'gray.100' }}
href='/'>
<Text as='span' display={['inline', 'none', 'none']}>More &rarr;</Text>
<Text as='span' display={['none', 'inline', 'inline']}>All Roadmaps &rarr;</Text>
</Button>
</Box>
<Stack spacing='5px'>
{roadmaps.map((roadmap, counter) => (
<Link
href={`/${roadmap.id}`}
key={roadmap.id}
borderWidth={1}
borderColor='blue.100'
py='7px'
px='14px'
rounded='md'
bg='white'
textDecoration={'none'}
_hover={{ bg: 'gray.100', borderColor: 'blue.200' }}
bgGradient='linear(to-r, white, gray.50)'
display='flex'
alignItems='center'
flexDir={['column', 'row', 'row']}
>
<Text
color={colorsList[counter]}
as='span'
fontWeight='bold'
display={['inline-block']}
minWidth='150px'
mr='10px'
>
{roadmapTitleMapping[roadmap.featuredTitle] || roadmap.featuredTitle}
</Text>
<Text as='span' display={['block', 'inline']} isTruncated maxWidth='100%' fontSize={['sm', 'sm', 'md']} color='gray.700'>{roadmap.featuredDescription}</Text>
</Link>
))}
</Stack>
</Container>
</Box>
);
}

View File

@@ -3,7 +3,7 @@ import { RemoveScroll } from 'react-remove-scroll';
import { RoadmapType } from '../../lib/roadmap';
import RoadmapGroup from '../../pages/[roadmap]/[group]';
import { CheckIcon, CloseIcon, RepeatIcon } from '@chakra-ui/icons';
import { queryGroupElementsById } from '../../lib/renderer';
import { queryGroupElementsById } from '../../lib/renderer/utils';
type ContentDrawerProps = {
roadmap: RoadmapType;
@@ -11,33 +11,13 @@ type ContentDrawerProps = {
onClose?: () => void;
};
export function markTopicDone(groupId: string) {
localStorage.setItem(groupId, 'done');
queryGroupElementsById(groupId).forEach((item) =>
item?.classList?.add('done')
);
}
export function markTopicPending(groupId: string) {
localStorage.removeItem(groupId);
queryGroupElementsById(groupId).forEach((item) =>
item?.classList?.remove('done')
);
}
export function isTopicDone(groupId: string) {
return localStorage.getItem(groupId) === 'done';
}
export function ContentDrawer(props: ContentDrawerProps) {
const { roadmap, groupId, onClose = () => null } = props;
if (!groupId) {
return null;
}
const isDone = isTopicDone(groupId);
const isDone = localStorage.getItem(groupId) === 'done';
return (
<Box zIndex={99999} pos="relative">
@@ -72,7 +52,10 @@ export function ContentDrawer(props: ContentDrawerProps) {
{!isDone && (
<Button
onClick={() => {
markTopicDone(groupId);
localStorage.setItem(groupId, 'done');
queryGroupElementsById(groupId).forEach((item) =>
item?.classList?.add('done')
);
onClose();
}}
colorScheme="green"
@@ -92,7 +75,10 @@ export function ContentDrawer(props: ContentDrawerProps) {
{isDone && (
<Button
onClick={() => {
markTopicPending(groupId);
localStorage.removeItem(groupId);
queryGroupElementsById(groupId).forEach((item) =>
item?.classList?.remove('done')
);
onClose();
}}
colorScheme="red"

View File

@@ -1,4 +1,4 @@
import { Badge, Box, Flex, Heading, Link, Text, Tooltip } from '@chakra-ui/react';
import { Box, Flex, Heading, Link, Text, Tooltip } from '@chakra-ui/react';
import { InfoIcon } from '@chakra-ui/icons';
type RoadmapGridItemProps = {
@@ -7,7 +7,6 @@ type RoadmapGridItemProps = {
isCommunity?: boolean;
isUpcoming?: boolean;
colorIndex?: number;
isNew?: boolean;
url: string;
};
@@ -22,7 +21,7 @@ const bgColorList = [
'teal.200',
'yellow.100',
'green.200',
'red.200'
'red.200',
];
export function HomeRoadmapItem(props: RoadmapGridItemProps) {
@@ -30,83 +29,77 @@ export function HomeRoadmapItem(props: RoadmapGridItemProps) {
title,
subtitle,
isCommunity,
isNew,
colorIndex = 0,
url,
isUpcoming
isUpcoming,
} = props;
return (
<Box
position='relative'
as={Link}
href={url}
_hover={{
textDecoration: 'none',
bg: 'rgba(255,255,255,.10)'
bg: 'rgba(255,255,255,.10)',
}}
sx={{
// On mobile devices, don't change the scale
'@media (hover: none)': {
'&:hover': {
bg: 'rgba(255,255,255,.05)'
}
}
bg: 'rgba(255,255,255,.05)',
},
},
}}
flex={1}
shadow='2xl'
shadow="2xl"
className={'home-roadmap-item'}
bg={'rgba(255,255,255,.05)'}
color='white'
p='15px'
rounded='10px'
pos='relative'
color="white"
p="15px"
rounded="10px"
pos="relative"
>
{isCommunity && (
<Tooltip label={'Community contribution'} hasArrow placement='top'>
<InfoIcon opacity={0.5} position='absolute' top='10px' right='10px' />
<Tooltip label={'Community contribution'} hasArrow placement="top">
<InfoIcon opacity={0.5} position="absolute" top="10px" right="10px" />
</Tooltip>
)}
<Heading
fontSize={['17px', '17px', '22px']}
color={bgColorList[colorIndex]}
mb='5px'
d='flex'
alignItems='center'
mb="5px"
>
{title}
{ isNew && <Badge position='absolute' bottom={0} right={0} colorScheme='yellow' ml='10px'>New</Badge> }
</Heading>
<Text color='gray.200' fontSize={['13px']}>
<Text color="gray.200" fontSize={['13px']}>
{subtitle}
</Text>
{isUpcoming && (
<Flex
alignItems='center'
justifyContent='center'
pos='absolute'
alignItems="center"
justifyContent="center"
pos="absolute"
left={0}
right={0}
top={0}
bottom={0}
rounded='10px'
rounded="10px"
>
<Text
color='white'
bg='gray.600'
color="white"
bg="gray.600"
zIndex={1}
fontWeight={600}
p={'5px 10px'}
rounded='10px'
rounded="10px"
>
Upcoming
</Text>
<Box
bg={'black'}
pos='absolute'
pos="absolute"
top={0}
left={0}
right={0}

View File

@@ -8,134 +8,17 @@ import {
Container,
Flex,
Heading,
Input,
Link,
Modal,
ModalBody,
ModalCloseButton,
ModalContent,
ModalOverlay,
Stack,
Text,
useDisclosure
} from '@chakra-ui/react';
import { AtSignIcon, ChatIcon, DownloadIcon } from '@chakra-ui/icons';
import { ChatIcon, AtSignIcon, DownloadIcon } from '@chakra-ui/icons';
import React from 'react';
import { SIGNUP_EMAIL_INPUT_NAME, SIGNUP_FORM_ACTION } from '../../pages/signup';
import { event } from '../../lib/gtag';
type RoadmapPageHeaderType = {
roadmap: RoadmapType;
};
function RoadmapDownloader({ roadmapTitle }: { roadmapTitle: string }) {
const { isOpen, onOpen, onClose } = useDisclosure();
const initialRef = React.useRef(null);
return (
<>
<Button
onClick={(e) => {
event({
category: 'Subscription',
action: `Clicked Download ${roadmapTitle} Roadmap`,
label: `Download ${roadmapTitle} Roadmap Button`
});
onOpen();
}}
size='xs'
py='14px'
px='10px'
leftIcon={<DownloadIcon />}
display={['none', 'flex']}
colorScheme='yellow'
variant='solid'
_hover={{ textDecoration: 'none' }}
_focus={{ boxShadow: 'none' }}
>
Download
</Button>
<Modal initialFocusRef={initialRef} closeOnOverlayClick={true} isOpen={isOpen} onClose={onClose} isCentered motionPreset='none'>
<ModalOverlay />
<ModalContent>
<ModalCloseButton />
<ModalBody p={6}>
<Heading mb='5px' fontSize='2xl'>Download Roadmap</Heading>
<Text fontSize={'md'} color='gray.700'>Enter your email below to receive the download link.</Text>
<form action={SIGNUP_FORM_ACTION} method='post' target='_blank' onSubmit={() => {
event({
category: 'Subscription',
action: `Submitted Download ${roadmapTitle} Roadmap Email`,
label: `PDF / Subscribe ${roadmapTitle} Roadmap`
});
onClose();
}}>
<Input required ref={initialRef} size='md' my='10px' type='email' placeholder='Email address' name={SIGNUP_EMAIL_INPUT_NAME} />
<Button type='submit' colorScheme='green' size='md' width={'full'}>Send Link</Button>
</form>
</ModalBody>
</ModalContent>
</Modal>
</>
);
}
function RoadmapSubscriber({ roadmapTitle }: { roadmapTitle: string }) {
const { isOpen, onOpen, onClose } = useDisclosure();
const initialRef = React.useRef(null);
return (
<>
<Button
onClick={(e) => {
event({
category: 'Subscription',
action: `Clicked Subscribe ${roadmapTitle} Roadmap`,
label: `Subscribe ${roadmapTitle} Roadmap Button`
});
onOpen();
}}
size='xs'
py='14px'
px='10px'
leftIcon={<AtSignIcon />}
display={'flex'}
colorScheme='yellow'
variant='solid'
_hover={{ textDecoration: 'none' }}
_focus={{ boxShadow: 'none' }}
>
Subscribe
</Button>
<Modal initialFocusRef={initialRef} closeOnOverlayClick={true} isOpen={isOpen} onClose={onClose} isCentered motionPreset='none'>
<ModalOverlay />
<ModalContent>
<ModalCloseButton />
<ModalBody p={6}>
<Heading mb='5px' fontSize='2xl'>Subscribe</Heading>
<Text fontSize={'md'} color='gray.700'>Enter your email below to receive updates to this roadmap.</Text>
<form action={SIGNUP_FORM_ACTION} method='post' target='_blank' onSubmit={() => {
event({
category: 'Subscription',
action: `Submitted Subscribe ${roadmapTitle} Roadmap Email`,
label: `Email / Subscribe ${roadmapTitle} Roadmap`
});
onClose();
}}>
<Input required ref={initialRef} size='md' my='10px' type='email' placeholder='Email address' name={SIGNUP_EMAIL_INPUT_NAME} />
<Button type='submit' colorScheme='green' size='md' width={'full'}>Subscribe</Button>
</form>
</ModalBody>
</ModalContent>
</Modal>
</>
);
}
export function RoadmapPageHeader(props: RoadmapPageHeaderType) {
const { roadmap } = props;
@@ -144,13 +27,13 @@ export function RoadmapPageHeader(props: RoadmapPageHeaderType) {
pt={['25px', '20px', '45px']}
pb={['20px', '15px', '30px']}
borderBottomWidth={1}
mb='30px'
mb="30px"
>
<Container maxW='container.md' position='relative'>
<Container maxW="container.md" position="relative">
<NewAlertBanner />
<Heading
as='h1'
color='black'
as="h1"
color="black"
fontSize={['28px', '33px', '40px']}
fontWeight={700}
mb={['2px', '2px', '5px']}
@@ -158,37 +41,64 @@ export function RoadmapPageHeader(props: RoadmapPageHeaderType) {
{roadmap.title}
</Heading>
<Text fontSize={['13px', '14px', '15px']}>{roadmap.description}</Text>
<Flex justifyContent='space-between' alignItems={'center'} mt='20px'>
<Flex justifyContent="space-between" alignItems={'center'} mt="20px">
<Stack isInline flex={1}>
<Button
d={['flex', 'flex']}
as={Link}
href={'/roadmaps'}
size='xs'
py='14px'
px='10px'
colorScheme='teal'
variant='solid'
size="xs"
py="14px"
px="10px"
colorScheme="teal"
variant="solid"
_hover={{ textDecoration: 'none' }}
>
&larr;
<Text as='span' d={['none', 'inline']} ml='5px'>
<Text as="span" d={['none', 'inline']} ml="5px">
All Roadmaps
</Text>
</Button>
<RoadmapDownloader roadmapTitle={roadmap.featuredTitle} />
<RoadmapSubscriber roadmapTitle={roadmap.featuredTitle} />
{roadmap.pdfUrl && (
<Button
as={Link}
href={roadmap.pdfUrl}
target="_blank"
size="xs"
py="14px"
px="10px"
leftIcon={<DownloadIcon />}
d={['none', 'flex']}
colorScheme="yellow"
variant="solid"
_hover={{ textDecoration: 'none' }}
>
Download
</Button>
)}
<Button
as={Link}
href={'/signup'}
size="xs"
py="14px"
px="10px"
variant="solid"
colorScheme="yellow"
leftIcon={<AtSignIcon />}
_hover={{ textDecoration: 'none' }}
>
Subscribe
</Button>
<Box flex={1} justifyContent='flex-end' d='flex'>
<Button
as={Link}
href={`${siteConfig.url.issue}?title=[Suggestion] ${roadmap.title}`}
target='_blank'
size='xs'
py='14px'
px='10px'
colorScheme='green'
size="xs"
py="14px"
px="10px"
colorScheme="green"
leftIcon={<ChatIcon />}
_hover={{ textDecoration: 'none' }}
>
@@ -199,16 +109,16 @@ export function RoadmapPageHeader(props: RoadmapPageHeaderType) {
</Flex>
{isInteractiveRoadmap(roadmap.id) && (
<Text
mt='30px'
mt="30px"
mb={['-37px', '-32px', '-47px']}
fontWeight={500}
fontSize='14px'
bg='white'
fontSize="14px"
bg="white"
borderWidth={1}
p='5px 7px'
rounded='3px'
p="5px 7px"
rounded="3px"
>
<Badge pos='relative' top={'-1px'} mr='6px' colorScheme='yellow'>
<Badge pos="relative" top={'-1px'} mr="6px" colorScheme="yellow">
New
</Badge>
Resources are here, try clicking any nodes.

View File

@@ -1,43 +0,0 @@
import { Box, Flex, Link } from '@chakra-ui/react';
import HackerNewsIcon from 'components/icons/hackernews-square.svg';
import FacebookIcon from 'components/icons/facebook-square.svg';
import TwitterIcon from 'components/icons/twitter-square.svg';
import RedditIcon from 'components/icons/reddit-square.svg';
import { Icon } from '@chakra-ui/icons';
import { getFacebookShareUrl, getHnShareUrl, getRedditShareUrl, getTwitterShareUrl } from '../lib/url';
import { useEffect, useState } from 'react';
type ShareIconProps = {
text: string;
url: string;
}
export function ShareIcons(props: ShareIconProps) {
const { text, url } = props;
const [offset, setOffset] = useState(0);
useEffect(() => {
const onScroll = () => setOffset(window.scrollY);
window.removeEventListener('scroll', onScroll);
window.addEventListener('scroll', onScroll, { passive: true });
return () => window.removeEventListener('scroll', onScroll);
}, []);
if (offset <= 100) {
return null;
}
return (
<Box pos='absolute' left={'-15px'} top={'190px'} height='100%' display={['none', 'none', 'none', 'block']}>
<Flex pos='sticky' top='100px' flexDir='column'>
<Link target='_blank' color='gray.500' href={getTwitterShareUrl({ url, text })} _hover={{ color: "gray.700" }}><Icon fill='currentColor' height='24px' width='24px' as={TwitterIcon} /></Link>
<Link target='_blank' color='gray.500' href={getFacebookShareUrl({ url, text })} _hover={{ color: "gray.700" }}><Icon fill='currentColor' height='24px' width='24px' as={FacebookIcon} /></Link>
<Link target='_blank' color='gray.500' href={getHnShareUrl({ url, text })} _hover={{ color: "gray.700" }}><Icon fill='currentColor' height='24px' width='24px' as={HackerNewsIcon} /></Link>
<Link target='_blank' color='gray.500' href={getRedditShareUrl({ text, url })} _hover={{ color: "gray.700" }}><Icon fill='currentColor' height='24px' width='24px' as={RedditIcon} /></Link>
</Flex>
</Box>
);
}

View File

@@ -1,22 +0,0 @@
import { Box, Button, Container, Heading, Link, Text } from '@chakra-ui/react';
import { event } from '../lib/gtag';
export function TeamsBanner() {
return null;
return (
<Box bg='teal.500' borderTopWidth={1} py={['45px', '45px', '70px']} textAlign='center'>
<Container maxW='container.sm'>
<Heading as='h4' color={'white'} fontSize={['25px', '25px', '35px']} mb={['10px', '10px', '20px']}>Roadmaps for Teams</Heading>
<Text lineHeight='26px' color={'white'} fontSize={['15px', '15px', '18px']} mb='20px'>We are working on a solution for teams. Help us shape the platform!</Text>
<Button onClick={() => {
event({
category: 'UpcomingFeatureClick',
action: `Teams Form Redirect`,
label: `Click Teams Footer Link`
});
}} target={'_blank'} as={Link} href='https://forms.gle/6X2matbCmjmvYGGt6' _hover={{textDecoration: 'none', bg: 'gray.300'}}>Take a Survey</Button>
</Container>
</Box>
);
}

View File

@@ -1,40 +1,9 @@
[
{
"id": "session-based-authentication",
"title": "Session Based Authentication",
"description": "Learn what is Session Based Authentication and how to implement it in Node.js",
"isNew": true,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2022-11-01T19:59:14.191Z",
"createdAt": "2022-11-01T19:59:14.191Z"
},
{
"id": "http-basic-authentication",
"title": "HTTP Basic Authentication",
"description": "Learn what is HTTP Basic Authentication and how to implement it in Node.js",
"isNew": true,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2022-10-03T19:59:14.191Z",
"createdAt": "2022-10-03T19:59:14.191Z"
},
{
"id": "basics-of-authentication",
"title": "Basics of Authentication",
"description": "Learn the basics of Authentication and Authorization",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2022-09-21T19:59:14.191Z",
"createdAt": "2022-09-21T19:59:14.191Z"
},
{
"id": "avoid-render-blocking-javascript-with-async-defer",
"title": "Async and Defer Script Loading",
"description": "Learn how to avoid render blocking JavaScript using async and defer scripts.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-09-10T19:59:14.191Z",
"createdAt": "2021-09-10T19:59:14.191Z"
@@ -44,7 +13,6 @@
"title": "What are Web Vitals?",
"description": "Learn what are the core web vitals and how to measure them.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-09-05T19:59:14.191Z",
"createdAt": "2021-09-05T19:59:14.191Z"
@@ -54,7 +22,6 @@
"title": "SLIs, SLOs and SLAs",
"description": "Learn what are different indicators for performance identification of any service.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-08-31T19:59:14.191Z",
"createdAt": "2021-08-31T19:59:14.191Z"
@@ -64,7 +31,6 @@
"title": "What is CI and CD?",
"description": "Learn the basics of CI/CD and how to implement that with GitHub Actions.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-07-09T19:59:14.191Z",
"createdAt": "2021-07-09T19:59:14.191Z"
@@ -74,7 +40,6 @@
"title": "SSO — Single Sign On",
"description": "Learn the basics of SAML and understand how does Single Sign On work.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-07-01T19:59:14.191Z",
"createdAt": "2021-07-01T19:59:14.191Z"
@@ -84,7 +49,6 @@
"title": "OAuth — Open Authorization",
"description": "Learn and understand what is OAuth and how it works",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-06-28T19:59:14.191Z",
"createdAt": "2021-06-28T19:59:14.191Z"
@@ -94,7 +58,6 @@
"title": "JWT Authentication",
"description": "Understand what is JWT authentication and how is it implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-06-20T19:59:14.191Z",
"createdAt": "2021-06-20T19:59:14.191Z"
@@ -104,7 +67,6 @@
"title": "Token Based Authentication",
"description": "Understand what is token based authentication and how it is implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-06-02T20:59:14.191Z",
"createdAt": "2021-06-02T20:59:14.191Z"
@@ -114,7 +76,6 @@
"title": "Session Based Authentication",
"description": "Understand what is session based authentication and how it is implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-26T20:59:14.191Z",
"createdAt": "2021-05-26T20:59:14.191Z"
@@ -124,7 +85,6 @@
"title": "Basic Authentication",
"description": "Understand what is basic authentication and how it is implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-19T20:59:14.191Z",
"createdAt": "2021-05-19T20:59:14.191Z"
@@ -134,7 +94,6 @@
"title": "Character Encodings",
"description": "Covers the basics of character encodings and explains ASCII vs Unicode",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-14T20:59:14.191Z",
"createdAt": "2021-05-14T20:59:14.191Z"
@@ -142,9 +101,8 @@
{
"id": "unfamiliar-codebase",
"title": "Unfamiliar Codebase",
"description": "Tips on getting familiar with an unfamiliar codebase",
"description": "Tips on getting getting familiar with an unfamiliar codebase",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-04T20:59:14.191Z",
"createdAt": "2021-05-04T20:59:14.191Z"
@@ -154,7 +112,6 @@
"title": "Build it and they will come?",
"description": "Why “build it and they will come” alone wont work anymore",
"isNew": false,
"type": "textual",
"authorUsername": "spekulatius",
"updatedAt": "2021-05-04T12:59:14.191Z",
"createdAt": "2021-05-04T12:59:14.191Z"
@@ -164,7 +121,6 @@
"title": "DHCP in One Picture",
"description": "Here is what happens when a new device joins the network.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-04-28T15:48:21.191Z",
"createdAt": "2021-04-28T15:48:21.191Z"
@@ -174,7 +130,6 @@
"title": "SSL vs TLS vs SSH",
"description": "Quick tidbit on the differences between SSL, TLS, HTTPS and SSH",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-04-22T15:48:21.191Z",
"createdAt": "2021-04-22T15:48:21.191Z"
@@ -184,7 +139,6 @@
"title": "Asymptotic Notation",
"description": "Learn the basics of measuring the time and space complexity of algorithms",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-04-03T15:48:21.191Z",
"createdAt": "2021-04-03T15:48:21.191Z"
@@ -194,7 +148,6 @@
"title": "Big-O Notation",
"description": "Easy to understand explanation of Big-O notation without any fancy terms",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-03-15T15:48:21.191Z",
"createdAt": "2021-03-15T15:48:21.191Z"
@@ -204,7 +157,6 @@
"title": "Random Numbers: Are they?",
"description": "Learn how they are generated and why they may not be truly random.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-03-14T15:48:21.191Z",
"createdAt": "2021-03-14T15:48:21.191Z"
@@ -214,7 +166,6 @@
"title": "Scaling Databases",
"description": "Learn the ups and downs of different database scaling strategies",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-02-18T15:48:21.191Z",
"createdAt": "2021-02-18T15:48:21.191Z"
@@ -224,8 +175,7 @@
"title": "How does the internet work?",
"description": "Learn the basics of internet and everything involved with this short video series",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"authorUsername": "dmytrobol",
"updatedAt": "2021-02-29T15:48:21.191Z",
"createdAt": "2021-02-29T15:48:21.191Z"
},
@@ -234,7 +184,6 @@
"title": "Building a BitTorrent Client",
"description": "Learn everything you need to know about BitTorrent by writing a client in Go",
"isNew": false,
"type": "textual",
"authorUsername": "jesse",
"updatedAt": "2021-01-17T15:48:21.191Z",
"createdAt": "2021-01-17T15:48:21.191Z",
@@ -245,7 +194,6 @@
"title": "Levels of Seniority",
"description": "How to Step Up as a Junior, Mid Level or a Senior Developer?",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2020-12-03T12:13:00.860Z",
"createdAt": "2020-12-03T12:13:00.860Z"
@@ -255,7 +203,6 @@
"title": "Design Patterns for Humans",
"description": "A language agnostic, ultra-simplified explanation to design patterns",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2019-10-09T12:00:00.860Z",
"createdAt": "2019-01-23T17:00:00.860Z"
@@ -265,7 +212,6 @@
"title": "Journey to HTTP/2",
"description": "The evolution of HTTP. How it all started and where we stand today",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"createdAt": "2018-12-04T12:00:00.860Z",
"updatedAt": "2018-12-04T12:00:00.860Z",
@@ -276,7 +222,6 @@
"title": "DNS in One Picture",
"description": "Quick illustrative guide on how a website is found on the internet.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2018-12-04T12:00:00.860Z",
"createdAt": "2018-12-04T17:00:00.860Z"
@@ -286,7 +231,6 @@
"title": "HTTP Caching",
"description": "Everything you need to know about web caching",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"createdAt": "2018-11-29T17:00:00.860Z",
"updatedAt": "2018-11-29T17:00:00.860Z"
@@ -296,7 +240,6 @@
"title": "Brief History of JavaScript",
"description": "How JavaScript was introduced and evolved over the years",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"createdAt": "2017-10-28T17:00:00.860Z",
"updatedAt": "2017-10-28T17:00:00.860Z"
@@ -306,7 +249,6 @@
"title": "Proxy Servers",
"description": "How do proxy servers work and what are forward and reverse proxies?",
"isNew": false,
"type": "textual",
"authorUsername": "ebrahimbharmal007",
"createdAt": "2017-10-24T17:00:00.860Z",
"updatedAt": "2017-10-24T17:00:00.860Z"

View File

@@ -1,3 +1,14 @@
export const guideMeta = {
"title": "WebStorm — Project History",
"description": "Learn how to peek through the history of any git repository to learn how it grew.",
"url": "/guides/project-history",
"fileName": "project-history",
"featured": true,
"author": "kamranahmedse",
"updatedAt": "2020-07-16T19:59:14.191Z",
"createdAt": "2020-07-16T19:59:14.191Z"
};
Asymptotic notation is the standard way of measuring the time and space that an algorithm will consume as the input grows. In one of my last guides, I covered "Big-O notation" and a lot of you asked for a similar one for Asymptotic notation. You can find the [previous guide here](/guides/big-o-notation).
[![](/guides/asymptotic-notation.png)](/guides/asymptotic-notation.png)

View File

@@ -1,83 +0,0 @@
Our last video series was about data structures. We looked at the most common data structures, their use cases, pros and cons, and the different operations you could perform on each data structure.
Today, we are kicking off a similar series for Authentication strategies where we will discuss everything you need to know about authentication and authentication strategies.
In this guide today will be talking about what authentication is, and we will cover some terminology that will help us later in the series. You can watch the video below or continue reading this guide.
<iframe src="https://www.youtube.com/embed/Mcyt9SrZT6g" title="Basics of Authentication" />
## What is Authentication?
Authentication is the process of verifying someone's identity. A real-world example of that would be when you board a plane, the airline worker checks your passport to verify your identity, so the airport worker authenticates you.
If we talk about computers, when you log in to any website, you usually authenticate yourself by entering your username and password, which is then checked by the website to ensure that you are who you claim to be. There are two things you should keep in mind:
- Authentication is not only for the persons
- And username and password are not the only way to authenticate.
Some other examples are:
- When you open a website in the browser. If the website uses HTTP, TLS is used to authenticate the server and avoid the fake loading of websites.
- There might be server-to-server communication on the website. The server may need to authenticate the incoming request to avoid malicious usage.
## How does Authentication Work?
On a high level, we have the following factors used for authentication.
- **Username and Password**
- **Security Codes, Pin Codes, or Security Questions** — An example would be the pin code you enter at an ATM to withdraw cash.
- **Hard Tokens and Soft Tokens** — Hard tokens are the special hardware devices that you attach to your device to authenticate yourself. Soft tokens, unlike hard tokens, don't have any authentication-specific device; we must verify the possession of a device that was used to set up the identity. For example, you may receive an OTP to log in to your account on a website.
- **Biometric Authentication** — In biometric authentication, we authenticate using biometrics such as iris, facial, or voice recognition.
We can categorize the factors above into three different types.
- Username / Password and Security codes rely on the person's knowledge: we can group them under the **Knowledge Factor**.
- In hard and soft tokens, we authenticate by checking the possession of hardware, so this would be a **Possession Factor**.
- And in biometrics, we test the person's inherent qualities, i.e., iris, face, or voice, so this would be a **Qualities** factor.
This brings us to our next topic: Multi-factor Authentication and Two-Factor Authentication.
## Multifactor Authentication
Multifactor authentication is the type of authentication in which we rely on more than one factor to authenticate a user.
For example, if we pick up username/password from the **knowledge factor**. And we pick soft tokens from the **possession factor**, and we say that for a user to authenticate, they must enter their credentials and an OTP, which will be sent to their mobile phone, so this would be an example of multifactor authentication.
In multifactor authentication, since we rely on more than one factor, this way of authentication is much more secure than single-factor authentication.
One important thing to note here is that the factors you pick for authentication, they must differ. So, for example, if we pick up a username/password and security question or security codes, it is still not true multifactor authentication because we still rely on the knowledge factor. The factors have to be different from each other.
### Two-Factor Authentication
Two-factor authentication is similar to multifactor authentication. The only difference is that there are precisely two factors in 2FA. In MFA, we can have 2, 3, 4, or any authentication factors; 2FA has exactly two factors. We can say that 2FA is always MFA, because there are more than one factors. MFA is not always 2FA because there may be more than two factors involved.
Next we have the difference between authentication and authorization. This comes up a lot in the interviews, and beginners often confuse them.
### What is Authentication
Authentication is the process of verifying the identity. For example, when you enter your credentials at a login screen, the application here identifies you through your credentials. So this is what the authentication is, the process of verifying the identity.
In case of an authentication failure, for example, if you enter an invalid username and password, the HTTP response code is "Unauthorized" 401.
### What is Authorization
Authorization is the process of checking permission. Once the user has logged in, i.e., the user has been authenticated, the process of reviewing the permission to see if the user can perform the relevant operation or not is called authorization.
And in case of authorization failure, i.e., if the user tries to perform an operation they are not allowed to perform, the HTTP response code is forbidden 403.
## Authentication Strategies
Given below is the list of common authentication strategies:
- Basics of Authentication
- Session Based Authentication
- Token-Based Authentication
- JWT Authentication
- OAuth - Open Authorization
- Single Sign On (SSO)
In this series of illustrated videos and textual guides, we will be going through each of the strategies discussing what they are, how they are implemented, the pros and cons and so on.
So stay tuned, and I will see you in the next one.

View File

@@ -1,7 +1,7 @@
Around 10 years ago, Jeff Atwood (the founder of stackoverflow) made a case that JavaScript is going to be the future and he coined the “Atwood Law” which states that *Any application that can be written in JavaScript will eventually be written in JavaScript*. Fast-forward to today, 10 years later, if you look at it it rings truer than ever. JavaScript is continuing to gain more and more adoption.
### JavaScript is announced
JavaScript was initially created by [Brendan Eich](https://twitter.com/BrendanEich) of NetScape and was first announced in a press release by Netscape in 1995. It has a bizarre history of naming; initially it was named `Mocha` by the creator, which was later renamed to `LiveScript`. In 1996, about a year later after the release, NetScape decided to rename it to be `JavaScript` with hopes of capitalizing on the Java community (although JavaScript did not have any relationship with Java) and released Netscape 2.0 with the official support of JavaScript.
JavaScript was initially created by [Brendan Eich](https://twitter.com/BrendanEich) of NetScape and was first announced in a press release by Netscape in 1995. It has a bizarre history of naming; initally it was named `Mocha` by the creator, which was later renamed to `LiveScript`. In 1996, about a year later after the release, NetScape decided to rename it to be `JavaScript` with hopes of capitalizing on the Java community (although JavaScript did not have any relationship with Java) and released Netscape 2.0 with the official support of JavaScript.
### ES1, ES2 and ES3
In 1996, Netscape decided to submit it to [ECMA International](https://en.wikipedia.org/wiki/Ecma_International) with the hopes of getting it standardized. First edition of the standard specification was released in 1997 and the language was standardized. After the initial release, `ECMAScript` was continued to be worked upon and in no-time two more versions were released ECMAScript 2 in 1998 and ECMAScript 3 in 1999.

View File

@@ -1,93 +0,0 @@
Our last guide was about the [basics of authentication](/guides/basics-of-authentication), where we discussed authentication, authorization, types of authentication, authentication factors, authentication strategies, and so on.
In this guide today, we will be learning about basic authentication, and we will see how we can implement Basic Authentication in Node.js. We have a [visual guide on the basic authentication](/guides/basic-authentication) and an illustrative video, watch the video below or continue reading:
<iframe src="https://www.youtube.com/embed/mwccHwUn7Gc" title="HTTP Basic Authentication" />
## What is Basic Authentication?
Given the name "Basic Authentication", you should not confuse Basic Authentication with the standard username and password authentication. Basic authentication is a part of the HTTP specification, and the details can be [found in the RFC7617](https://www.rfc-editor.org/rfc/rfc7617.html).
Because it is a part of the HTTP specifications, all the browsers have native support for "HTTP Basic Authentication". Given below is the screenshot from the implementation in Google Chrome.
![](/guides/basic-authentication/chrome-basic-auth.png)
## How does it Work?
Now that we know what basic authentication is, the question is, how does it work? The answer is: it is controlled by the response of the server.
### Step 1
When the browser first requests the server, the server tries to check the availability of the `Authorization` header in the request. Because it is the first request, no `Authorization` header is found in the request. So the server responds with the `401 Unauthorized` response code and also sends the `WWW-Authenticate` header with the value set to `Basic`, which tells the browser that it needs to trigger the basic authentication flow.
```text
401 Unauthorized
WWW-Authenticate: Basic realm='user_pages'
```
If you notice the response, we have an additional parameter called `realm`, which is just a value assigned to a group of pages that share the same credentials.
The browser might use Realm to cache the credential. In the future, when there is an authentication failure browser will check if it has the credentials in the cache for the given realm of the domain, and it may use the same credentials.
## Step 2
Upon receiving the response from the server, the browser will notice the `WWW-Authenticate` header and will show the authentication popup.
![](/guides/basic-authentication/chrome-basic-auth.png)
## Step 3
After the user submits the credentials through this authentication popup, the browser will automatically encode the credentials using the `base64` encoding and send them in the `Authorization` header of the same request.
### Step 4
Upon receiving the request, the server will decode and verify the credentials. If the credentials are valid, the server will send the response to the client.
So that is how Basic Authentication works.
## Basic Authentication in Node.js
I have prepared the sample project in Node.js, which can be found on GitHub [kamranahmedse/node-basic-auth-example](https://github.com/kamranahmedse/node-basic-auth-example). If you look at the codebase of the project, we have two files `index.js` with the following content:
```javascript
// src/index.js
const express = require('express');
const authMiddleware = require('./auth');
const app = express();
const port = 3000;
// This middleware is where we have the
// basic authentication implementation
app.use(authMiddleware);
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`App running @ http://localhost:${port}`);
})
```
As you can see, it's just a regular express server. `authMiddleware` registration is where we have all the code for "Basic Authentication". Here is the content of the middleware:
```javascript
// src/auth.js
const base64 = require("base-64");
function decodeCredentials(authHeader) {
// ...
}
module.exports = function(req, res, next) {
// Take the header and decode credentials
const [username, password] = decodeCredentials(req.headers.authorization || '');
// Verify the credentials
if (username === 'admin' && password === 'admin') {
return next();
}
// Respond with authenticate header on auth failure.
res.set('WWW-Authenticate', 'Basic realm="user_pages"');
res.status(401).send('Authentication required.');
}
```
And that is how the basic authentication is implemented in Node.js.

View File

@@ -1,8 +1,8 @@
As users, we easily get frustrated by the buffering of videos, the images that take seconds to load, and pages that got stuck because the content is being loaded. Loading the resources from some cache is much faster than fetching the same from the originating server. It reduces latency, speeds up the loading of resources, decreases the load on the server, cuts down the bandwidth costs etc.
As users, we easily get frustrated by the buffering videos, the images that take seconds to load, pages that got stuck because the content is being loaded. Loading the resources from some cache is much faster than fetching the same from the originating server. It reduces latency, speeds up the loading of resources, decreases the load on server, cuts down the bandwidth costs etc.
### Introduction
What is a web cache? It is something that sits somewhere between the client and the server, continuously looking at the requests and their responses, looking for any responses that can be cached. So that there is less time consumed when the same request is made again.
What is web cache? It is something that sits somewhere between the client and the server, continuously looking at the requests and their responses, looking for any responses that can be cached. So that there is less time consumed when the same request is made again.
![Web Cache](https://i.imgur.com/mJYVvTh.png)
@@ -11,9 +11,9 @@ What is a web cache? It is something that sits somewhere between the client and
Before we get into further details, let me give you an overview of the terms that will be used, further in the article
- **Client** could be your browser or any application requesting the server for some resource
- **Origin Server**, the source of truth, houses all the content required by the client and is responsible for fulfilling the client's requests.
- **Stale Content** is cached but expired content
- **Fresh Content** is the content available in the cache that hasn't expired yet
- **Origin Server**, the source of truth, houses all the content required by the client and is responsible for fulfilling the client requests.
- **Stale Content** is the cached but expired content
- **Fresh Content** is the content available in cache that hasn't expired yet
- **Cache Validation** is the process of contacting the server to check the validity of the cached content and get it updated for when it is going to expire
- **Cache Invalidation** is the process of removing any stale content available in the cache
@@ -43,15 +43,15 @@ Unlike browser cache which serves a single user, proxy caches may serve hundreds
#### Reverse Proxy Cache
A Reverse proxy cache or surrogate cache is implemented close to the origin servers in order to reduce the load on the server. Unlike proxy caches which are implemented by ISPs etc to reduce the bandwidth usage in a network, surrogates or reverse proxy caches are implemented near the origin servers by the server administrators to reduce the load on the server.
Reverse proxy cache or surrogate cache is implemented close to the origin servers in order to reduce the load on server. Unlike proxy caches which are implemented by ISPs etc to reduce the bandwidth usage in a network, surrogates or reverse proxy caches are implemented near to the origin servers by the server administrators to reduce the load on server.
![Reverse Proxy Cache](http://i.imgur.com/Eg4Cru3.png)
Although you can control the reverse proxy caches (since it is implemented by you on your server) you can not avoid or control browser and proxy caches. And if your website is not configured to use these caches properly, it will still be cached using whatever defaults are set on these caches.
Although you can control the reverse proxy caches (since it is implemented by you on your server) you can not avoid or control browser and proxy caches. And if your website is not configured to use these caches properly, it will still be cached using whatever the defaults are set on these caches.
### Caching Headers
So, how do we control the web cache? Whenever the server emits some response, it is accompanied by some HTTP headers to guide the caches on whether and how to cache this response. The content provider is the one that has to make sure to return proper HTTP headers to force the caches on how to cache the content.
So, how do we control the web cache? Whenever the server emits some response, it is accompanied with some HTTP headers to guide the caches whether and how to cache this response. Content provider is the one that has to make sure to return proper HTTP headers to force the caches on how to cache the content.
- [Expires](#expires)
- [Pragma](#pragma)
@@ -71,19 +71,19 @@ So, how do we control the web cache? Whenever the server emits some response, it
#### Expires
Before HTTP/1.1 and the introduction of `Cache-Control`, there was an `Expires` header which is simply a timestamp telling the caches how long should some content be considered fresh. A possible value to this header is the absolute expiry date; where a date has to be in GMT. Below is the sample header
Before HTTP/1.1 and introduction of `Cache-Control`, there was `Expires` header which is simply a timestamp telling the caches how long should some content be considered fresh. Possible value to this header is absolute expiry date; where date has to be in GMT. Below is the sample header
```html
Expires: Mon, 13 Mar 2017 12:22:00 GMT
```
It should be noted that the date cannot be more than a year and if the date format is wrong, the content will be considered stale. Also, the clock on the cache has to be in sync with the clock on the server, otherwise, the desired results might not be achieved.
It should be noted that the date cannot be more than a year and if the date format is wrong, content will be considered stale. Also, the clock on cache has to be in sync with the clock on server, otherwise the desired results might not be achieved.
Although the `Expires` header is still valid and is supported widely by the caches, preference should be given to HTTP/1.1 successor of it i.e. `Cache-Control`.
Although, `Expires` header is still valid and is supported widely by the caches, preference should be given to HTTP/1.1 successor of it i.e. `Cache-Control`.
#### Pragma
Another one from the old, pre HTTP/1.1 days, is `Pragma`. Everything that it could do is now possible using the cache-control header given below. However, one thing I would like to point out about it is, that you might see `Pragma: no-cache` being used here and there in hopes of stopping the response from being cached. It might not necessarily work; as HTTP specification discusses it in the request headers and there is no mention of it in the response headers. Rather `Cache-Control` header should be used to control the caching.
Another one from the old, pre HTTP/1.1 days, is `Pragma`. Everything that it could do is now possible using the cache-control header given below. However, one thing I would like to point out about it is, you might see `Pragma: no-cache` being used here and there in hopes of stopping the response from being cached. It might not necessarily work; as HTTP specification discusses it in the request headers and there is no mention of it in the response headers. Rather `Cache-Control` header should be used to control the caching.
#### Cache-Control
@@ -98,7 +98,7 @@ Setting the cache to `private` means that the content will not be cached in any
Cache-Control: private
```
Having said that, don't let it fool you into thinking that setting this header will make your data any secure; you still have to use SSL for that purpose.
Having said that, don't let it fool you in to thinking that setting this header will make your data any secure; you still have to use SSL for that purpose.
##### public
@@ -138,7 +138,7 @@ Cache-Control: s-maxage=3600, public
```
##### must-revalidate
**`must-revalidate`** it might happen sometimes that if you have network problems and the content cannot be retrieved from the server, the browser may serve stale content without validation. `must-revalidate` avoids that. If this directive is present, it means that stale content cannot be served in any case and the data must be re-validated from the server before serving.
**`must-revalidate`** it might happen sometimes that if you have network problems and the content cannot be retrieved from the server, browser may serve stale content without validation. `must-revalidate` avoids that. If this directive is present, it means that stale content cannot be served in any case and the data must be re-validated from the server before serving.
```html
Cache-Control: max-age=3600, public, must-revalidate
@@ -177,7 +177,7 @@ ETag: "j82j8232ha7sdh0q2882" - Strong Etag
ETag: W/"j82j8232ha7sdh0q2882" - Weak Etag (prefixed with `W/`)
```
A strong validating ETag means that two resources are **exactly** same and there is no difference between them at all. While a weak ETag means that two resources although not strictly the same but could be considered the same. Weak etags might be useful for dynamic content, for example.
A strong validating ETag means that two resources are **exactly** same and there is no difference between them at all. While a weak ETag means that two resources are although not strictly same but could be considered same. Weak etags might be useful for dynamic content, for example.
Now you know what etags are but how does the browser make this request? by making a request to server while sending the available Etag in `If-None-Match` header.

View File

@@ -71,7 +71,7 @@ Three-way handshake in its simplest form is that all the `TCP` connections begin
- `SYN ACK` - Server acknowledges the request by sending an `ACK` packet back to the client which is made up of a random number, let's say `y` picked up by server and the number `x+1` where `x` is the number that was sent by the client
- `ACK` - Client increments the number `y` received from the server and sends an `ACK` packet back with the number `y+1`
Once the three-way handshake is completed, the data sharing between the client and server may begin. It should be noted that the client may start sending the application data as soon as it dispatches the last `ACK` packet but the server will still have to wait for the `ACK` packet to be received in order to fulfill the request.
Once the three-way handshake is completed, the data sharing between the client and server may begin. It should be noted that the client may start sending the application data as soon as it dispatches the last `ACK` packet but the server will still have to wait for the `ACK` packet to be recieved in order to fulfill the request.
![](http://i.imgur.com/uERG2G2.png)
@@ -89,7 +89,7 @@ After merely 3 years of `HTTP/1.0`, the next version i.e. `HTTP/1.1` was release
- **Hostname Identification** In `HTTP/1.0` `Host` header wasn't required but `HTTP/1.1` made it required.
- **Persistent Connections** As discussed above, in `HTTP/1.0` there was only one request per connection and the connection was closed as soon as the request was fulfilled which resulted in acute performance hit and latency problems. `HTTP/1.1` introduced the persistent connections i.e. **connections weren't closed by default** and were kept open which allowed multiple sequential requests. To close the connections, the header `Connection: close` had to be available on the request. Clients usually send this header in the last request to safely close the connection.
- **Persistent Connections** As discussed above, in `HTTP/1.0` there was only one request per connection and the connection was closed as soon as the request was fulfilled which resulted in accute performance hit and latency problems. `HTTP/1.1` introduced the persistent connections i.e. **connections weren't closed by default** and were kept open which allowed multiple sequential requests. To close the connections, the header `Connection: close` had to be available on the request. Clients usually send this header in the last request to safely close the connection.
- **Pipelining** It also introduced the support for pipelining, where the client could send multiple requests to the server without waiting for the response from server on the same connection and server had to send the response in the same sequence in which requests were received. But how does the client know that this is the point where first response download completes and the content for next response starts, you may ask! Well, to solve this, there must be `Content-Length` header present which clients can use to identify where the response ends and it can start waiting for the next response.
@@ -111,7 +111,7 @@ After merely 3 years of `HTTP/1.0`, the next version i.e. `HTTP/1.1` was release
I am not going to dwell about all the `HTTP/1.1` features in this post as it is a topic in itself and you can already find a lot about it. The one such document that I would recommend you to read is [Key differences between `HTTP/1.0` and HTTP/1.1](http://www.ra.ethz.ch/cdstore/www8/data/2136/pdf/pd1.pdf) and here is the link to [original RFC](https://tools.ietf.org/html/rfc2616) for the overachievers.
`HTTP/1.1` was introduced in 1999 and it had been a standard for many years. Although, it improved alot over its predecessor; with the web changing everyday, it started to show its age. Loading a web page these days is more resource-intensive than it ever was. A simple webpage these days has to open more than 30 connections. Well `HTTP/1.1` has persistent connections, then why so many connections? you say! The reason is, in `HTTP/1.1` it can only have one outstanding connection at any moment of time. `HTTP/1.1` tried to fix this by introducing pipelining but it didn't completely address the issue because of the **head-of-line blocking** where a slow or heavy request may block the requests behind and once a request gets stuck in a pipeline, it will have to wait for the next requests to be fulfilled. To overcome these shortcomings of `HTTP/1.1`, the developers started implementing the workarounds, for example use of spritesheets, encoded images in CSS, single humongous CSS/Javascript files, [domain sharding](https://www.maxcdn.com/one/visual-glossary/domain-sharding-2/) etc.
`HTTP/1.1` was introduced in 1999 and it had been a standard for many years. Although, it improved alot over its predecessor; with the web changing everyday, it started to show its age. Loading a web page these days is more resource-intensive than it ever was. A simple webpage these days has to open more than 30 connections. Well `HTTP/1.1` has persistent connections, then why so many connections? you say! The reason is, in `HTTP/1.1` it can only have one outstanding connection at any moment of time. `HTTP/1.1` tried to fix this by introducing pipelining but it didn't completely address the issue because of the **head-of-line blocking** where a slow or heavy request may block the requests behind and once a request gets stuck in a pipeline, it will have to wait for the next requests to be fulfilled. To overcome these shortcomings of `HTTP/1.1`, the developers started implementing the workarounds, for example use of spritesheets, encoded images in CSS, single humungous CSS/Javascript files, [domain sharding](https://www.maxcdn.com/one/visual-glossary/domain-sharding-2/) etc.
### SPDY - 2009
@@ -121,7 +121,7 @@ Google went ahead and started experimenting with alternative protocols to make t
It was seen that if we keep increasing the bandwidth, the network performance increases in the beginning but a point comes when there is not much of a performance gain. But if you do the same with latency i.e. if we keep dropping the latency, there is a constant performance gain. This was the core idea for performance gain behind `SPDY`, decrease the latency to increase the network performance.
> For those who don't know the difference, latency is the delay i.e. how long it takes for data to travel between the source and destination (measured in milliseconds) and bandwidth is the amount of data transferred per second (bits per second).
> For those who don't know the difference, latency is the delay i.e. how long it takes for data to travel between the source and destination (measured in milliseconds) and bandwidth is the amount of data transfered per second (bits per second).
The features of `SPDY` included, multiplexing, compression, prioritization, security etc. I am not going to get into the details of SPDY, as you will get the idea when we get into the nitty gritty of `HTTP/2` in the next section as I said `HTTP/2` is mostly inspired from SPDY.
@@ -176,7 +176,7 @@ While we are talking headers, let me add here that the headers are still the sam
Server push is another tremendous feature of `HTTP/2` where the server, knowing that the client is going to ask for a certain resource, can push it to the client without even client asking for it. For example, let's say a browser loads a web page, it parses the whole page to find out the remote content that it has to load from the server and then sends consequent requests to the server to get that content.
Server push allows the server to decrease the round trips by pushing the data that it knows that client is going to demand. How it is done is, server sends a special frame called `PUSH_PROMISE` notifying the client that, "Hey, I am about to send this resource to you! Do not ask me for it." The `PUSH_PROMISE` frame is associated with the stream that caused the push to happen and it contains the promised stream ID i.e. the stream on which the server will send the resource to be pushed.
Server push allows the server to decrease the roundtrips by pushing the data that it knows that client is going to demand. How it is done is, server sends a special frame called `PUSH_PROMISE` notifying the client that, "Hey, I am about to send this resource to you! Do not ask me for it." The `PUSH_PROMISE` frame is associated with the stream that caused the push to happen and it contains the promised stream ID i.e. the stream on which the server will send the resource to be pushed.
#### 5. Request Prioritization
@@ -186,7 +186,7 @@ Without any priority information, server processes the requests asynchronously i
#### 6. Security
There was extensive discussion on whether security (through `TLS`) should be made mandatory for `HTTP/2` or not. In the end, it was decided not to make it mandatory. However, most vendors stated that they will only support `HTTP/2` when it is used over `TLS`. So, although `HTTP/2` doesn't require encryption by specs but it has kind of become mandatory by default anyway. With that out of the way, `HTTP/2` when implemented over `TLS` does impose some requirements i.e. `TLS` version `1.2` or higher must be used, there must be a certain level of minimum key sizes, ephemeral keys are required etc.
There was extensive discussion on whether security (through `TLS`) should be made mandatory for `HTTP/2` or not. In the end, it was decided not to make it mandatory. However, most vendors stated that they will only support `HTTP/2` when it is used over `TLS`. So, although `HTTP/2` doesn't require encryption by specs but it has kind of become mandatory by default anyway. With that out of the way, `HTTP/2` when implemented over `TLS` does impose some requirementsi.e. `TLS` version `1.2` or higher must be used, there must be a certain level of minimum keysizes, ephemeral keys are required etc.
`HTTP/2` is here and it has already [surpassed SPDY in adaption](http://caniuse.com/#search=http2) which is gradually increasing. `HTTP/2` has alot to offer in terms of performance gain and it is about time we should start using it.

View File

@@ -1,4 +1,4 @@
The Internet has connected people across the world using social media and audio/video calling features along with providing an overabundance of knowledge and tools. All this comes with an inherent danger of security and privacy breaches. In this guide, we will talk about **proxies** that play a vital role in mitigating these risks. We will cover the following topics in this guide:
Internet has connected people across the world using social media and audio/video calling features along with providing an overabundance of knowledge and tools. All this comes with an inherent danger of security and privacy breaches. In this guide we will talk about **proxies** which play a vital role in mitigating these risks. We will cover the following topics in this guide:
- [Proxy Server](#proxy-server)
- [Forward Proxy Server](#forward-proxy-server)
@@ -7,34 +7,34 @@ The Internet has connected people across the world using social media and audio/
## Proxy Server
***Every web request which is sent from the client to a web server goes through some type of proxy server.*** A proxy server acts as a gateway between client *(you)* and the internet and separates end-users from the websites you browse. It replaces the source IP address of the web request with the proxy server's IP address and then forwards it to the web server. The web server is unaware of the client, it only sees the proxy server.
***Every web request which is sent from the client to a web server goes through some type of proxy server.*** A proxy server acts as a gateway between client *(you)* and the internet and separates end-users from the websites you browse. It replaces the source IP address of the web request with the proxy server's IP address and then forwards it to the web server. The web server is unaware of the client, it only sees the proxy server.
![Proxy Server Description](/guides/proxy/proxy-example.png)
> NOTE: This is not an accurate description but rather just an illustration.
> NOTE: This is not an accurate description rather just an illustration.
Proxy servers serve as a single point of control making it easier to enforce security policies. It also provides caching mechanism which stores the requested web pages on the proxy server to improve performance. If the requested web-page is available in cache memory then instead of forwarding the request to the web-server it will send the cached webpage back to the client. This **saves big companies thousands of dollars** by reducing the load on their servers as their website is visited by millions of users every day.
Proxy servers serve as a single point of control making it easier to enforce security policies. It also provides caching mechanism which stores the requested web pages on the proxy server to improve performance. If the requested web-page is available in cache memory then instead of forwarding the request to the web-server it will send the cached webpage back to the client. This **saves big companies thousands of dollars** by reducing load on their servers as their website is visited by millions of users every day.
## Forward Proxy Server
A forward proxy is generally implemented on the client side and **sits in front of multiple clients** or client sources. Forward proxy servers are mainly used by companies to **manage the internet usage** of their employees and **restrict content**. It is also used as a **firewall** to secure the company's network by blocking any request which would pose threat to the company's network. Proxy servers are also used to **bypass geo-restriction** and browse content that might be blocked in the user's country. It enables users to **browse anonymously**, as the proxy server masks their details from the website's servers.
A forward proxy is generally implemented on the client side and **sits in front of multiple clients** or client sources. Forward proxy servers are mainly used by companies to **manage internet usage** of their employees and **restrict content**. It is also used as a **firewall** to secure company's network by blocking any request which would pose threat to the companies's network. Proxy servers are also used to **bypass geo-restriction** and browse content which might be blocked in user's country. It enables users to **browse anonymously**, as the proxy server masks their details from the website's servers.
![Forward Proxy Description](/guides/proxy/forward-proxy.png)
> NOTE: This is not an accurate description but rather just an illustration
> NOTE: This is not an accurate description rather just an illustration
## Reverse Proxy Server
Reverse proxy servers are implemented on the **server side** instead of the client side. It **sits in front of multiple webservers** and manages incoming requests by forwarding them to the web servers. It provides anonymity for the **back-end web servers and not the client**. Reverse proxy servers are generally used to perform tasks such as **authentication, content caching, and encryption/decryption** on behalf of the web server. These tasks would **hog CPU cycles** on the web server and degrade the performance of the website by introducing a high amount of delay in loading the webpage. Reverse proxies are also used as **load balancers** to distribute the incoming traffic efficiently among the web servers but it is **not optimized** for this task. In essence, a reverse proxy server is a gateway to a web-server or group of web-servers.
Reverse proxy servers are implemented on the **server side** instead of the client side. It **sits in front of multiple webservers** and manages the incoming requests by forwarding them to the web servers. It provides anonymity for the **back-end web servers and not the client**. Reverse proxy servers are generally used to perform tasks such as **authentication, content caching, and encryption/decryption** on behalf of the web server. These tasks would **hog CPU cycles** on the web server and degrade performance of the website by introducing high amount of delay in loading the webpage. Reverse proxies are also used as **load balancers** to distribute the incoming traffic efficiently among the web servers but it is **not optimized** for this task. In essence, reverse proxy server is a gateway to a web-server or group of web-servers.
![Reverse Proxy Description](/guides/proxy/reverse-proxy.png)
> NOTE: This is not an accurate description but rather just an illustration. Red lines represent the server's response and black lines represent the initial request from client(s).
> NOTE: This is not an accurate description rather just an illustration. Red lines represent server's response and black lines represent initial request from client(s).
## Summary
A proxy server acts as a gateway between client *(you)* and the internet and separates end-users from the websites you browse. ***The position of the proxy server on the network determines whether it is a forward or a reverse proxy server***. A Forward proxy is implemented on the client side and **sits in front of multiple clients** or client sources and forwards requests to the web server. Reverse proxy servers are implemented on the **server side** it **sits in front of multiple webservers** and manage the incoming requests by forwarding them to the web servers.
A proxy server acts as a gateway between client *(you)* and the internet and separates end-users from the websites you browse. ***The position of the proxy server on the network determines whether it is a forward or a reverse proxy server***. Forward proxy is implemented on the client side and **sits in front of multiple clients** or client sources and forwards requests to the web server. Reverse proxy servers are implemented on the **server side** it **sits in front of multiple webservers** and manages the incoming requests by forwarding them to the web servers.
If all this was too much to take in, I have a simple analogy for you.
At a restaurant, the waiter/waitress takes your order and gives it to the kitchen head chef. The head chef then calls out the order and assigns tasks to everyone in the kitchen.
At a restaurant the waiter/waitress takes your order and gives it to the kitchen head chef. The head chef then calls out the order and assigns tasks to everyone in the kitchen.
In this analogy:

View File

@@ -1,199 +0,0 @@
HTTP is the internet protocol that standardizes how clients and servers interact with each other. When you open a website, among other things, HTTP is the protocol that helps load the website in the browser.
## HTTP is Stateless
HTTP is a stateless protocol which means that each request made from the client to the server is treated as a standalone request; neither the client nor the server keeps track of the subsequent requests. Sessions allow you to change that; with sessions, the server has a way to associate some information with the client so that when the same client requests the server, it can retrieve that information.
In this guide, we will learn what is Session-Based Authentication and how to implement it in Node.js. We also have a separate [visual guide on Session-Based Authentication](/guides/session-authentication) as well that explains the topic visually.
## What is Session-Based Authentication?
Session-based authentication is a stateful authentication technique where we use sessions to keep track of the authenticated user. Here is how Session Based Authentication works:
* User submits the login request for authentication.
* Server validates the credentials. If the credentials are valid, the server initiates a session and stores some information about the client. This information can be stored in memory, file system, or database. The server also generates a unique identifier that it can later use to retrieve this session information from the storage. Server sends this unique session identifier to the client.
* Client saves the session id in a cookie and this cookie is sent to the server in each request made after the authentication.
* Server, upon receiving a request, checks if the session id is present in the request and uses this session id to get information about the client.
And that is how session-based authentication works.
## Session-Based Authentication in Node.js
Now that we know what session-based authentication is, let's see how we can implement session-based authentication in Node.js.
Please note that, for the sake of simplicity, I have intentionally kept the project strictly relevant to the Session Based Authentication and have left out a lot of details that a production-ready application may require. Also, if you don't want to follow along, project [codebase can be found on GitHub](https://github.com/kamranahmedse/node-session-auth-example).
First things first, create an empty directory that will be holding our application.
```shell
mkdir session-auth-example
```
Now run the following command to setup a sample `package.json` file:
```shell
npm init -y
```
Next, we need to install the dependencies:
```shell
npm install express express-session
```
`Express` is the application framework, and `express-session` is the package that helps work with sessions easily.
### Setting up the server
Now create an `index.js` file at the root of the project with the following content:
```javascript
const express = require('express');
const sessions = require('express-session');
const app = express();
app.use(sessions({
secret: "some secret",
cookie: {
maxAge: 1000 * 60 * 60 * 24 // 24 hours
},
resave: true,
saveUninitialized: false,
}));
app.use(express.json());
app.use(express.urlencoded({extended: true}));
// @todo register routes
app.listen(3000, () => {
console.log(`Server Running at port 3000`);
});
```
The important piece to note here is the `express-session` middleware registration which automatically handles the session initialization, cooking parsing and session data retrieval, and so on. In our example here, we are passing the following configuration options:
* `secret`: This is used to sign the session ID cookie. Using a secret that cannot be guessed will reduce the ability to hijack a session.
* `cookie`: Object containing the configuration for session id cookie.
* `resave`: Forces the session to be saved back to the session store, even if the session data was never modified during the request.
* `saveUninitialized`: Forces an "uninitialized" session to be saved to the store, i.e., saves a session to the store even if the session was not initiated.
Another important option is `store` which we can configure to change how/where the session data is stored on the server. By default, this data is stored in the memory, i.e., `MemoryStore`.
Look at the [express-session documentation](https://github.com/expressjs/session) to learn more about the available options.
### Creating Handlers
Create a directory called the `handlers` at the project's root. This is the directory where we will be placing all the route-handling functions.
Now let's create the homepage route, which will show the welcome message and a link to log out for the logged-in users and redirect to the login screen for the logged-out users. Create a file at `handlers/home.js` with the following content.
```javascript
module.exports = function HomeHandler(req, res) {
if (!req.session.userid) {
return res.redirect('/login');
}
res.setHeader('Content-Type', 'text/HTML')
res.write(`
<h1>Welcome back ${req.session.userid}</h1>
<a href="/logout">Logout</a>
`);
res.end()
}
```
At the top of this function, you will notice the check `req.session.userid`. `req.session` is automatically populated using the session cookie by the `express-session` middleware that we registered earlier. `req.session.userid` is one of the data fields that we will set to store the `userid` of the logged in user.
Next, we need to register this handler with a route. Open the `index.js` file at the root of the project and register the following route:
```javascript
const HomeHandler = require('./handlers/home.js');
app.get('/', HomeHandler);
```
Next, we have the login page, redirecting the user to the home screen if the user is logged in or showing the login form. Create a file at `handlers/login.js` with the following content:
```javascript
module.exports = function LoginHandler(req, res) {
if (req.session.userid) {
return res.redirect('/');
}
res.setHeader('Content-Type', 'text/HTML')
res.write(`
<h1>Login</h1>
<form method="post" action="/process-login">
<input type="text" name="username" placeholder="Username" /> <br>
<input type="password" name="password" placeholder="Password" /> <br>
<button type="submit">Login</button>
</form>
`);
res.end();
}
```
Again, at the top of the function, we are simply checking if we have `userid` in the session (which means the user is logged in). If the user is logged in, we redirect them to the homepage; if not, we show the login screen. In the login form, we have the method of `post`, and we submit the form to `/process-login`. Please note that, for the sake of simplicity, we have a simple HTML string returned in the response, but in a real-world application, you will probably have a separate view file.
Let's first register this page and then implement `/process-login` endpoint. Open the `index.js` file from the root of the project and register the following route:
```javascript
const LoginHandler = require('./handlers/login.js');
app.get('/login', LoginHandler);
```
Next, we have to implement the functionality to process the login form submissions. Create a file at `handlers/process-login.js` with the following content:
```javascript
module.exports = function processLogin(req, res) {
if (req.body.username !== 'admin' || req.body.password !== 'admin') {
return res.send('Invalid username or password);
}
req.session.userid = req.body.username;
res.redirect('/');
}
```
As you can see, we are simply checking that the username and password should both be `admin` and `admin` for a user to authenticate successfully. Upon finding valid credentials, we set the `userid` in the session by updating `req.session.userid`. Similarly, you can set any data in the session. For example, if we wanted to store the user role, we would do the following:
```javascript
req.session.role = 'admin'
```
And later access this value out of the session anywhere in the subsequent requests.
Register this route in the `index.js` file at the root of the project:
```javascript
const ProcessLoginHandler = require('./handlers/process-login.js');
app.post('/process-login', ProcessLoginHandler);
```
Finally, we have the logout functionality. Create a file at `handlers/logout.js` with the following content:
```javascript
module.exports = function Logout(req, res) {
req.session.destroy();
res.redirect('/');
}
```
We reset the session by calling `req.session.destroy()` and then redirecting the user to the homepage. Register the logout handler in the `index.js` file using the following:
```javascript
const LogoutHandler = require('./handlers/logout.js');
app.get('/logout', LogoutHandler);
```
## Running the Application
Open the `package.json` file and register the `start` script as follows:
```javascript
"scripts": {
"start": "node index.js"
},
```
Now you can start the application by running the following command:
```shell
npm run start
```
Now, if you open up your browser and visit the project at `http://localhost:3000` you will be able to see the Session-Based Authentication in action.

View File

@@ -475,7 +475,7 @@ Files, pieces, and piece hashes aren't the full story—we can go further by bre
A peer is supposed to sever the connection if they receive a request for a block larger than 16KB. However, based on my experience, they're often perfectly happy to satisfy requests up to 128KB. I only got moderate gains in overall speed with larger block sizes, so it's probably better to stick with the spec.
#### Pipelining
Network round-trips are expensive, and requesting each block one by one will absolutely thank the performance of our download. Therefore, it's important to **pipeline** our requests such that we keep up a constant pressure of some number of unfulfilled requests. This can increase the throughput of our connection by an order of magnitude.
Network round-trips are expensive, and requesting each block one by one will absolutely tank the performance of our download. Therefore, it's important to **pipeline** our requests such that we keep up a constant pressure of some number of unfulfilled requests. This can increase the throughput of our connection by an order of magnitude.
![Two email threads simulating peer connections. The thread on the left shows a request followed by a reply, repeated three times. The thread on the left sends three requests, and receives three replies in quick succession.](/guides/torrent-client/pipelining.png)

View File

@@ -1,4 +1,4 @@
Since the explosive growth of web-based applications, every developer stands to benefit from understanding how the Internet works. Through this article and its accompanying introductory series of short videos about the Internet from [code.org](https://code.org), you will learn the basics of the Internet and how it works. After going through this article, you will be able to answer the following questions:
Since the explosive growth of web-based applications, every developer could stand to benefit from understanding how the Internet works. In this article, accompanied with an introductory series of short videos about the Internet from [code.org](https://code.org), you will learn the basics of the Internet and how it works. After going through this article, you will be able to answer the below questions:
* What is the Internet?
* How does the information move on the internet?
@@ -19,7 +19,7 @@ In the video below, Vint Cerf, one of the "fathers of the internet," explains th
## Wires, Cables, and Wi-Fi
Information on the Internet moves from one computer to another in the form of bits over various mediums, including Ethernet cables, fiber optic cables, and wireless signals (i.e., radio waves).
Information on the Internet moves from computer to another in the form of bits over various mediums, including Ethernet cables, fiber optic cables, and wireless signals (i.e., radio waves).
In the video linked below, you will learn about the different mediums for data transfer on the Internet and the pros and cons for each.
@@ -49,13 +49,13 @@ HTTP is the standard protocol by which webpages are transferred over the Interne
## Encryption and Public Keys
Cryptography is what keeps our communication secure on the Internet. In this short video, you will learn the basics of cryptography, SSL/TLS, and how they help make the communication on the Internet secure.
Cryptography is what keeps our communication secure on the Internet. In this short video, you will learn the basics of cryptograpy, SSL/TLS, and how they help make the communication on the Internet secure.
<iframe width="100%" height="400" src="https://www.youtube.com/embed/ZghMPWGXexs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## Cybersecurity and Crime
Cybersecurity refers to the protective measures against criminal activity accomplished through using a network, technological devices, and the internet.In this video, you will learn about the basics of cybersecurity and common cybercrimes.
In this video, you will learn about the basics of cybersecurity and common cybercrimes
<iframe width="100%" height="400" src="https://www.youtube.com/embed/AuYNXgO_f3Y" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

View File

@@ -1,30 +1,30 @@
We all have heard the mantra *"build it and they will come"* many times. Stories of people building a startup or project and seemingly stumbling upon a goldmine aren't few, but they aren't the rule. These stories are still the exception in the mass of launched projects and startups.
Before the [Wright brothers](https://en.wikipedia.org/wiki/Wright_brothers) built their Kitty Hawk, people generally believed heavy objects could not fly - physics simply forbade it. The idea of regularly boarding airplanes as we do it these days was unthinkable. It was considered an unrealistic daydream for humans to ever claim the sky. When the first airplanes took off, people were fascinated, of course. It was a topic people continued to talk about for ages. Technology had made something impossible possible. While the wording "build it and they will come" originated from the movie [Field of Dreams](https://en.wikipedia.org/wiki/Field_of_Dreams), this and similar historic events gave birth to the idea behind it.
Before the [Wright brothers](https://en.wikipedia.org/wiki/Wright_brothers) built their Kitty Hawk, people generally believed heavy objects could not fly - physics simply forbade it. The idea to regularly board airplanes as we do it these days was unthinkable. It was considered an unrealistic daydream for humans to ever claim the sky. When the first airplanes took off, people were fascinated, of course. It was a topic people continued to talk about for ages. Technology had made something impossible possible. While the wording "build it and they will come" originated from the movie [Field of Dreams](https://en.wikipedia.org/wiki/Field_of_Dreams), this and similar historic events gave birth to the idea behind it.
The engineers' and inventors' dreams came true: spend time doing what you love while success follows magically. The internet and web-standards democratized access to this dream. But with it, the idea behind it faded and became less and less powerful. In 2020, there are very strong signs the popular saying isn't correct anymore.
The engineers' and inventors' dreams came true: spend time doing what you love while the success follows magically. The internet and web-standards democratized access to this dream. But with it, the idea behind it faded and became less and less powerful. In 2020, there are very strong signs the popular saying isn't correct anymore.
Why doesn't "build it and they will come" work anymore?
-------------------------------------------------------
There are a few reasons for working hard to make "build it and they will come" a thing of the past. This being said, it doesn't mean you can't succeed in building a side-project anymore. You've just got to adjust the way you are building it.
There are a few reasons working hard to make "build it and they will come" a thing of the past. This being said, it doesn't mean you can't succeed building a side-project anymore. You've just got to adjust the way you are building it.
### Building got much easier
As a software engineer, some websites are a blessing. Most of us couldn't work without GitHub, Stackoverflow and of course Google, ahem, DuckDuckGo. These powerful sites help us to solve problems, learn new techniques and find the right libraries to make building projects easier. If any of these sites are down, most engineers take a break and go for a coffee instead of trying to continue working. Combine this with more sophisticated web-standards and easier access to tooling, and you arrive at a world where building projects isn't just a job for highly specialist developers anymore. Powerful frameworks such as [Laravel](https://laravel.com/) and [Quasar Framework](https://quasar.dev/) are available for anyone to build projects on - for free.
In fact, building projects got to a point where some people simply build them as an exercise or hobby. If you spend some time browsing GitHub you will be surprised by the open source projects people built without any commercial goals. "Low code" and "No code" are the next wave of people building projects with a less technological background.
In fact, building projects got to a point where some people simply build them as an exercise or hobby. If you spend some time browsing GitHub you will be surprised by the open source projects people built without any commercial goals. "Low code" and "No code" are the next wave of people building projects with less technological background.
### Too much going on: information overload
We are living in a world with information overload. In the online sphere, you can find a lot of useful information. But there is also a lot of noise. For each piece of information or advice, you can find a number of opposing statements. This is partly due to the fact that the internet made it much easier to publish and share information. Everyone has been given a voice - for good or bad. This makes it much harder to reach potential users. Your new project probably just drowns amongst kitten videos, opinions, and news. Never has the average lifetime of published content been so low. You've got to come up with a marketing plan before setting out on the journey.
We are living in a world with information overload. In the online sphere, you can find a lot of useful information. But there is also a lot of noise. For each piece of information or advice you can find a number of opposing statements. This is partly due to the fact that the internet made it much easier to publish and share information. Everyone has been given a voice - for good or bad. This makes it much harder to reach potential users. Your new project probably just drowns amongst kitten videos, opinions, and news. Never has the average lifetime of published content been so low. You've got to come up with a marketing plan before setting out on the journey.
### Smaller Problems
Besides building is easier than ever before and attention is in short supply, there is another issue making the life of makers, inventors, and engineers harder: today's problems are much smaller. Back when the previously mentioned Wright Brothers set out, they fascinated people with the problem they were aiming to address: flying. Unless your name is Elon, your problem is unlikely to attract many people naturally. As a solo developer or indie hacker, the chances are higher of having a much smaller problem in a niche (of a niche). With the information overload mentioned before, niches are pretty much the only way to build a side-project or startup and succeed.
Besides building being easier than ever before and attention being in short supply, there is another issue making the life of makers, inventors and engineers harder: today's problems are much smaller. Back when the previously mentioned Wright Brothers set out, they fascinated people with the problem they were aiming to address: flying. Unless your name is Elon, your problem is unlikely to attract many people naturally. As a solo developer or indie hacker, the chances are higher for having a much smaller problem in a niche (of a niche). With the information overload mentioned before, niches are pretty much the only way to build a side-project or startup and succeed.
Does sound pretty grim for inventors, developers, and engineers? Well, yes and no. We've got to tweak the approach to get in front of the eye of potential users and customers.
Does sound pretty grim for inventors, developers and engineers? Well, yes and no. We've got to tweak the approach to get in front of the eye of potential users and customers.
How to market your project nowadays?
@@ -34,27 +34,27 @@ The very first step to improving the odds of success is [idea validation](https:
### Build your Audience first and the project after.
Build your audience before you build your project. Spend your time connecting with potential users, learning from their needs, and talking about their problems. This will help you market your project later on. The audience first, projects second. There are numerous ways to build an audience. One of the simplest and easiest is to start with a personal or [project blog](https://startupnamecheck.com/blog/how-to-start-a-small-business-blog).
Build your audience before you build your project. Spend your time connecting with potential users, learn from their needs and talk about their problems. This will help you market your project later on. Audience first, project second. There are numerous ways to build an audience. One of the simplest and easiest is to start with a personal or [project blog](https://startupnamecheck.com/blog/how-to-start-a-small-business-blog).
Don't use Medium or a similar service - opt for a self-hosted blog as it allows you to build the blog freely to your needs and have decent links back to your project later on. Don't forget to add a newsletter. Newsletters are a key to reconnecting in our world of short attention spans.
Don't use Medium or a similar service - opt for a self-hosted blog as it allows you to build the blog freely to your needs and have decent links back to your project later on. Don't forget to add a newsletter. Newsletters are a key to reconnect in our world of short attention spans.
### Tool by Tool
Another approach is the "Tool by Tool" approach. I first noticed this approach being used by Shopify. The team at Shopify is providing little tools such as a [logo generator](https://hatchful.shopify.com/) and releasing these tools free for anyone to use. This not just builds goodwill with people; it also allows Shopify to attract powerful backlinks to their projects. As developers, we are in the perfect position to build such mini-tools. It boosts morale and drives attention at the same time.
Another approach is the "Tool by Tool" approach. I've first noticed this approach being used by Shopify. The team at Shopify are providing little tools such as a [logo generator](https://hatchful.shopify.com/) and release these tools free for anyone to use. This not just builds goodwill with people; it also allows Shopify to attract powerful backlinks to their projects. As developers we are in the perfect position to build such mini-tools. It boosts morale and drives attention at the same time.
Spend some time evaluating where your project or product will deliver value to the end-user. Look at options to split off small, independent tools. Build these and launch them before launching the whole product. This allows you to practice launching and promoting your part-projects at the same time. With each backlink to your part-projects, you will enhance your ranking in Google. An example of a maker following this approach is [Kamban](https://kambanthemaker.com/) with [FlatGA](https://flatga.io/). He built FlatGA as phase one of a bigger project currently in development.
Spend some time evaluating where your project or product will deliver value to the end-user. Look at options to split off small, independent tools. Build these and launch them before launching the whole product. This allows you to practice launching and promoting your part-projects at the same time. With each backlink to your part-projects you will enhance your ranking in Google. An example for a maker following this approach is [Kamban](https://kambanthemaker.com/) with [FlatGA](https://flatga.io/). He built FlatGA as phase one of a bigger project currently in development.
### Join a Maker community
While you are building your part-projects, don't forget to discuss the progress publicly. This helps to attract an audience around your work and makes the launches easier. You can use Twitter threads and Reddit posts to share updates. A maker community such as [makerlog](https://getmakerlog.com/) or [WIP.chat](https://wip.chat) can also extend your reach. These allow you to get instant feedback, and keep yourself accountable and they will enhance your reach at the same time.
While you are building your part-projects, don't forget to discuss the progress publicly. This helps to attract an audience around your work and makes the launches easier. You can use Twitter threads and Reddit posts to share updates. A maker community such as [makerlog](https://getmakerlog.com/) or [WIP.chat](https://wip.chat) can also extend your reach. These allow you to get instant feedback, keep yourself accountable and they will enhance your reach at the same time.
### Getting ready to Launch
Launching seems like this special moment when you release your project into the wide world. Often this moment is combined with high expectations and developers consider launching their project the key - if not only - part of their approach to marketing. While launching can help to attract some initial customers, it shouldn't be your only idea when it comes to marketing. You should also know that launching isn't a single event. You can (and should) launch again and again. Every time you launch you are increasing the chance to reach more new customers. After the launch is before the launch.
Launching seems like this special moment when you release your project into the wide world. Often this moment is combined with high expectations and developers consider launching their project the key - if not only - part of their approach to marketing. While launching can help to attract some initial customers, it shouldn't be your only idea when it comes to marketing. You should also know that launching isn't a single event. You can (and should) launch again and again. Every time you launch you are increasing the chance to reach more and new customers. After the launch is before the launch.
### Marketing Is an On-going Fight
Many developers plan to launch their product on a few sites and see where it takes their project from there on. This works well if your product goes viral by luck. A much more sustainable approach is constantly working a little on it. Marketing is most effective if done consistently. That holds true for blogging as well as most other forms of marketing. A simple approach to keep you on the path to marketing your project regularly is subscribing to a free [newsletter with small marketing opportunities](https://wheretopost.email). This way, you are regularly reminded and given bite-sized tasks to complete.
Many developers plan to launch their product on a few sites and see where it takes their project from there on. This works well, if your product goes viral by luck. A much more sustainable approach is constantly working a little on it. Marketing is most effective, if done consistently. That holds true for blogging as well as most other forms of marketing. A simple approach to keep you on the path to market your project regularly is subscribing to a free [newsletter with small marketing opportunities](https://wheretopost.email). This way, you are regularly reminded and given bite-sized tasks to complete.
Closing Words
@@ -66,4 +66,4 @@ I hope the article helped you to wrap your head around the idea that building si
About the author
----------------
[Peter Thaleikis](https://peterthaleikis.com/) a software engineer and business owner. He has been developing web applications since around 2000. Before he started his own software development company [Bring Your Own Ideas Ltd.](https://bringyourownideas.com/), he has been a Lead Developer for multiple organizations.
[Peter Thaleikis](https://peterthaleikis.com/) a software engineer and business owner. He has been developing web applications since around 2000. Before he started his own software development company [Bring Your Own Ideas Ltd.](https://bringyourownideas.com/), he has been Lead Developer for multiple organisations.

View File

@@ -29,7 +29,7 @@ any intentions of monetization but as a good will, to help the people get out of
Having said that, I love teaching and my future plans are to be able to work full-time on roadmap.sh for which it has to
make enough money to pay for my rent, groceries, bills, travel expenses, etc but even if it doesn't it's likely I'll
continue growing the site however I can. My focus at the moment is not making money from it and just adding content that
continue growing the site however I can. My focus at the moment is not making money from it and just add content that
creates value for the people.
> Sponsor the efforts by [paying as little as 5$ per month](https://github.com/sponsors/kamranahmedse) or with [one time payment via paypal](https://paypal.me/kamranahmedse). Alternatively, reach out to me at [kamranahmed.se@gmail.com](mailto:kamranahmed.se@gmail.com).
@@ -51,7 +51,7 @@ be:
* Becoming a sponsor
Just make sure
to [follow the contribution guidelines](https://github.com/kamranahmedse/developer-roadmap/tree/master/contributing.md) when you
to [follow the contribution guidelines](https://github.com/kamranahmedse/developer-roadmap/tree/master/contributing) when you
decide to contribute.
## Can I redistribute the content?

View File

@@ -1,27 +0,0 @@
<br />
<br />
# Download Roadmap PDFs
Here is the list of PDF links for each of the roadmaps.
* **Frontend Roadmap** - [Roadmap Link](https://roadmap.sh/frontend) / [PDF Link](https://roadmap.sh/pdfs/frontend.pdf)
* **Backend Roadmap** - [Roadmap Link](https://roadmap.sh/backend) / [PDF Link](https://roadmap.sh/pdfs/backend.pdf)
* **DevOps Roadmap** - [Roadmap Link](https://roadmap.sh/devops) / [PDF Link](https://roadmap.sh/pdfs/devops.pdf)
* **Computer Science Roadmap** - [Roadmap Link](https://roadmap.sh/computer-science) / [PDF Link](https://roadmap.sh/pdfs/computer-science.pdf)
* **QA Roadmap** - [Roadmap Link](https://roadmap.sh/qa) / [PDF Link](https://roadmap.sh/pdfs/qa.pdf)
* **ASP.NET Core Roadmap** - [Roadmap Link](https://roadmap.sh/aspnet-core) / [PDF Link](https://roadmap.sh/pdfs/aspnet-core.pdf)
* **Flutter Roadmap** - [Roadmap Link](https://roadmap.sh/flutter) / [PDF Link](https://roadmap.sh/pdfs/flutter.pdf)
* **Software Architect Roadmap** - [Roadmap Link](https://roadmap.sh/software-architect) / [PDF Link](https://roadmap.sh/pdfs/software-architect.pdf)
* **Software Design and Architecture Roadmap** - [Roadmap Link](https://roadmap.sh/software-design-architecture) / [PDF Link](https://roadmap.sh/pdfs/software-design-architecture.pdf)
* **JavaScript Roadmap** - [Roadmap Link](https://roadmap.sh/javascript) / [PDF Link](https://roadmap.sh/pdfs/javascript.pdf)
* **Node.js Roadmap** - [Roadmap Link](https://roadmap.sh/nodejs) / [PDF Link](https://roadmap.sh/pdfs/nodejs.pdf)
* **GraphQL Roadmap** - [Roadmap Link](https://roadmap.sh/graphql) / [PDF Link](https://roadmap.sh/pdfs/graphql.pdf)
* **Angular Roadmap** - [Roadmap Link](https://roadmap.sh/angular) / [PDF Link](https://roadmap.sh/pdfs/angular.pdf)
* **React Roadmap** - [Roadmap Link](https://roadmap.sh/react) / [PDF Link](https://roadmap.sh/pdfs/react.pdf)
* **Vue Roadmap** - [Roadmap Link](https://roadmap.sh/vue) / [PDF Link](https://roadmap.sh/pdfs/vue.pdf)
* **Design System Roadmap** - [Roadmap Link](https://roadmap.sh/design-system) / [PDF Link](https://roadmap.sh/pdfs/design-system.pdf)
* **Blockchain Roadmap** - [Roadmap Link](https://roadmap.sh/blockchain) / [PDF Link](https://roadmap.sh/pdfs/blockchain.pdf)
* **Go Roadmap** - [Roadmap Link](https://roadmap.sh/golang) / [PDF Link](https://roadmap.sh/pdfs/go.pdf)
* **Java Roadmap** - [Roadmap Link](https://roadmap.sh/java) / [PDF Link](https://roadmap.sh/pdfs/java.pdf)
* **Python Roadmap** - [Roadmap Link](https://roadmap.sh/python) / [PDF Link](https://roadmap.sh/pdfs/python.pdf)

View File

@@ -46,14 +46,6 @@
"resourcesPath": "/roadmaps/100-frontend/resources.md",
"pdfUrl": "/pdfs/frontend.pdf",
"contentPathsFilePath": "/roadmaps/100-frontend/content-paths.json",
"relatedRoadmaps": [
"javascript",
"nodejs",
"react",
"angular",
"vue",
"design-system"
],
"id": "frontend",
"metaPath": "/roadmaps/100-frontend/meta.json",
"isUpcoming": false
@@ -104,15 +96,6 @@
},
"pdfUrl": "/pdfs/backend.pdf",
"contentPathsFilePath": "/roadmaps/101-backend/content-paths.json",
"relatedRoadmaps": [
"python",
"java",
"golang",
"devops",
"javascript",
"nodejs",
"postgresql-dba"
],
"id": "backend",
"metaPath": "/roadmaps/101-backend/meta.json",
"isUpcoming": false
@@ -125,7 +108,7 @@
"devops roadmap 2022",
"sre roadmap 2022",
"operations roadmap 2022",
"guide to becoming a devops engineer",
"guide to becoming a devops enginer",
"devops roadmap",
"sre roadmap",
"site reliability engineer roadmap",
@@ -162,67 +145,10 @@
},
"pdfUrl": "/pdfs/devops.pdf",
"contentPathsFilePath": "/roadmaps/102-devops/content-paths.json",
"relatedRoadmaps": [
"backend",
"python",
"java",
"golang",
"javascript",
"nodejs"
],
"id": "devops",
"metaPath": "/roadmaps/102-devops/meta.json",
"isUpcoming": false
},
{
"seo": {
"title": "Computer Science Roadmap: Curriculum for the self taught developer",
"description": "Computer Science study plan with free resources for the self-taught and bootcamp grads wanting to learn Computer Science.",
"keywords": [
"computer science roadmap",
"computer science",
"computer science roadmap 2022",
"guide to computer science",
"software engineer roadmap",
"software engineer roadmap 2022",
"self-taught computer science roadmap",
"computer science skills",
"computer science skills test",
"cs roadmap",
"computer science curriculum",
"cs curriculum",
"skills for computer science",
"what is computer science",
"computer science quiz",
"computer science interview questions"
]
},
"title": "Computer Science",
"description": "Computer Science curriculum with free resources for a self-taught developer.",
"featuredTitle": "Computer Science",
"type": "tool",
"featuredDescription": "Curriculum with free resources for a self-taught developer.",
"isTextHeavy": false,
"isNew": true,
"isCommunity": false,
"featured": true,
"jsonUrl": "/project/computer-science.json",
"author": {
"name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse"
},
"pdfUrl": "/pdfs/computer-science.pdf",
"relatedRoadmaps": [
"frontend",
"backend",
"devops",
"software-design-architecture"
],
"contentPathsFilePath": "/roadmaps/103-computer-science/content-paths.json",
"id": "computer-science",
"metaPath": "/roadmaps/103-computer-science/meta.json",
"isUpcoming": false
},
{
"seo": {
"title": "React Developer Roadmap: Learn to become a React developer",
@@ -264,14 +190,6 @@
},
"pdfUrl": "/pdfs/react.pdf",
"contentPathsFilePath": "/roadmaps/103-react/content-paths.json",
"relatedRoadmaps": [
"frontend",
"javascript",
"angular",
"vue",
"nodejs",
"design-system"
],
"id": "react",
"metaPath": "/roadmaps/103-react/meta.json",
"isUpcoming": false
@@ -303,6 +221,8 @@
"isCommunity": false,
"featured": true,
"jsonUrl": "/project/angular.json",
"landingPath": "/roadmaps/104-angular/landscape.md",
"resourcesPath": "/roadmaps/104-angular/resources.md",
"versions": [
"latest",
"2018",
@@ -313,14 +233,6 @@
"url": "https://twitter.com/kamranahmedse"
},
"pdfUrl": "/pdfs/angular.pdf",
"relatedRoadmaps": [
"frontend",
"javascript",
"react",
"vue",
"nodejs"
],
"contentPathsFilePath": "/roadmaps/104-angular/content-paths.json",
"id": "angular",
"metaPath": "/roadmaps/104-angular/meta.json",
"isUpcoming": false
@@ -361,7 +273,6 @@
"featuredDescription": "Step by step guide to become a Vue Developer in 2022",
"isTextHeavy": false,
"isCommunity": false,
"isNew": true,
"featured": true,
"jsonUrl": "/project/vue.json",
"resourcesPath": "/roadmaps/105-vue/resources.md",
@@ -376,13 +287,6 @@
},
"pdfUrl": "/pdfs/vue.pdf",
"contentPathsFilePath": "/roadmaps/105-vue/content-paths.json",
"relatedRoadmaps": [
"frontend",
"javascript",
"react",
"angular",
"nodejs"
],
"id": "vue",
"metaPath": "/roadmaps/105-vue/meta.json",
"isUpcoming": false
@@ -417,7 +321,6 @@
"featuredDescription": "Step by step guide to learn JavaScript in 2022",
"isTextHeavy": false,
"isCommunity": false,
"isNew": true,
"featured": true,
"jsonUrl": "/project/javascript.json",
"versions": [
@@ -431,15 +334,6 @@
},
"pdfUrl": "/pdfs/javascript.pdf",
"contentPathsFilePath": "/roadmaps/106-javascript/content-paths.json",
"relatedRoadmaps": [
"frontend",
"backend",
"javascript",
"react",
"angular",
"vue",
"nodejs"
],
"id": "javascript",
"metaPath": "/roadmaps/106-javascript/meta.json",
"isUpcoming": false
@@ -482,96 +376,10 @@
"name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse"
},
"relatedRoadmaps": [
"frontend",
"javascript",
"react",
"nodejs"
],
"id": "android",
"metaPath": "/roadmaps/107-android/meta.json",
"isUpcoming": false
},
{
"seo": {
"title": "Node.js Developer Roadmap: Learn to become a modern node.js developer",
"description": "Learn to become a modern node.js developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern node.js development.",
"keywords": [
"node.js roadmap 2022",
"nodejs roadmap 2022",
"node.js roadmap 2022",
"nodejs roadmap 2022",
"node.js developer roadmap 2022",
"nodejs developer roadmap 2022",
"guide to becoming a developer",
"guide to becoming a node.js developer",
"guid to becoming a node.js developer",
"node.js developer",
"nodejs developer",
"node.js engineer",
"nodejs engineer",
"node.js skills",
"nodejs skills",
"node.js development",
"nodejs development",
"node.js developer",
"nodejs developer",
"node.js development skills",
"nodejs development skills",
"node.js development skills test",
"nodejs development skills test",
"node.js roadmap",
"nodejs roadmap",
"node.js engineer roadmap",
"nodejs engineer roadmap",
"node.js developer roadmap",
"nodejs developer roadmap",
"become a node.js developer",
"become a node.js developer",
"node.js developer career path",
"nodejs developer career path",
"node.js developer",
"nodejs developer",
"modern node.js developer",
"modern node.js developer",
"node developer",
"skills for node.js development",
"skills for nodejs development",
"learn node.js development",
"lear node.js development",
"node.js developer quiz",
"nodejs developer quiz",
"node.js developer interview questions",
"nodejs developer interview questions"
]
},
"title": "Node.js Developer",
"description": "Step by step guide to becoming a modern Node.js developer in 2022",
"featuredTitle": "Node.js",
"featuredDescription": "Step by step guide to becoming a Node.js developer in 2022",
"type": "tool",
"isNew": true,
"author": {
"name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse"
},
"featured": true,
"imageUrl": "/roadmaps/nodejs.png",
"jsonUrl": "/project/nodejs.json",
"pdfUrl": "/pdfs/nodejs.pdf",
"contentPathsFilePath": "/roadmaps/107-nodejs/content-paths.json",
"relatedRoadmaps": [
"frontend",
"backend",
"javascript",
"react",
"angular",
"vue"
],
"id": "nodejs",
"metaPath": "/roadmaps/107-nodejs/meta.json",
"isUpcoming": false
},
{
"seo": {
"title": "Learn to become a modern Python developer",
@@ -609,14 +417,6 @@
"url": "https://twitter.com/kamranahmedse"
},
"contentPathsFilePath": "/roadmaps/108-python/content-paths.json",
"relatedRoadmaps": [
"backend",
"devops",
"golang",
"java",
"javascript",
"nodejs"
],
"id": "python",
"metaPath": "/roadmaps/108-python/meta.json",
"isUpcoming": false
@@ -624,7 +424,7 @@
{
"seo": {
"title": "Learn to become a Go developer",
"description": "Community driven, articles, resources, guides, interview questions, quizzes for Go development. Learn to become a modern Go developer by following the steps, skills, resources and guides listed in this roadmap.",
"description": "Community driven, articles, resources, guides, interview questions, quizzes for Go development. Learn to become a modern React developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords": [
"guide to becoming a golang developer",
"guide to becoming a go developer",
@@ -671,14 +471,6 @@
"url": "https://twitter.com/kamranahmedse"
},
"contentPathsFilePath": "/roadmaps/109-golang/content-paths.json",
"relatedRoadmaps": [
"backend",
"devops",
"python",
"java",
"javascript",
"nodejs"
],
"id": "golang",
"metaPath": "/roadmaps/109-golang/meta.json"
},
@@ -731,71 +523,9 @@
},
"pdfUrl": "/pdfs/java.pdf",
"contentPathsFilePath": "/roadmaps/110-java/content-paths.json",
"relatedRoadmaps": [
"backend",
"devops",
"python",
"golang",
"javascript",
"nodejs"
],
"id": "java",
"metaPath": "/roadmaps/110-java/meta.json"
},
{
"seo": {
"title": "How to Create a Design System",
"description": "Learn how to create a design system or become a design system engineer with this step by step guide with resources.",
"keywords": [
"guide to create a design system",
"guide to becoming a design system engineer",
"design system engineer",
"design system engineer",
"design system skills",
"guide to design system",
"design system roadmap",
"design system skills",
"design system skills test",
"skills for design system",
"what is design system",
"design system quiz",
"design system interview questions",
"design system engineer roadmap",
"design system engineer roadmap",
"become a design system engineer",
"design system engineer career path",
"design system engineer",
"modern design system engineer"
]
},
"title": "Design System",
"description": "Learn how to create a design system with this step by step guide",
"featuredTitle": "Design System",
"type": "tool",
"featuredDescription": "Step by step guide to building a modern Design System",
"isTextHeavy": false,
"isCommunity": false,
"isNew": true,
"isUpcoming": false,
"featured": true,
"jsonUrl": "/project/design-system.json",
"author": {
"name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse"
},
"pdfUrl": "/pdfs/design-system.pdf",
"contentPathsFilePath": "/roadmaps/111-design-system/content-paths.json",
"relatedRoadmaps": [
"frontend",
"javascript",
"react",
"vue",
"angular",
"nodejs"
],
"id": "design-system",
"metaPath": "/roadmaps/111-design-system/meta.json"
},
{
"seo": {
"title": "DBA Roadmap: Learn to become a database administrator with PostgreSQL",
@@ -837,10 +567,6 @@
"featured": true,
"detailed": false,
"versions": [],
"relatedRoadmaps": [
"backend",
"devops"
],
"id": "postgresql-dba",
"metaPath": "/roadmaps/111-postgresql-dba/meta.json",
"isUpcoming": false
@@ -885,7 +611,6 @@
"featuredDescription": "Step by step guide to becoming a blockchain developer in 2022",
"featured": true,
"type": "role",
"isNew": true,
"imageUrl": "/roadmaps/blockchain.png",
"jsonUrl": "/project/blockchain.json",
"author": {
@@ -894,15 +619,6 @@
},
"pdfUrl": "/pdfs/blockchain.pdf",
"contentPathsFilePath": "/roadmaps/112-blockchain/content-paths.json",
"relatedRoadmaps": [
"frontend",
"backend",
"javascript",
"nodejs",
"react",
"vue",
"angular"
],
"id": "blockchain",
"metaPath": "/roadmaps/112-blockchain/meta.json",
"isUpcoming": false
@@ -931,288 +647,14 @@
"featuredTitle": "QA",
"type": "role",
"featuredDescription": "Step by step guide to becoming a modern QA Engineer in 2022",
"isUpcoming": true,
"featured": true,
"isNew": true,
"resourcesPath": "/roadmaps/113-qa/resources.md",
"imageUrl": "/roadmaps/qa.png",
"jsonUrl": "/project/qa.json",
"pdfUrl": "/pdfs/qa.pdf",
"author": {
"name": "Anas Fitiani",
"url": "https://github.com/anas-qa"
},
"contentPathsFilePath": "/roadmaps/113-qa/content-paths.json",
"relatedRoadmaps": [
"frontend",
"backend",
"devops",
"javascript",
"nodejs"
],
"id": "qa",
"metaPath": "/roadmaps/113-qa/meta.json",
"isUpcoming": false
},
{
"seo": {
"title": "Software Architect Roadmap: Learn to become a modern Software Architect",
"description": "Community driven, articles, resources, guides, interview questions, quizzes for DevOps. Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords": [
"solution architect roadmap",
"enterprise architect roadmap",
"guide to becoming a software architect",
"guide to becoming a Software Architect",
"software architect roadmap",
"db administrator roadmap",
"software architect roadmap",
"software architect skills",
"db administrator skills",
"become software architect",
"modern software architect skills",
"software architect skills test",
"skills for software architect",
"skills for software architect",
"learn software architect",
"what is software architect",
"software architect quiz",
"software architect interview questions"
]
},
"title": "Software Architect",
"description": "Step by step guide to becoming a Software Architect in 2022",
"featuredTitle": "Software Architect",
"isNew": true,
"type": "role",
"jsonUrl": "/project/software-architect.json",
"featuredDescription": "Step by step guide to become a Software Architect in 2022",
"isCommunity": false,
"featured": true,
"detailed": false,
"versions": [],
"relatedRoadmaps": [
"backend",
"software-design-architecture",
"python",
"python",
"nodejs",
"golang",
"java",
"devops"
],
"contentPathsFilePath": "/roadmaps/114-software-architect/content-paths.json",
"id": "software-architect",
"metaPath": "/roadmaps/114-software-architect/meta.json",
"isUpcoming": false
},
{
"seo": {
"title": "Software Design and Architecture Roadmap",
"description": "Learn software design and architecture with this step by step guide and resources.",
"keywords": [
"guide to learn software design and architecture",
"software design roadmap",
"software architecture roadmap",
"software design and architecture roadmap",
"modern software design and architecture roadmap",
"fullstack software design and architecture roadmap",
"design and architecture roadmap",
"scalable design roadmap",
"software design patterns roadmap",
"software architecture patterns roadmap",
"design architecture patterns roadmap",
"application architectures",
"software architecture guide"
]
},
"title": "Software Design and Architecture",
"description": "Step by step guide to learn software design and architecture",
"featuredTitle": "Software Design and Architecture",
"type": "tool",
"featuredDescription": "Guide to learn software design and architecture",
"isTextHeavy": false,
"isCommunity": false,
"isNew": true,
"isUpcoming": false,
"featured": true,
"jsonUrl": "/project/software-design-architecture.json",
"author": {
"name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse"
},
"pdfUrl": "/pdfs/software-design-architecture.pdf",
"relatedRoadmaps": [
"backend",
"software-architect",
"devops",
"python",
"java",
"nodejs",
"golang"
],
"id": "software-design-architecture",
"metaPath": "/roadmaps/115-software-design-architecture/meta.json"
},
{
"seo": {
"title": "Learn to become a modern ASP.NET core developer",
"description": "Community driven, articles, resources, guides, interview questions, quizzes for asp.net core development. Learn to become a modern ASP.NET core developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords": [
"guide to becoming a developer",
"guide to becoming an asp.net core developer",
"asp.net core developer",
"asp.net core engineer",
"asp.net core skills",
"guide to asp.net core",
"asp.net developer roadmap",
"asp net developer roadmap",
"asp developer roadmap",
"asp.net core roadmap",
"asp.net core skills",
"asp.net core skills test",
"skills for asp.net core",
"cloud development",
"what is asp.net core",
"asp.net core quiz",
"asp.net core interview questions",
"asp.net core engineer roadmap",
"asp.net core developer roadmap",
"become an asp.net core developer",
"asp.net core developer career path",
"asp.net core developer",
"modern asp.net core developer"
]
},
"title": "ASP.NET Core Developer",
"description": "Step by step guide to becoming an ASP.NET core developer in 2022",
"featuredTitle": "ASP.NET Core",
"type": "role",
"featuredDescription": "Step by step guide to becoming an ASP.NET Core Developer in 2022",
"isTextHeavy": false,
"isCommunity": false,
"isUpcoming": false,
"featured": true,
"isNew": true,
"jsonUrl": "/project/aspnet-core.json",
"versions": [
"latest",
"2018",
"2017"
],
"author": {
"name": "Moien Tajik",
"url": "https://twitter.com/MoienTajik"
},
"pdfUrl": "/pdfs/aspnet-core.pdf",
"relatedRoadmaps": [
"backend",
"devops",
"python",
"golang",
"java",
"nodejs"
],
"contentPathsFilePath": "/roadmaps/116-aspnet-core/content-paths.json",
"id": "aspnet-core",
"metaPath": "/roadmaps/116-aspnet-core/meta.json"
},
{
"seo": {
"title": "GraphQL Roadmap",
"description": "Learn GraphQL with this step by step guide and resources.",
"keywords": [
"guide to learn graphql",
"graphql roadmap",
"graphql roadmap",
"modern graphql roadmap",
"fullstack graphql roadmap",
"design and architecture roadmap",
"scalable design roadmap",
"design architecture patterns roadmap",
"application architectures"
]
},
"title": "GraphQL",
"description": "Step by step guide to learn GraphQL in 2022",
"featuredTitle": "GraphQL",
"type": "tool",
"featuredDescription": "Step by Step guide to learn GraphQL in 2022",
"isTextHeavy": false,
"isCommunity": false,
"isNew": true,
"isUpcoming": false,
"featured": true,
"jsonUrl": "/project/graphql.json",
"author": {
"name": "Denis Badurina",
"url": "https://twitter.com/enisdenjo"
},
"pdfUrl": "/pdfs/graphql.pdf",
"relatedRoadmaps": [
"frontend",
"backend",
"nodejs",
"javascript",
"react",
"vue",
"angular"
],
"contentPathsFilePath": "/roadmaps/116-graphql/content-paths.json",
"id": "graphql",
"metaPath": "/roadmaps/116-graphql/meta.json"
},
{
"seo": {
"title": "Learn to become a modern Flutter developer",
"description": "Community driven, articles, resources, guides, interview questions, quizzes for flutter development. Learn to become a modern Flutter developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords": [
"guide to becoming a flutter developer",
"guide to becoming a flutter developer",
"flutter developer",
"flutter engineer",
"flutter skills",
"guide to flutter",
"flutter roadmap",
"flutter skills",
"flutter skills test",
"skills for flutter",
"what is flutter",
"flutter quiz",
"flutter interview questions",
"flutter engineer roadmap",
"flutter developer roadmap",
"become a flutter developer",
"flutter developer career path",
"flutter developer",
"modern flutter developer"
]
},
"title": "Flutter Developer",
"description": "Step by step guide to becoming a Flutter developer in 2022",
"featuredTitle": "Flutter",
"type": "role",
"featuredDescription": "Step by step guide to becoming a Flutter Developer in 2022",
"isTextHeavy": false,
"isCommunity": false,
"isUpcoming": false,
"featured": true,
"isNew": true,
"jsonUrl": "/project/flutter.json",
"versions": [
"latest",
"2018",
"2017"
],
"pdfUrl": "/pdfs/flutter.pdf",
"relatedRoadmaps": [
"backend",
"devops",
"python",
"golang",
"java",
"nodejs"
],
"contentPathsFilePath": "/roadmaps/117-flutter/content-paths.json",
"id": "flutter",
"metaPath": "/roadmaps/117-flutter/meta.json"
"metaPath": "/roadmaps/113-qa/meta.json"
}
]

View File

@@ -38,7 +38,6 @@
"package-managers": "/roadmaps/100-frontend/content/107-package-managers/readme.md",
"package-managers:npm": "/roadmaps/100-frontend/content/107-package-managers/100-npm.md",
"package-managers:yarn": "/roadmaps/100-frontend/content/107-package-managers/101-yarn.md",
"package-managers:pnpm": "/roadmaps/100-frontend/content/107-package-managers/102-pnpm.md",
"css-architecture": "/roadmaps/100-frontend/content/108-css-architecture/readme.md",
"css-architecture:bem": "/roadmaps/100-frontend/content/108-css-architecture/100-bem.md",
"css-architecture:oocss": "/roadmaps/100-frontend/content/108-css-architecture/101-oocss.md",
@@ -62,8 +61,6 @@
"build-tools:module-bundlers:vite": "/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md",
"pick-a-framework": "/roadmaps/100-frontend/content/111-pick-a-framework/readme.md",
"pick-a-framework:react-js": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md",
"pick-a-framework:svelte": "/roadmaps/100-frontend/content/111-pick-a-framework/103-svelte.md",
"pick-a-framework:solid-js": "/roadmaps/100-frontend/content/111-pick-a-framework/104-solid-js.md",
"pick-a-framework:react-js:recoil": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md",
"pick-a-framework:react-js:redux": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md",
"pick-a-framework:react-js:mobx": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md",
@@ -84,66 +81,47 @@
"css-frameworks": "/roadmaps/100-frontend/content/114-css-frameworks/readme.md",
"css-frameworks:js-first": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md",
"css-frameworks:js-first:chakra-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/101-chakra-ui.md",
"css-frameworks:js-first:mantine": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/104-mantine.md",
"css-frameworks:js-first:material-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md",
"css-frameworks:js-first:radix-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md",
"css-frameworks:js-first:daisy-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/105-daisy-ui.md",
"css-frameworks:js-first:tailwind-css": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md",
"css-frameworks:css-first": "/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md",
"css-frameworks:css-first:bootstrap": "/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md",
"css-frameworks:css-first:bulma": "/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md",
"testing-your-apps": "/roadmaps/100-frontend/content/115-testing-your-apps/readme.md",
"testing-your-apps:jest": "/roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md",
"testing-your-apps:playwright": "/roadmaps/100-frontend/content/115-testing-your-apps/104-playwright.md",
"testing-your-apps:react-testing-library": "/roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md",
"testing-your-apps:cypress": "/roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md",
"testing-your-apps:enzyme": "/roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md",
"testing-your-apps:other-options": "/roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md",
"testing-your-apps:mocha": "/roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md",
"testing-your-apps:chai": "/roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md",
"testing-your-apps:ava": "/roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md",
"testing-your-apps:jasmine": "/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md",
"auth-strategies": "/roadmaps/100-frontend/content/116-auth-strategies/readme.md",
"type-checkers": "/roadmaps/100-frontend/content/116-type-checkers/readme.md",
"type-checkers:typescript": "/roadmaps/100-frontend/content/116-type-checkers/100-typescript.md",
"type-checkers:flow": "/roadmaps/100-frontend/content/116-type-checkers/101-flow.md",
"progressive-web-apps": "/roadmaps/100-frontend/content/117-progressive-web-apps/readme.md",
"progressive-web-apps:storage": "/roadmaps/100-frontend/content/117-progressive-web-apps/100-storage.md",
"progressive-web-apps:web-sockets": "/roadmaps/100-frontend/content/117-progressive-web-apps/101-web-sockets.md",
"progressive-web-apps:server-sent-events": "/roadmaps/100-frontend/content/117-progressive-web-apps/102-server-sent-events.md",
"progressive-web-apps:service-workers": "/roadmaps/100-frontend/content/117-progressive-web-apps/103-service-workers.md",
"progressive-web-apps:location": "/roadmaps/100-frontend/content/117-progressive-web-apps/104-location.md",
"progressive-web-apps:notifications": "/roadmaps/100-frontend/content/117-progressive-web-apps/105-notifications.md",
"progressive-web-apps:device-orientation": "/roadmaps/100-frontend/content/117-progressive-web-apps/106-device-orientation.md",
"progressive-web-apps:payments": "/roadmaps/100-frontend/content/117-progressive-web-apps/107-payments.md",
"progressive-web-apps:credentials": "/roadmaps/100-frontend/content/117-progressive-web-apps/108-credentials.md",
"progressive-web-apps:prpl-pattern": "/roadmaps/100-frontend/content/117-progressive-web-apps/109-prpl-pattern.md",
"progressive-web-apps:rail-model": "/roadmaps/100-frontend/content/117-progressive-web-apps/110-rail-model.md",
"progressive-web-apps:performance-metrics": "/roadmaps/100-frontend/content/117-progressive-web-apps/111-performance-metrics.md",
"progressive-web-apps:lighthouse": "/roadmaps/100-frontend/content/117-progressive-web-apps/112-lighthouse.md",
"progressive-web-apps:browser-devtools": "/roadmaps/100-frontend/content/117-progressive-web-apps/113-browser-devtools.md",
"progressive-web-apps:performance": "/roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md",
"progressive-web-apps:apis": "/roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md",
"server-side-rendering": "/roadmaps/100-frontend/content/118-server-side-rendering/readme.md",
"server-side-rendering:react-js": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/readme.md",
"server-side-rendering:react-js:next-js": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md",
"server-side-rendering:react-js:remix": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-remix.md",
"server-side-rendering:react-js:after-js": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md",
"server-side-rendering:angular": "/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md",
"server-side-rendering:angular:universal": "/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md",
"server-side-rendering:vue-js": "/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md",
"server-side-rendering:vue-js:nuxt-js": "/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md",
"server-side-rendering:svelte": "/roadmaps/100-frontend/content/118-server-side-rendering/103-svelte/readme.md",
"server-side-rendering:svelte:svelte-kit": "/roadmaps/100-frontend/content/118-server-side-rendering/103-svelte/100-svelte-kit.md",
"graphql": "/roadmaps/100-frontend/content/119-graphql/readme.md",
"graphql:apollo": "/roadmaps/100-frontend/content/119-graphql/100-apollo.md",
"graphql:relay-modern": "/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md",
"static-site-generators": "/roadmaps/100-frontend/content/120-static-site-generators/readme.md",
"static-site-generators:next-js": "/roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md",
"static-site-generators:remix": "/roadmaps/100-frontend/content/120-static-site-generators/108-remix.md",
"static-site-generators:gatsbyjs": "/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md",
"static-site-generators:nuxt-js": "/roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md",
"static-site-generators:vuepress": "/roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md",
"static-site-generators:jekyll": "/roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md",
"static-site-generators:hugo": "/roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md",
"static-site-generators:astro": "/roadmaps/100-frontend/content/120-static-site-generators/106-astro.md",
"static-site-generators:gridsome": "/roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md",
"static-site-generators:eleventy": "/roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md",
"mobile-applications": "/roadmaps/100-frontend/content/121-mobile-applications/readme.md",
"mobile-applications:react-native": "/roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md",
@@ -153,6 +131,6 @@
"desktop-applications": "/roadmaps/100-frontend/content/122-desktop-applications/readme.md",
"desktop-applications:electron": "/roadmaps/100-frontend/content/122-desktop-applications/100-electron.md",
"desktop-applications:tauri": "/roadmaps/100-frontend/content/122-desktop-applications/101-tauri.md",
"desktop-applications:flutter": "/roadmaps/100-frontend/content/122-desktop-applications/102-flutter.md",
"bonus-content": "/roadmaps/100-frontend/content/123-bonus-content.md"
"desktop-applications:proton-native": "/roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md",
"web-assembly": "/roadmaps/100-frontend/content/123-web-assembly.md"
}

View File

@@ -6,6 +6,6 @@ The Internet is a global network of computers connected to each other which comm
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.vox.com/2014/6/16/18076282/the-internet'>The Internet Explained</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm'>How Does the Internet Work?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Learn/Common_questions/How_does_the_Internet_work'>How Does the Internet Work? MDN Docs</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='/guides/what-is-internet'>Introduction to Internet</BadgeLink>
<BadgeLink badgeText='Watch' href='/guides/what-is-internet'>Introduction to Internet</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=TNQsmPf24go'>How does the Internet work?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7_LPdttKXPc'>How the Internet Works in 5 Minutes</BadgeLink>

View File

@@ -1,6 +1,6 @@
# What is HTTP?
HTTP is the `TCP/IP` based application layer communication protocol which standardizes how the client and server communicate with each other. HTTP follows a classical "Client-Server model" with a client opening a connection request, then waiting until it receives a response. HTTP is a stateless protocol, that means that the server does not keep any data (state) between two requests.
HTTP is the `TCP/IP` based application layer communication protocol which standardizes how the client and server communicate with each other. It defines how the content is requested and transmitted across the internet.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/'>What is HTTP?</BadgeLink>
@@ -8,5 +8,4 @@ HTTP is the `TCP/IP` based application layer communication protocol which standa
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview'>An overview of HTTP</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://kamranahmed.info/blog/2016/08/13/http-in-depth'>Journey to HTTP/2</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/'>HTTP/3 From A To Z: Core Concepts</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://thenewstack.io/http-3-is-now-a-standard-why-use-it-and-how-to-get-started/'>HTTP/3 Is Now a Standard: Why Use It and How to Get Started</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=iYM2zFP3Zn0'>HTTP Crash Course & Exploration</BadgeLink>

View File

@@ -4,9 +4,8 @@ The Domain Name System (DNS) is the phonebook of the Internet. Humans access inf
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/'>What is DNS?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://messwithdns.net/'>Mess with DNS - DNS Playground</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://howdns.works/'>How DNS works (comic)</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=Wj0od2ag5sk'>DNS and How does it Work?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7lxgpKh_fRY'>DNS Records</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=e48AyJOA9W8'>When to add glue records to DNS settings</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Visit' href='https://messwithdns.net/'>Mess with DNS - DNS Playground</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=YV5tkQYcvfg'>DNS Records for Newbies - How To Manage Website Records</BadgeLink>

View File

@@ -1,6 +1,6 @@
# Domain Name
A domain name is a unique, easy-to-remember address used to access websites, such as google.com, and facebook.com. Users can connect to websites using domain names thanks to the Domain Name System (DNS).
A domain name is a unique, easy-to-remember address used to access websites, such as google.com, and facebook.com. Users can connect to websites using domain names thanks to the DNS system.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_domain_name'>What is a Domain Name?</BadgeLink>

View File

@@ -5,8 +5,6 @@ The Internet is a global network of computers connected to each other which comm
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.vox.com/2014/6/16/18076282/the-internet'>The Internet Explained</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm'>How Does the Internet Work?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='/guides/what-is-internet'>Introduction to Internet</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://internetfundamentals.com'>Learn How the Web Works</BadgeLink>
<BadgeLink badgeText='Watch' href='/guides/what-is-internet'>Introduction to Internet</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=x3c1ih2NJEg'>How does the Internet work?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7_LPdttKXPc'>How the Internet Works in 5 Minutes</BadgeLink>

View File

@@ -3,9 +3,6 @@
HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3schools.com/html/html_intro.asp'>W3Schools: Learn HTML</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started'>MDN Docs: Getting Started with HTML </BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=pQN-pnXPaVg'>HTML Full Course - Build a Website Tutorial</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=qz0aGYrrlhU'>HTML Tutorial for Beginners: HTML Crash Course</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://htmlcheatsheet.com'>HTML Cheatsheet</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.scaler.com/topics/html'>Scaler: HTML</BadgeLink>
<BadgeLink badgeText='Read' href='https://www.w3schools.com/html/html_intro.asp'>W3Schools: Learn HTML</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=pQN-pnXPaVg'>HTML Full Course - Build a Website Tutorial</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=qz0aGYrrlhU'>HTML Tutorial for Beginners: HTML Crash Course</BadgeLink>

View File

@@ -1,11 +1,9 @@
# Semantic HTML
Semantic element clearly describes its meaning to both the browser and the developer. In HTML, semantic element are the type of elements that can be used to define different parts of a web page such as `<form>`, `<table>`, `<article>`, `<header>`, `<footer>`, etc.
Semantic element clearly describes its meaning to both the browser and the developer.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://developer.mozilla.org/en-US/docs/Glossary/Semantics'>Semantics - MDN Web Docs Glossary: Definitions of Web-related terms | MDN</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3schools.com/html/html5_semantic_elements.asp'>W3Schools: Semantic HTML</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://hackernoon.com/how-to-write-semantic-html-dkq3ulo'>How To Write Semantic HTML</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.freecodecamp.org/news/html-best-practices/'>HTML Best Practices How to Build a Better HTML-Based Website</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://blog.hubspot.com/website/semantic-html'>Semantic HTML: What It Is and How It Improves Your Site</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://html.com/semantic-markup'>Semantic Markup</BadgeLink>

View File

@@ -5,5 +5,3 @@ Before submitting data to the server, it is important to ensure all required for
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation'>MDN Web Docs: Client-side form validation</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://web.dev/learn/forms/'>Learn Forms by web.dev</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3schools.com/js/js_validation.asp'>W3Schools: JavaScript Form Validation</BadgeLink>

View File

@@ -1,13 +1,8 @@
# Accessibility
Web accessibility means that websites, tools, and technologies are designed and developed in such a way that people with disabilities can use them easily.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3.org/WAI/tips/developing/'>Developing for Web Accessibility by W3C WAI</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3schools.com/accessibility/index.php'>Accessibility Tutorial</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.smashingmagazine.com/2021/03/complete-guide-accessible-front-end-components/'>A Complete Guide To Accessible Front-End Components</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g'>Complete Playlist on Accessibility</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://developer.mozilla.org/en-US/docs/Web/Accessibility'>MDN Accessibility</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://web.dev/accessibility'>Accessibility for Developers by Google</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.udacity.com/course/web-accessibility--ud891'>Web Accessibility by Udacity</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://thenewstack.io/accessibility-as-an-essential-part-of-the-inclusive-developer-experience/'>Accessibility as an Essential Part of the Inclusive Developer Experience</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3schools.com/accessibility/index.php'>Accessibility Tutorial
</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.smashingmagazine.com/2021/03/complete-guide-accessible-front-end-components/'>A Complete Guide To Accessible Front-End Components</BadgeLink>

View File

@@ -3,12 +3,8 @@
HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3schools.com/html/html_intro.asp'>W3Schools: Learn HTML</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://htmlreference.io/'>htmlreference.io: All HTML elements at a glance</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://html.com'>HTML For Beginners The Easy Way</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.internetingishard.com/html-and-css/'>Web Development Basics</BadgeLink>
<BadgeLink badgeText='Read' href='https://www.w3schools.com/html/html_intro.asp'>W3Schools: Learn HTML</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=pQN-pnXPaVg'>HTML Full Course - Build a Website Tutorial</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=qz0aGYrrlhU'>HTML Tutorial for Beginners: HTML Crash Course</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.codecademy.com/learn/learn-html'>Codecademy - Learn HTML</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://github.com/denysdovhan/learnyouhtml'>Interactive HTML Course</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/mJgBOIoGihA'>HTML Full Course for Beginners | Complete All-in-One Tutorial </BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=pQN-pnXPaVg'>HTML Full Course - Build a Website Tutorial</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=qz0aGYrrlhU'>HTML Tutorial for Beginners: HTML Crash Course</BadgeLink>

View File

@@ -6,6 +6,6 @@ CSS or Cascading Style Sheets is the language used to style the frontend of any
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.w3schools.com/css/'>W3Schools — Learn CSS</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/learn/responsive-web-design/'>freeCodeCamp — Responsive Web Design</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://learn.shayhowe.com/html-css/building-your-first-web-page/'>Learn to Code HTML & CSS</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=FqmB-Zj2-PA'>CSS Masterclass - Tutorial & Course for Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=FqmB-Zj2-PA'>CSS Masterclass - Tutorial & Course for Beginners</BadgeLink>

View File

@@ -1,6 +1,6 @@
# Making layouts
Float, grid, flexbox, positioning, display and box model are some of the key topics that are used for making layouts. Use the resources below to learn about these topics:
Float, grid, flexbox, positioning, display and box model are some of the key topics that are used for making layouts. Use the resources below to learn about these topics:
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
@@ -10,8 +10,3 @@ Float, grid, flexbox, positioning, display and box model are some of the key top
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/'>Positioning Types: How Do They Differ?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model'>The Box Model</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/the-css-display-property-display-none-display-table-inline-block-and-more/'>The CSS Display Property</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://css-tricks.com/snippets/css/a-guide-to-flexbox'>A Complete Guide to Flexbox</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://css-tricks.com/snippets/css/complete-guide-grid'>A Complete Guide to Grid</BadgeLink>
<BadgeLink badgeText='Watch' href='https://cssgrid.io/'>Learn CSS Grid - Course</BadgeLink>
<BadgeLink badgeText='Watch' href='https://scrimba.com/learn/cssgrid'>Learn CSS Grid for free</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://thenewstack.io/get-grid-last-css-grid-template-markup/'>Get on the Grid at Last with the CSS Grid Layout Module</BadgeLink>

View File

@@ -6,7 +6,4 @@ Responsive Web Designing is the technique to make your webpages look good on all
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.w3schools.com/css/css_rwd_intro.asp'>Responsive Web Design</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://web.dev/learn/design/'>Learn Responsive Design</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://kinsta.com/blog/responsive-web-design/'>The Beginners Guide to Responsive Web Design</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://webflow.com/blog/responsive-web-design'>The guide to responsive web design in 2022</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=VQraviuwbzU'>5 simple tips to making responsive layouts the easy way</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=srvUrASNj0s'>Introduction To Responsive Web Design</BadgeLink>

View File

@@ -3,20 +3,13 @@
CSS or Cascading Style Sheets is the language used to style the frontend of any website. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.theodinproject.com//'>The Odin Project</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://flexbox.io/'>What The Flexbox!</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.codecademy.com/learn/learn-css'>Learn CSS | Codecademy</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.codecademy.com/learn/learn-intermediate-css'>Learn Intermediate CSS | Codecademy</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/n4R2E7O-Ngo'>CSS Complete Course</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=FqmB-Zj2-PA'>CSS Masterclass - Tutorial & Course for Beginners</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.w3schools.com/css/'>W3Schools — Learn CSS</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://cssreference.io/'>cssreference.io: All CSS properties at a glance</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://web.dev/learn/css/'>Web.dev by Google — Learn CSS</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/learn/responsive-web-design/'>freeCodeCamp — Responsive Web Design</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://learn.shayhowe.com/html-css/building-your-first-web-page/'>Learn to Code HTML & CSS</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.joshwcomeau.com/'>Joshw Comeau's CSS Hack Blog Posts</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://100dayscss.com'>100 Days CSS Challenge</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.scaler.com/topics/css'>CSS Tutorial | Scaler</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=FqmB-Zj2-PA'>CSS Masterclass - Tutorial & Course for Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://flexbox.io/'>What The Flexbox!</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.codecademy.com/learn/learn-css'>Learn CSS | Codecademy</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.codecademy.com/learn/learn-intermediate-css'>Learn Intermediate CSS | Codecademy</BadgeLink>

View File

@@ -1,15 +1,12 @@
# DOM Manipulation
The Document Object Model (DOM) is a programming interface built for HTML and XML documents. It represents the page that allows programs and scripts to dynamically update the document structure, content, and style. With DOM, we can easily access and manipulate tags, IDs, classes, attributes, etc.
The Document Object Model (DOM) connects web pages to scripts or programming languages by representing the structure of a document—such as the HTML representing a web page—in memory.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://javascript.info/dom-nodes'>DOM Treee</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.geeksforgeeks.org/dom-document-object-model/'>GeeksForGeeks - DOM (Document Object Model)</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.freecodecamp.org/news/what-is-the-dom-document-object-model-meaning-in-javascript/'>What is the DOM?</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://eloquentjavascript.net/14_dom.html'>Eloquent JavaScript, 3rd Edition: The Document Object Model</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.w3schools.com/js/js_htmldom.asp'>JavaScript HTML DOM</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.javascripttutorial.net/javascript-dom/'>JavaScript DOM</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.codeguage.com/courses/js/html-dom-introduction'>Learn the HTML DOM with Exercises - CodeGuage</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7Tok22qxPzQ'>What is DOM, Shadow DOM and Virtual DOM?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=0ik6X4DJKCc'>JavaScript DOM Crash Course</BadgeLink>

View File

@@ -4,9 +4,6 @@ ECMAScript 2015 or ES2015 is a significant update to the JavaScript programming
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.javascripttutorial.net/es6/'>ES6 Tutorial</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.w3schools.com/js/js_es6.asp'>W3Schools: Javascript ES6</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=NCwa_xi0Uuc'>Learn Modern JavaScript in 1 Hour</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=nZ1DMMsyVyI'>JavaScript ES6, ES7, ES8</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=3PHXvlpOkf4'>Build 15 JavaScript Projects - Vanilla JavaScript</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://codeloop.org/learn-modern-javascript-es6-es7-es8'>Modern JavaScript ES6, ES7 & ES8</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://thenewstack.io/fat-arrow-points-way-easy-es6-goodies-busy-js-devs/'>Easy ES6 Goodies for Busy JavaScript Developers</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=3PHXvlpOkf4'>Build 15 JavaScript Projects - Vanilla JavaScript</BadgeLink>

View File

@@ -9,6 +9,5 @@ Learn and understand the concepts such as Hoisting, Event Bubbling, Scope, Proto
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/'>Var, Let and Const — What's the difference?</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain'>Inheritance and Prototype Chain</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode'>JavaScript Strict Mode</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif'>JavaScript Visualized (7 Part Series)</BadgeLink>
<BadgeLink badgeText='Read' href='https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif'>JavaScript Visualized (7 Part Series)</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7Tok22qxPzQ'>DOM vs Shadow DOM vs Virtual DOM</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://blog.greenroots.info/series/javascript-promises'>Demystifying JavaScript Promises</BadgeLink>

View File

@@ -1,9 +1,3 @@
<DedicatedRoadmap
href='/javascript'
title='JavaScript Roadmap'
description='Click to check the detailed JavaScript Roadmap.'
/>
# JavaScript
JavaScript allows you to add interactivity to your pages. Common examples that you may have seen on the websites are sliders, click interactions, popups and so on.
@@ -11,11 +5,6 @@ JavaScript allows you to add interactivity to your pages. Common examples that y
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.w3schools.com/js/'>W3Schools JavaScript Tutorial</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://javascript.info/'>The Modern JavaScript Tutorial</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.javascripttutorial.net/'>Learn JavaScript: Covered many topics</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://eloquentjavascript.net/'>Eloquent JavaScript textbook</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://github.com/getify/You-Dont-Know-JS'>You Don't Know JS Yet (book series) </BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/hdI2bqOjy3c?t=2'>JavaScript Crash Course for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/P7t13SGytRk?t=22'>Build a Netflix Landing Page Clone with HTML, CSS & JS</BadgeLink>
<BadgeLink badgeText='Watch' href='https://javascript30.com/'>Build 30 Javascript projects in 30 days</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://github.com/workshopper/javascripting'>Learn the basics of JavaScript</BadgeLink>
<BadgeLink badgeText='Course' colorScheme="green" href='https://www.scaler.com/topics/course/javascript-beginners'>JavaScript for Beginners </BadgeLink>

View File

@@ -3,9 +3,6 @@
[Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://marklodato.github.io/visual-git-guide/index-en.html'>Visual Git Guide</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/apGV9Kg7ics'>Git and Github full course</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=zbKdDsNNOhg'>Version Control System Introduction</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=SWYqp7iY_Tc'>Git & GitHub Crash Course For Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/Y9XZQO1n_7c?t=21'>Learn Git in 20 Minutes</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://thenewstack.io/tutorial-git-for-absolutely-everyone/'>Tutorial: Git for Absolutely Everyone</BadgeLink>

View File

@@ -6,5 +6,3 @@ Version control systems allow you to track changes to your codebase/files over t
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=zbKdDsNNOhg'>Version Control System Introduction</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=SWYqp7iY_Tc'>Git & GitHub Crash Course For Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/Y9XZQO1n_7c?t=21'>Learn Git in 20 Minutes</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://git-scm.com/docs'>Git Documentation</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.atlassian.com/git'>Learn Git by Atlassian</BadgeLink>

View File

@@ -4,9 +4,8 @@
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://docs.github.com/en/get-started/quickstart/hello-world'>GitHub: Quickstart</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://skills.github.com/'>Learn Github by doing</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=w3jLJU7DT5E'>What is GitHub?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=wpISo9TNjfU'>Git vs. GitHub: What's the difference?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=RGOj5yH7evk'>Git and GitHub for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=eulnSXkhE7I'>Git and GitHub - CS50 Beyond 2019</BadgeLink>
<BadgeLink badgeText='Read' href='https://docs.github.com/en/get-started/quickstart/hello-world'>GitHub: Quickstart</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=w3jLJU7DT5E'>What is GitHub?</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=wpISo9TNjfU'>Git vs. GitHub: What's the difference?</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=RGOj5yH7evk'>Git and GitHub for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=eulnSXkhE7I'>Git and GitHub - CS50 Beyond 2019</BadgeLink>

View File

@@ -4,6 +4,5 @@
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Visit' colorScheme="green" href='https://gitlab.com/'>GitLab Website</BadgeLink>
<BadgeLink badgeText='Read' href='https://docs.gitlab.com/'>GitLab Documentation</BadgeLink>
<BadgeLink badgeText='Course' colorScheme="green" href='https://gitlab.com/'>GitLab Website</BadgeLink>
<BadgeLink badgeText='Read' href='https://thenewstack.io/development-connect-git-to-gitlab-for-small-projects/'>Development: Connect git to GitLab for Small Projects</BadgeLink>

View File

@@ -4,5 +4,5 @@
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://bitbucket.org/product/guides'>How to use BitBucket?</BadgeLink>
<BadgeLink badgeText='Course' colorScheme="green" href='https://bitbucket.com/'>BitBucket Website</BadgeLink>
<BadgeLink badgeText='Visit' colorScheme="green" href='https://bitbucket.com/'>BitBucket Website</BadgeLink>
<BadgeLink badgeText='Read' href='https://bitbucket.org/product/guides'>How to use BitBucket?</BadgeLink>

View File

@@ -3,6 +3,6 @@
There are different repository hosting services with the most famous one being GitHub, GitLab and BitBucket. I would recommend creating an account on GitHub because that is where most of the OpenSource work is done and most of the developers are.
<ResourceGroupTitle>Services Links</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://github.com'>GitHub: Where the world builds software</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://gitlab.com'>GitLab: Iterate faster, innovate together</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://bitbucket.com'>BitBucket: The Git solution for professional teams</BadgeLink>
<BadgeLink badgeText='Visit' colorScheme="green" href='https://github.com'>GitHub: Where the world builds software</BadgeLink>
<BadgeLink badgeText='Visit' href='https://gitlab.com'>GitLab: Iterate faster, innovate together</BadgeLink>
<BadgeLink badgeText='Visit' href='https://bitbucket.com'>BitBucket: The Git solution for professional teams</BadgeLink>

View File

@@ -2,12 +2,11 @@
HTTPS is a secure way to send data between a web server and a browser.
Hypertext transfer protocol secure (HTTPS) is the secure version of HTTP, which is the primary protocol used to send data between a web browser and a website. HTTPS is encrypted in order to increase security of data transfer. This is particularly important when users transmit sensitive data, such as by logging into a bank account, email service, or health insurance provider
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/'>What is HTTPS?</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https'>Why HTTPS Matters</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https'>Enabling HTTPS on Your Servers</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://howhttps.works/'>How HTTPS works (comic)</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=hExRDVZHhig'>SSL, TLS, HTTP, HTTPS Explained</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=GoXgl9r0Kjk'>HTTPS — Stories from the field</BadgeLink>

View File

@@ -7,4 +7,3 @@ OWASP or Open Web Application Security Project is an online community that produ
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://github.com/0xRadi/OWASP-Web-Checklist'>OWASP Web Application Security Testing Checklist</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/'>OWASP Top 10 Security Risks</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html'>OWASP Cheatsheets</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://thenewstack.io/owasp-top-10-a-guide-to-the-worst-software-vulnerabilities/'>OWASP Top 10: A Guide to the Worst Software Vulnerabilities</BadgeLink>

View File

@@ -9,4 +9,3 @@ Web security refers to the protective measures taken by the developers to protec
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/'>OWASP Top 10 Security Risks</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html'>OWASP Cheatsheets</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP'>Content Security Policy (CSP)</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.youtube.com/playlist?list=PLH8n_ayg-60J9i3nsLybper-DR3zJw6Z5'>OWASP ZAP Step-by-Step Tutorial</BadgeLink>

View File

@@ -5,6 +5,6 @@ npm is a package manager for the JavaScript programming language maintained by n
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html'>Modern JavaScript for Dinosaurs</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/'>An Absolute Beginner's Guide to Using npm</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://github.com/workshopper/how-to-npm'>How to NPM</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=2V1UUhBJ62Y'>NPM tutorial for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=jHDhaSSKmB0'>NPM Crash Course</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://github.com/workshopper/how-to-npm'>How to NPM</BadgeLink>

View File

@@ -1,7 +0,0 @@
# pnpm
PNPM is an alternative package manager for Node. js which stands for “Performant NPM”. The main purpose of PNPM is to hold all the packages at a global (centralized) store and use them if needed by other projects too by creating hard links to it.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://pnpm.io'>Official Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://blog.bitsrc.io/pnpm-javascript-package-manager-4b5abd59dc9'>Meet PNPM: The Faster, More Performant NPM</BadgeLink>

View File

@@ -5,9 +5,9 @@ Package managers allow you to manage the dependencies (external code written by
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html'>Modern JavaScript for Dinosaurs</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/'>An Absolute Beginner's Guide to Using npm</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://yarnpkg.com/en/docs/getting-started'>Yarn - Getting Started</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=2V1UUhBJ62Y'>NPM tutorial for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=jHDhaSSKmB0'>NPM Crash Course</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://yarnpkg.com/en/docs/getting-started'>Yarn - Getting Started</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=g9_6KmiBISk'>Yarn Crash Course</BadgeLink>

View File

@@ -4,6 +4,6 @@ Sass is a preprocessor scripting language that is interpreted or compiled into C
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://sass-lang.com/'>Sass Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://sass-lang.com/documentation'>Official Documentation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Documentation' href='https://sass-lang.com/documentation'>Official Documentation</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=_a5j7KoflTs'> Sass Tutorial for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=jfMHA8SqUL4'> Sass, BEM, & Responsive Design</BadgeLink>

View File

@@ -3,4 +3,4 @@
PostCSS is a tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more.
<ResourceGroupTitle>Free Resources</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://postcss.org/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Website' href='https://postcss.org/'>Official Website</BadgeLink>

View File

@@ -3,6 +3,6 @@
Less extends CSS with dynamic behavior such as variables, mixins, operations and functions. Less runs on both the server-side (with Node.js and Rhino) or client-side (modern browsers only).
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://lesscss.org/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://lesscss.org/usage/'>Official Documentation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://lesscss.org/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://lesscss.org/usage/'>Official Documentation</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=YD91G8DdUsw'> Less CSS Pre-Processor Tutorial</BadgeLink>

View File

@@ -1,7 +1 @@
# Task Runners
Task Runner are tools to simplify certain tedious tasks of development, like automating sass/scss compilation, bundling assets, linting source code, and hot reloading local server.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://docs.npmjs.com/cli/v8/using-npm/scripts'>npm script</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://classic.yarnpkg.com/lang/en/docs/cli/run/#toc-yarn-run-script'>yarn script</BadgeLink>
# Task runners

View File

@@ -6,4 +6,3 @@ Webpack is a module bundler. Its main purpose is to bundle JavaScript files for
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://webpack.js.org/'>Webpack Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://webpack.js.org/concepts/'>Webpack Documentation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://www.valentinog.com/blog/webpack'>A Complete Guide to Webpack 5</BadgeLink>

View File

@@ -4,5 +4,5 @@ Rollup is a module bundler for JavaScript which compiles small pieces of code in
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://rollupjs.org/'>Official Website and Docs</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://rollupjs.org/'>Official Website and Docs</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=ICYLOZuFMz8'>How to Set Up JavaScript Bundling Using Rollup</BadgeLink>

View File

@@ -4,5 +4,5 @@ Vite is a build tool that aims to provide a faster and leaner development experi
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://vitejs.dev'>Vite Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://vitejs.dev/guide'>Vite Documentation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Documentation' href='https://vitejs.dev/guide'>Vite Documentation</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://youtu.be/LQQ3CR2JTX8'>Vite Crash Course</BadgeLink>

View File

@@ -6,6 +6,6 @@ It usually starts with an entry file, and from there it bundles up all of the co
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/lets-learn-how-module-bundlers-work-and-then-write-one-ourselves-b2e3fe6c88ae/'>Lets learn how module bundlers work</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=5IG4UmULyoA'>Module Bundlers Explained</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/lets-learn-how-module-bundlers-work-and-then-write-one-ourselves-b2e3fe6c88ae/'>Lets learn how module bundlers work</BadgeLink>

View File

@@ -1,7 +1,6 @@
# Prettier
Prettier is an opinionated code formatter with support for JavaScript, HTML, CSS, YAML, Markdown, GraphQL Schemas. By far the biggest reason for adopting Prettier is to stop all the on-going debates over styles.
Prettier is an opinionated code formatter with support for JavaScript, HTML, CSS, and more.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://prettier.io'>Prettier Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://prettier.io/docs/en/why-prettier.html'>Why Prettier</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Website' href='https://prettier.io'>Prettier Website</BadgeLink>

View File

@@ -5,4 +5,4 @@ With ESLint you can impose the coding standard using a certain set of standalone
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Official Website' colorScheme="blue" href='https://eslint.org/'>ESLint Official Website</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://dev.to/shivambmgupta/eslint-what-why-when-how-5f1d'>Introduction to ESLint</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=qhuFviJn-es'>ESLint Quickstart - find errors automatically</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme="red" href='https://www.youtube.com/watch?v=qhuFviJn-es'>ESLint Quickstart - find errors automatically</BadgeLink>

View File

@@ -4,6 +4,6 @@ Standardjs is a Style guide, with linter & automatic code fixer. It is a way to
Standard JS is a tool in the Code Review category of a tech stack.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Official Website' colorScheme="blue" href='https://standardjs.com/'>Official Website</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="blue" href='https://standardjs.com/'>Official Website</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=bqho-uAnNJk'>Standard JS Tutorial with React, Prettier
</BadgeLink>

View File

@@ -2,4 +2,4 @@
A linter is a tool used to analyze code and discover bugs, syntax errors, stylistic inconsistencies, and suspicious constructs. Popular linters for JavaScript include ESLint, JSLint, and JSHint.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.testim.io/blog/what-is-a-linter-heres-a-definition-and-quick-start-guide/'>What Is a Linter?</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://www.testim.io/blog/what-is-a-linter-heres-a-definition-and-quick-start-guide/'>What Is a Linter?</BadgeLink>

View File

@@ -2,9 +2,4 @@
Task runners automatically execute commands and carry out processes behind the scenes. This helps automate your workflow by performing mundane, repetitive tasks that you would otherwise waste an egregious amount of time repeating yourself.
Common usages of task runners include numerous development tasks such as: spinning up development servers, compiling code (ex. SCSS to CSS), running linters, serving files up from a local port on your computer, and many more!
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://webpack.js.org/'>webpack is a static module bundler for modern JavaScript applications</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://vitejs.dev'>Vite Next Generation Frontend Tooling</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://parceljs.org/'>Parcel is a zero configuration build tool for the web</BadgeLink>
Common usages of task runners include numerous development tasks such as: spinning up development servers, compiling code (ex. SCSS to CSS), running linters, serving files up from a local port on your computer, and many more!

View File

@@ -9,10 +9,9 @@
React is the most popular front-end JavaScript library for building user interfaces. React can also render on the server using Node and power mobile apps using React Native.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://reactjs.org/'>React Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://reactjs.org/tutorial/tutorial.html'>Official Getting Started</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://beta.reactjs.org/'>Beta React Docs</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Framework Website' href='https://reactjs.org/'>React Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://reactjs.org/tutorial/tutorial.html'>Official Getting Started</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://egghead.io/courses/the-beginner-s-guide-to-react'>The Beginner's Guide to React</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=nTeuhbP7wdE'>React JS Course for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=bMknfKXIFA8'>React Course - Beginner's Tutorial for React JavaScript Library [2022]</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=nTeuhbP7wdE'>React JS Course for Beginners</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=bMknfKXIFA8'>React Course - Beginner's Tutorial for React JavaScript Library [2022]</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=i793Qm6kv3U'>Understanding React's UI Rendering Process</BadgeLink>

View File

@@ -5,6 +5,6 @@ RxJS (Reactive Extensions for JavaScript) is a library for reactive programming
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://rxjs.dev/guide/overview'>RxJS Official Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://angular.io/guide/rx-library'>RxJS Angular Docs</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=PhggNGsSQyg'>RxJS Crash Course</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://angular.io/guide/rx-library'>RxJS Angular Docs</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=2LCo926NFLI'>RxJS Quick Start</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=PhggNGsSQyg'>RxJS Crash Course</BadgeLink>

View File

@@ -4,6 +4,6 @@ NgRx is an open source library that provides reactive state management for your
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://ngrx.io/docs'>Official Documentation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://ngrx.io/docs'>Official Documentation</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=2LCo926NFLI'>Angular NgRx Redux Quick Start Tutorial</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=nuHBHD32iw8'>NgRx Course</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=nuHBHD32iw8'>NgRx Course</BadgeLink>

View File

@@ -10,4 +10,3 @@ Angular is a component based front-end development framework built on TypeScript
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://angular.io/start'>Official - Getting started with Angular</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=3qBXWUpoPHo'>Angular for Beginners Course [Full Front End Tutorial with TypeScript]</BadgeLink>

View File

@@ -9,8 +9,7 @@
Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. It is mainly focused on front end development.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://vuejs.org/'>Vue.js Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Guide' href='https://vuejs.org/v2/guide/'>Official Getting Started</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=FXpIoQ_rT_c'>Vue.js Course for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=qZXt1Aom3Cs'>Vue.js Crash Course</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://thenewstack.io/meet-vue-js-flexible-javascript-framework/'>Meet Vue.js, the Flexible JavaScript Framework</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Framework Website' href='https://vuejs.org/'>Vue.js Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://vuejs.org/v2/guide/'>Official Getting Started</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=FXpIoQ_rT_c'>Vue.js Course for Beginners</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=qZXt1Aom3Cs'>Vue.js Crash Course</BadgeLink>

View File

@@ -1,10 +0,0 @@
# Svelte
Svelte is a javascript framework that unlike Vue and React does not use vertical DOM diffing but instead knows exactly what and where to update when the state changes. It's mainly focused on frontend and building user interfaces.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://svelte.dev/'>Svelte Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Guide' href='https://svelte.dev/docs'>Svelte Documentation</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/playlist?list=PL4cUxeGkcC9hlbrVO_2QFVqVPhlZmz7tO'>Svelte Course Playlist for beginners</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://thenewstack.io/all-about-svelte-the-much-loved-state-driven-web-framework/'>All About Svelte, the Much-Loved, State-Driven Web Framework</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://thenewstack.io/svelte-and-the-future-of-front-end-development/'>Svelte and the Future of Frontend Development</BadgeLink>

View File

@@ -1,6 +0,0 @@
# SolidJS
Solid is a reactive JavaScript toolkit for building user interfaces without a virtual DOM. To ensure that only the relevant code is executed when a state update occurs, it compiles templates down to real DOM nodes once and wraps modifications into fine-grained reactions.
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://www.solidjs.com/'>Official Website - SolidJS</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Tutorial' href='https://www.solidjs.com/tutorial/introduction_basics'>SolidJS Tutorial</BadgeLink>

View File

@@ -4,6 +4,6 @@ Styled-components is a CSS-in-JS library that enables you to write regular CSS a
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://styled-components.com/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://styled-components.com/docs'>Official Docs</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://styled-components.com/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://styled-components.com/docs'>Official Docs</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=02zO0hZmwnw'>Styled Components Crash Course & Project</BadgeLink>

View File

@@ -4,5 +4,5 @@ Emotion is a library designed for writing css styles with JavaScript. It provide
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://emotion.sh/docs/introduction'>Official Website and Docs</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://emotion.sh/docs/introduction'>Official Website and Docs</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=yO3JU2bMLGA'>Styled components using emotion in React</BadgeLink>

View File

@@ -1,3 +1 @@
# Modern CSS
The way we write CSS in our modern front-end applications is completely different from how we used to write CSS before. There are methods such as Styled Components, CSS Modules, Styled JSX, Emotion, etc
# Modern css

View File

@@ -1,8 +1 @@
# Web Components
Web Components is a suite of different technologies allowing you to create reusable custom elements — with their functionality encapsulated away from the rest of your code — and utilize them in your web apps.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://developer.mozilla.org/en-US/docs/Web/Web_Components'>Web Components | MDN</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://webcomponents.github.io/'>WebComponents.org</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=PCWaFLy3VUo'>Web Components Crash Course</BadgeLink>
# Web components

View File

@@ -3,6 +3,6 @@
Quickly design and customize responsive mobile-first sites with Bootstrap, the worlds most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://getbootstrap.com'>Bootstrap Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Blog' href='https://blog.getbootstrap.com/2022/07/19/bootstrap-5-2-0/'>Bootstrap Official Blog</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=-qfEOE4vtxE'>Bootstrap CSS Framework - Full Course for Beginners</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Framework Website' href='https://getbootstrap.com'>Bootstrap Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Docs' href='https://getbootstrap.com/docs/5.2/getting-started/introduction/'>Bootstrap Official Documentation</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=-qfEOE4vtxE'>Bootstrap CSS Framework - Full Course for Beginners</BadgeLink>

View File

@@ -3,7 +3,7 @@
Bulma is a free, open source framework that provides ready-to-use frontend components that you can easily combine to build responsive web interfaces.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://bulma.io/'>Bulma Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Framework Website' href='https://bulma.io/'>Bulma Website</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://youtube.com/playlist?list=PL4cUxeGkcC9iXItWKbaQxcyDT1u6E7a8a'>Bulma CSS Tutorial</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://scrimba.com/learn/bulma'>Learn Bulma CSS</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/how-to-build-a-responsive-blog-design-with-bulma-css-c2257a17c16b'>How To Build A ? Responsive Blog Design With Bulma CSS</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtube.com/playlist?list=PL4cUxeGkcC9iXItWKbaQxcyDT1u6E7a8a'>Bulma CSS Tutorial</BadgeLink>
<BadgeLink badgeText='Read' href='https://www.freecodecamp.org/news/how-to-build-a-responsive-blog-design-with-bulma-css-c2257a17c16b'>How To Build A ? Responsive Blog Design With Bulma CSS</BadgeLink>

View File

@@ -3,8 +3,8 @@
CSS Framework that provides atomic CSS classes to help you style components e.g. `flex`, `pt-4`, `text-center` and `rotate-90` that can be composed to build any design, directly in your markup.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://tailwindcss.com'>Tailwind Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.codemag.com/Article/2105091/Tailwind-CSS-An-Introduction'>Tailwind CSS: An Introduction</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/c/TailwindLabs/videos'>Official Screencasts</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=hdGsFpZ0J2E'>Should You Use Tailwind CSS?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=UBOj6rqRUME'>Tailwind CSS Crash Course</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Framework Website' href='https://tailwindcss.com'>Tailwind Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='YouTube Channel' href='https://www.youtube.com/c/TailwindLabs/videos'>Official Screencasts</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Watch' href='https://www.youtube.com/watch?v=hdGsFpZ0J2E'>Should You Use Tailwind CSS?</BadgeLink>
<BadgeLink badgeText='Read' href='https://www.codemag.com/Article/2105091/Tailwind-CSS-An-Introduction'>Tailwind CSS: An Introduction</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=UBOj6rqRUME'>Tailwind CSS Crash Course</BadgeLink>

View File

@@ -5,7 +5,7 @@ Chakra UI is a simple, modular and accessible component library that gives you t
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://chakra-ui.com/'>Chakra UI Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://chakra-ui.com/docs/getting-started'>Chakra UI Official Getting Started</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/why-should-you-start-using-chakraui/'>Why You Should Start Using Chakra UI</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://egghead.io/courses/build-a-modern-user-interface-with-chakra-ui-fac68106'>Build a Modern User Interface with Chakra UI</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/wI2vqXsjsIo'>Official Getting Started Video</BadgeLink>
<BadgeLink badgeText='Watch' href='https://youtu.be/s-bIsz-NR3c'>Chakra UI Crash Course</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/why-should-you-start-using-chakraui/'>Why You Should Start Using Chakra UI</BadgeLink>

View File

@@ -3,6 +3,6 @@
Material-UI is an open-source framework that features React components that implement Googles Material Design.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://mui.com/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://mui.com/getting-started/installation/'>Official Documentation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Framework Website' href='https://mui.com/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Docs' href='https://mui.com/getting-started/installation/'>Official Documentation</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=vyJU9efvUtQ'>Material UI React Tutorial</BadgeLink>

View File

@@ -3,5 +3,5 @@
An open-source UI component library for building high-quality, accessible design systems and web apps.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://www.radix-ui.com/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Framework Website' href='https://www.radix-ui.com/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://www.radix-ui.com/docs/primitives/overview/introduction'>Official Documentation</BadgeLink>

View File

@@ -1,8 +0,0 @@
# Mantine
Mantine is a React components library with more than 100 customizable components and 40 hooks to cover you in any situation.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://mantine.dev/'>Mantine Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://mantine.dev/guides/cra/'>Usage with Create React App</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://blog.logrocket.com/5-mantine-hooks-simplifying-ui-management-react/'>5 Mantine Hooks for UI management</BadgeLink>

View File

@@ -1,7 +0,0 @@
# Daisy UI
Component library around Tailwind CSS that comes with several built-in components.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://daisyui.com/'>DaisyUI Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://daisyui.com/docs/install/'>DaisyUI Documentation</BadgeLink>

View File

@@ -3,5 +3,5 @@
A CSS framework provides the user with a fully functional CSS stylesheet, allowing them to create a web page by simply coding the HTML with appropriate classes, structure, and IDs. Classes for popular website features like as the footer, slider, navigation bar, hamburger menu, column-based layouts, and so on are already included in the framework.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://en.wikipedia.org/wiki/CSS_framework'>CSS Frameworks Introduction</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://css-tricks.com/what-are-the-benefits-of-using-a-css-framework/'>What are the benefits of using a css framework</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Docs' href='https://en.wikipedia.org/wiki/CSS_framework'>CSS Frameworks Introduction</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Benefits' href='https://css-tricks.com/what-are-the-benefits-of-using-a-css-framework/'>What are the benefits of using a css framework</BadgeLink>

View File

@@ -3,4 +3,4 @@
The React Testing Library is a very lightweight solution for testing React components. It provides light utility functions on top of react-dom and react-dom/test-utils, in a way that encourages better testing practices. Its primary guiding principle is: The more your tests resemble the way your software is used, the more confidence they can give you.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://testing-library.com/docs/react-testing-library/intro/'>React Testing Library</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Getting Started' href='https://testing-library.com/docs/react-testing-library/intro/'>React Testing Library</BadgeLink>

Some files were not shown because too many files have changed in this diff Show More