## Navigating Polkdot's Opensource Stack
---
## Agenda
- An overview of the most important repositories on Polkadot
- An update on where to find documentation for these Polkadot projects
- How to approach a problem in Polkadot (hint: Read code!)
- How to start contributing
- Where to reach out!
---
### The Heart of Polkadot - `polkadot-sdk`
- Used to be three repositories, now is a monorepo
- Includes Substrate, Cumulus, and Polkadot.
- Does **not** include ink! (for now...)
---
## The "Levels" of Polkadot
### It's a lot like a tall building...
---
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'fontFamily': 'Unbounded',
'primaryColor': '#E6007A',
'fontSize': '16px',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#140523',
'secondaryColor': '#552BBF',
'tertiaryColor': '#fff'
}
}
}%%
flowchart LR
subgraph LOW["CONTENT"]
ART["Articles"]
WIK["Wiki"]
DOC["Documentation"]
TUT["Tutorials"]
end
subgraph LOWER["APPS"]
SOCIAL["Subsocial (onchain social media)"]
POLKA_ASSEMB["Polkassembly"]
WALLETS["Wallets"]
end
subgraph DEV["Developer Tooling & Libraries"]
SUBXT["SubXT"]
PJS["Polkadot JS"]
end
subgraph MIDDLE["Pallets & Runtimes"]
PARACHAINS["Parachains"]
PAL["Pallets"]
INK["ink!"]
EVM["Solidity"]
end
subgraph TOP["Protocol Level (Polkadot)"]
DOT["Polkadot"]
SUB["Substrate"]
FRA["FRAME"]
PAR["Cumulus"]
end
```
---
# Polkadot is OSS.
### Contributions are important, from READMEs to core protocol changes.
---
#### Don't forget about these!
- `Polkadot JS` - Javascript/Typescript library
- `subxt` - Rust client library for Substrate based chains
---
#### And these! (templates galore)
---
<sup>Before contributing, it may help to build something first!</sup>
- `substrate-node-template` - Solo chain template
- `extended-parachain-template` - Extended parachain template (Cumulus)
- `frontier` - EVM compatible chain
---
*(from [Build - Polkadot Wiki](https://wiki.polkadot.network/docs/build-guide))*
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'fontFamily': 'Unbounded',
'primaryColor': '#E6007A',
'fontSize': '16px',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#140523',
'secondaryColor': '#552BBF',
'tertiaryColor': '#fff'
}
}
}%%
flowchart TB
subgraph PL ["Protocol Side (Parachains, Smart Contracts)"]
subgraph SCD ["Smart Contract Development"]
direction LR
SC["Use Smart Contract Parachain"]
SC --> ink!
SC --> Solidity
end
subgraph PSL ["Build a Blockchain"]
direction LR
PS["Polkadot SDK"] --> R[WASM Runtime - Substrate & FRAME]
R -->Parachain["Parachain"]-->SSC["Shared Security - Cumulus"]
R -->SoloChain[Solo Chain]-->NSS["No Shared Security"]
end
end
PL-->| Develop apps| CS
subgraph CS ["Client Side (dApps/uApps)"]
UA[UApp - Smoldot]
UA --> PAPI[Polkadot API]
UA --> PJS[Polkadot JS]
UA --> SubXT
SubXT
end
```
---
- **Protocol Layer** - core development, often touches deeper compsci issues.
- **Pallets & Runtimes** - Business logic of chains, sometimes includes things like Frontier.
- **Developer tooling & libraries** - ways to *consume* the above.
- **Apps** - User-land/facing applications, web apps that use the above!
- **Content** - Explainations, tutorials, demonstrative examples
---
## How do I contribute?
---
Mentor issues on the `polkadot-sdk`:

---
- Great place to start if you have a strong Rust background
- Diverse set of tasks - from docs, to core development.
- Get to know the core protocol - a very involved one at that!
- Learn from the engineers themselves.
---
There is lots of oppurtunity in OSS, take advantage of it!
- To learn more about the core protocol and its various concepts, explore the [Rust docs.](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html)
---
If you want to be well informed, GitHub is the best place to be for a developer.
---
Don't know Rust well? No problem!
Contributing takes many forms...
---
Build something cool, and write about it.
Post on places like Hackernoon or Medium, then on Twitter and the Polkadot Forum.
---
### Inspiration: Take a look at existing dApps/parachains.
---
## Don't forget about Polkadot's parachains, either!
#### If a parachain "speaks" to you, look to contributing to it!
---
The Polkadot Wiki could use _you!_
- See something unclear or outdated? **Please** make a PR!
- Have an idea for a new section, or something to improve development experience? Create an issue!
---
## Reaching out for help
---
- Create GitHub issues if needed (with caution, of course)
- If you're working on a mentor issue (or really any) you probably be in touch with the maintainers for that code.
- If you have a deeper proposed change that you wish to discuss, take to the forum.
---
## :fork_and_knife: Happy Contributing!
You can find me on via:
- [GitHub - `CrackTheCode016`](https://github.com/CrackTheCode016)
- [Twitter/X - `baderyo_o`](https://twitter.com/baderyo_o)
- Discord - `.badery`
{"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"22ed08ca-5c11-4b15-a8e6-a0991cde1f3f\",\"add\":6333,\"del\":676}]","title":"Navigating Polkadot's Opensource Stack"}