Slide 1

Slide 1 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Notion RSS Reader 1 with TypeScript + esbuild + GitHub Actions + Notion as OSS 2022/02/17 English Tech LT Jam Tsuyoshi Hirosawa(@watsuyo) from iCARE Co., Ltd.

Slide 2

Slide 2 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 I published today's presentation documents. Please check my Tweet!👉 @watsuyo_2 2

Slide 3

Slide 3 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Agenda 1. Why did I select Notion to develop "Notion RSS Reader"? 2. "esbuild" is 40 times faster than "webpack". 3. Use GitHub Actions as a crawler to get articles. 4. How to release OSS, "Notion RSS Reader" 3

Slide 4

Slide 4 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Introduce Twitter: @watsuyo_2 GitHub: @watsuyo Home: watsuyo.dev Front-end Developer @iCARE Co., Ltd. Advanced Institute of Industrial Technology (産業技術大学院大学) 2021年4月~ 4

Slide 5

Slide 5 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Are you interested in Notion as an RSS reader😊? 5

Slide 6

Slide 6 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 What is "Notion RSS Reader"? 6

Slide 7

Slide 7 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 What is "Notion RSS Reader"? ● Current features ○ "Notion RSS Reader" allows you to check updates of your favorite sites to Notion. ○ You can freely decide the interval to get articles (default is once every an hour). ● Roadmap ○ Feedly and Pocket integration. ○ etc… 7

Slide 8

Slide 8 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Thanks for the response to the release! 8

Slide 9

Slide 9 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Why did I select Notion to develop "Notion RSS Reader"? 9

Slide 10

Slide 10 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Why did I select Notion to develop "Notion RSS Reader"? ● No need to make UI. ● I could implement an idea at a low cost ● I could try it right away. 10

Slide 11

Slide 11 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Tech details 11

Slide 12

Slide 12 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Tech Stack ● Node.js ● TypeScript ● esbuild ● Notion API ● GitHub Actions 12

Slide 13

Slide 13 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Getting RSS articles 13

Slide 14

Slide 14 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Getting RSS articles ● What is RSS? ○ "A web feed that allows users and applications to access updates to websites in a standardized, computer-readable format."[1] ● Using "rss-parser" with TypeScript ○ "rss-parser" : https://github.com/rbren/rss-parser ○ For details👇 14

Slide 15

Slide 15 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 esbuild vs webpack5 15

Slide 16

Slide 16 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 esbuild vs webpack5 Done in 0.34sec Done in 13.81sec esbuild webpack 16

Slide 17

Slide 17 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Done in 0.34sec Done in 13.81sec esbuild webpack Win 🎉 17 esbuild vs webpack5

Slide 18

Slide 18 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Why is "esbuild" so fast? ● "It's written in Go and compiles to native code." ● "Parallelism is used heavily." ● "Memory is used efficiently." Reference: https://esbuild.github.io/faq/#why-is-esbuild-fast[2] 18

Slide 19

Slide 19 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Use GitHub Actions as a "crawler" to get articles. 19

Slide 20

Slide 20 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Use GitHub Actions as a "crawler" to get articles. ● GitHub Actions ○ "Easy to automate all your software workflows, now with world-class CI/CD". ○ "Kick off workflows with GitHub events like push, issue creation, or a new release". ○ "Public branch use is free, private branch use based on quantity". Reference: https://github.com/features/actions 20

Slide 21

Slide 21 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Use GitHub Actions as a "crawler" to get articles. ● You need to set environment variables that can be used within GitHub Actions. ○ Send a GET request with Curl. ○ Set script to be run once an hour. 21

Slide 22

Slide 22 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 "Notion RSS Reader" to the public as OSS. 22

Slide 23

Slide 23 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 "Notion RSS Reader" to the public as OSS. ● Specify license information. ○ "The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties." [3] ● Describe how to use and contribute to the tool a README. ○ Communicate the use of the tool to users who visit the repository. ○ In the case of OSS, you will be developing together with other contributors. ○ For this reason, it is important to describe how to create the development environment. 23

Slide 24

Slide 24 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Specify license information. ● Just sign the template on GitHub. ● This time, select MIT license. ○ Allows free use, reproduction, and redistribution. ○ "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software"[4] ○ Unless intentionally removed, the author's name and license file will remain in the source, so there is no need to do anything special. 24

Slide 25

Slide 25 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Agenda 1. Why with Notion? 2. When I switched to "esbuild", the build speed has been 40 times faster than "webpack5". 3. Use GitHub Actions as a "crawler" to get articles. 4. How to release "Notion RSS Reader" as OSS 25

Slide 26

Slide 26 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 References. 26

Slide 27

Slide 27 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 References. [1] "RSS - Wikipedia", https://en.wikipedia.org/wiki/RSS Feb, 17, 2022 [2] "Why is esbuild fast?", https://esbuild.github.io/faq/#why-is-esbuild-fast Feb, 17, 2022 [3] "The Open Source Definition", Debian Free Software Guidelines (DFSG), 22, 2007, https://opensource.org/docs/osd Feb, 17, 2022 [4] "The MIT License", MIT, 22, 2007, https://opensource.org/licenses/MIT Feb, 17, 2022 27

Slide 28

Slide 28 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Any questions? 28

Slide 29

Slide 29 text

Notion RSS Reader🎁: https://github.com/watsuyo/notion-rss-reader Twitter: @watsuyo_2 Thank you very much! 29