|
| 1 | +# Test the documentation |
| 2 | + |
| 3 | +``` |
| 4 | +git clone https://github.com/dailydotdev/docs.git |
| 5 | +``` |
| 6 | + |
| 7 | +Step into the directory: |
| 8 | +``` |
| 9 | +cd docs |
| 10 | +``` |
| 11 | + |
| 12 | +Install the depndencies |
| 13 | +``` |
| 14 | +npm i |
| 15 | +``` |
| 16 | +if you use yarn, you can alternatively just type 'yarn' |
| 17 | + |
| 18 | +Run the local dev environment |
| 19 | +``` |
| 20 | +npm run start |
| 21 | +``` |
| 22 | +if you use yarn, you can use 'yarn start' |
| 23 | + |
| 24 | +visit |
| 25 | +``` |
| 26 | +http://localhost:3000 |
| 27 | +``` |
| 28 | + |
| 29 | +<div align="center"> |
| 30 | + <img src="assets/logo.png" alt="Daily Logo" width="150"> |
| 31 | + <h1>Welcome to the daily.dev Documentation repository</h1> |
| 32 | + <strong>The latest dev news delivered to your new tab 👩🏽💻</strong> |
| 33 | + <h6>Made with ❤️ by developers for developers</h6> |
| 34 | +</div> |
| 35 | +<br> |
| 36 | + |
| 37 | + |
| 38 | +<p align="center"> |
| 39 | + <a href="https://chrome.google.com/webstore/detail/daily-20-source-for-busy/jlmpjdjjbgclbocgajdjefcidcncaied"> |
| 40 | + <img src="https://img.shields.io/chrome-web-store/users/jlmpjdjjbgclbocgajdjefcidcncaied?color=EA4335&logo=google-chrome&logoColor=white" alt="Chrome Web Store users"> |
| 41 | + </a> |
| 42 | + |
| 43 | + <a href="https://addons.mozilla.org/en-US/firefox/addon/daily/"> |
| 44 | + <img src="https://img.shields.io/amo/users/daily?color=orange&logo=mozilla" alt="Mozilla Web Store users"> |
| 45 | + </a> |
| 46 | + |
| 47 | + <a href="https://twitter.com/dailydotdev"> |
| 48 | + <img src="https://img.shields.io/twitter/follow/dailydotdev?color=26A0ED&label=Follow&logo=twitter&logoColor=white&style=flat" alt="Twitter"> |
| 49 | + </a> |
| 50 | + |
| 51 | + <a href="https://storybook.daily.dev"> |
| 52 | + <img src="https://img.shields.io/badge/%20-storybook-502ab0?logo=storybook&logoColor=white" alt="Storybook"> |
| 53 | + </a> |
| 54 | + |
| 55 | +</p> |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | + |
| 60 | +## 🗞 daily.dev |
| 61 | + |
| 62 | +> daily.dev is an open-source browser extension that helps developers stay updated with the latest programming news 👩💻 |
| 63 | +
|
| 64 | +It collects and ranks articles from hundreds of unique publications to help developers stay updated with the latest tech news. You can bookmark posts, sync your data across devices, and read later whenever you want. It works offline and has a progressive web app (PWA) for mobile. |
| 65 | + |
| 66 | +At daily.dev we care about: |
| 67 | + |
| 68 | +* 🌟 **Maintenance**: We are working continuously to introduce new features, fix bugs, and improve user experience — 40+ releases on average in a year. |
| 69 | +* ♾ **Being relevant**: daily.dev's article feed is constantly updated. Discover brand-new content as soon as it is published. |
| 70 | +* 🧵 **Open-source**: daily.dev is completely open-source. We believe in transparency and giving back to the community, so we decided to publish the source code to GitHub. Suggest a feature, report a bug, or even contribute. Everyone is welcome! |
| 71 | + |
| 72 | +<p align="center"> |
| 73 | + <img src="assets/daily-cover-photo.png" alt="daily.dev" width="550"> |
| 74 | + <br> |
| 75 | + <a href="https://www.youtube.com/watch?v=Oso6dYXw5lc"><strong>📺 Watch Intro Video → </strong></a> |
| 76 | +</p> |
| 77 | + |
| 78 | +## 📌 Get daily.dev |
| 79 | + |
| 80 | +daily.dev is currently available for Google Chrome, Microsoft Edge, and Firefox. There's also a progressive web app (PWA) for mobile devices. Get it now on: |
| 81 | + |
| 82 | +<p align="center"> |
| 83 | + <a href="https://r.daily.dev/chrome"> |
| 84 | + <img src="https://img.shields.io/badge/%20-Chrome-red?logo=google-chrome&logoColor=white" alt="Download for Chrome" /> |
| 85 | + </a> |
| 86 | + <a href="https://microsoftedge.microsoft.com/addons/detail/dailydev-news-for-busy/cbdhgldgiancdheindpekpcbkccpjaeb"> |
| 87 | + <img src="https://img.shields.io/badge/%20-Edge-blue?logo=microsoft-edge&logoColor=white" alt="Download for Edge" /> |
| 88 | + </a> |
| 89 | + <a href="https://addons.mozilla.org/en-US/firefox/addon/daily/"> |
| 90 | + <img src="https://img.shields.io/badge/%20-Firefox-orange?logo=mozilla&logoColor=white" alt="Download for Firefox" /> |
| 91 | + </a> |
| 92 | + <a href="http://go.daily.dev/"> |
| 93 | + <img src="https://img.shields.io/badge/%20-Mobile-502ab0" alt="Download for Mobile" /> |
| 94 | + </a> |
| 95 | +</p> |
| 96 | + |
| 97 | +## 📯 Philosophy |
| 98 | + |
| 99 | +We, as developers, spend a lot of time looking for valuable articles and blog posts. We believe that searching for content isn't a thing developers should do anymore. It's hard to catch up with all the latest happenings — coz it's spread on so many blogs and consumes tons of time. |
| 100 | + |
| 101 | +That's why we built daily.dev, to help you: |
| 102 | + |
| 103 | +* 👨💻 Stay up-to-date |
| 104 | +* 🕒 Save time |
| 105 | +* 📰 Discover articles in one click |
| 106 | + |
| 107 | +## 🌲 daily.dev Projects |
| 108 | + |
| 109 | +daily.dev might look simple on the surface but actually, it is powered by a complex and robust system of different applications. It contains several services, some are big, others are micro and easy to maintain. Below is the list of different projects that we maintain under daily.dev. |
| 110 | + |
| 111 | +### 🙌 Community & Docs |
| 112 | + |
| 113 | +* [daily](https://github.com/dailydotdev/daily) - This is the repository you are currently at. It serves as a central place for all the projects. It contains documentation, community ideas, suggestions, and whatnot. |
| 114 | + |
| 115 | + |
| 116 | +### 🎨 Frontend |
| 117 | + |
| 118 | +* [apps](https://github.com/dailydotdev/apps) - Monorepo with all the frontend related projects since daily.dev 3.0. This includes both the extension and the webapp. |
| 119 | + |
| 120 | +### 🏗 Backend |
| 121 | + |
| 122 | +* [daily-api](https://github.com/dailydotdev/daily-api) - A monolith API service, being slowly split apart to different services. It manages content-related data such as posts, feeds, tags, etc. |
| 123 | +* [daily-gateway](https://github.com/dailydotdev/daily-gateway) - API gateway which receives all traffic and forwards it to the relevant services after authenticating and authorizing the request. |
| 124 | +* [daily-monetization](https://github.com/dailydotdev/daily-monetization) - Serving ads from different providers including CodeFund, BuySellAds and self-hosted campaigns. |
| 125 | +* [daily-scraper](https://github.com/dailydotdev/daily-scraper) - Scraping webpages for relevant information. |
| 126 | +* [daily-functions](https://github.com/dailydotdev/daily-functions) - Monorepo with Cloud Functions which mostly take care of ingesting new content but also web push and others. |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | +## 🏛 Architecture |
| 131 | + |
| 132 | +<p align="center"> |
| 133 | + <img src="assets/overview.svg" alt="Daily architecture" width="700"> |
| 134 | +</p> |
| 135 | + |
| 136 | + |
| 137 | +## 🗂 Tech Stack |
| 138 | + |
| 139 | +Below is a list of technologies we use at daily.dev. |
| 140 | + |
| 141 | +* 🎨 **Frontend:** Preact |
| 142 | +* 🌳 **Services:** Node.js & Golang |
| 143 | +* ☁️ **Cloud:** Google Cloud Platform Pub/Sub | SQL | Serverless |
| 144 | +* ♾ **CI/CD:** CircleCI |
| 145 | +* 🎩 **Deployment:** Pulumi |
| 146 | +* 🎛 **Data Feed:** Superfeedr |
| 147 | +* 📨 **Email Service:** SendGrid |
| 148 | +* 🚨 **Push Notifications:** OneSignal |
| 149 | + |
| 150 | + |
| 151 | +## 🚀 Running daily.dev Locally |
| 152 | + |
| 153 | +Let's setup daily.dev locally. First you need to setup the services required to run the daily.dev applications, then you can run the application you want. Follow up the setups below to quickly get started. |
| 154 | + |
| 155 | +## ⚙️ Setting Up Daily Services |
| 156 | + |
| 157 | +### → STEP #0 |
| 158 | + |
| 159 | +* Go through the [projects description](#-daily-projects) and [the architecture](#-architecture) to familiarize yourself with the system and its components. |
| 160 | +* Make sure docker-compose is installed on your machine. Take a look at the [official guide](https://docs.docker.com/compose/install/) for installation. After installation, run the following command in your terminal for a double check. |
| 161 | + |
| 162 | +```sh |
| 163 | +docker-compose -v |
| 164 | +# docker-compose version 1.29.2, build 5becea4c // Expected result |
| 165 | +``` |
| 166 | + |
| 167 | +### → STEP #1 |
| 168 | + |
| 169 | +Clone the [apps](https://github.com/dailydotdev/apps) repo. |
| 170 | + |
| 171 | +### → STEP #2 |
| 172 | + |
| 173 | +> Daily services are fully dockerized and publicly available on a Google Cloud Registry (GCR) repository. We are going to use them! |
| 174 | +
|
| 175 | +The first step is to **pull and run the docker images**, thanks to docker-compose network and environment variables are preconfigured and ready-to-go. |
| 176 | + |
| 177 | +Navigate to the cloned repository and make sure Docker is running on your machine. After that run the following command to run all daily services: |
| 178 | + |
| 179 | +```sh |
| 180 | +docker-compose pull && docker-compose up |
| 181 | +``` |
| 182 | + |
| 183 | +The command will take a while depending upon your internet speed. |
| 184 | + |
| 185 | +### → STEP #3 |
| 186 | + |
| 187 | +Now we need to apply the migrations on our databases so they will have the latest schema: |
| 188 | + |
| 189 | +```sh |
| 190 | +docker exec apps_daily-api_1 node ./node_modules/typeorm/cli.js migration:run |
| 191 | + |
| 192 | +# ... // Expected result |
| 193 | +# Migration PostToc1623847855158 has been executed successfully. |
| 194 | +# query: COMMIT |
| 195 | + |
| 196 | +docker exec apps_daily-gateway_1 yarn run db:migrate:latest |
| 197 | + |
| 198 | +# Using environment: development // Expected result |
| 199 | +# Batch 1 run: 23 migrations |
| 200 | +# Done in 1.57s. |
| 201 | +``` |
| 202 | + |
| 203 | +### → STEP #4 |
| 204 | + |
| 205 | +The last step is to populate your database using the seed data. All you need to do is, run the following command in your terminal: |
| 206 | + |
| 207 | +```sh |
| 208 | +docker exec apps_daily-api_1 node bin/import.js |
| 209 | + |
| 210 | +# importing Source // Expected result |
| 211 | +# importing Post |
| 212 | +# importing Keyword |
| 213 | +# importing PostKeyword |
| 214 | +# done |
| 215 | +``` |
| 216 | + |
| 217 | + |
| 218 | +That's it! 🥂 |
| 219 | + |
| 220 | +Now you have all the required services running. Each project's repo explains what services are needed and how to get started with them. |
| 221 | + |
| 222 | +> Note that currently, not all services are ready (or needed) for local environment so Daily Redirector and Daily Monetization services are not available for you. |
| 223 | +> |
| 224 | +> It means that if you click on an article you will get error 404 and that you will not see ads on your local environment. |
| 225 | +
|
| 226 | +## 🎨 Setting Up Daily Apps |
| 227 | + |
| 228 | +Now, let's quickly set up daily.dev apps. |
| 229 | + |
| 230 | +### → STEP #1 |
| 231 | + |
| 232 | +Run the following commands in your terminal to bootstrap. |
| 233 | + |
| 234 | +Yes, we use `lerna` for this purpose. |
| 235 | + |
| 236 | +```sh |
| 237 | +npm i -g lerna |
| 238 | +lerna bootstrap |
| 239 | + |
| 240 | +# ... // Expected result |
| 241 | +# lerna success Bootstrapped 5 packages |
| 242 | +``` |
| 243 | +### → STEP #2 |
| 244 | + |
| 245 | +Go to `packages/webapp` in the `apps` folder. Run the following command to start the webapp in development mode. It will watch for all the file changes. |
| 246 | + |
| 247 | +```sh |
| 248 | +npm run dev |
| 249 | +``` |
| 250 | +### → STEP #3 |
| 251 | + |
| 252 | +Go to `packages/extension` in the `apps` folder. Run the following command to start the extension in development mode. It will watch for all the file changes and generate the output in `dist` folder. |
| 253 | + |
| 254 | +```sh |
| 255 | +npm run dev:chrome |
| 256 | +``` |
| 257 | +### → STEP #4 |
| 258 | + |
| 259 | +By now, you will have unpacked daily.dev extension in your `dist` folder. Follow the steps listed below to load the extension. |
| 260 | + |
| 261 | +1. Go to `chrome://extensions` path in your Chrome browser. |
| 262 | +2. Enable `Developer mode` from the top right section. |
| 263 | +3. Click on `Load Unpack` button and select your `dist` folder. |
| 264 | + |
| 265 | +That's it! Your extension has been loaded in your browser. Happy hacking! ✌️ |
| 266 | + |
| 267 | +## 🙌 Want to Contribute? |
| 268 | + |
| 269 | +We are open to all kinds of contributions. If you want to: |
| 270 | +* 🤔 Suggest a feature |
| 271 | +* 🐛 Report an issue |
| 272 | +* 📖 Improve documentation |
| 273 | +* 👨💻 Contribute to the code |
| 274 | + |
| 275 | +You are more than welcome. Before contributing, kindly check our [guidelines](https://github.com/dailydotdev/.github/blob/master/CONTRIBUTING.md). |
| 276 | + |
| 277 | +## 🤔 FAQs |
| 278 | + |
| 279 | +We have compiled a list of FAQs. You can find it [here](https://daily.dev/support). |
| 280 | + |
| 281 | +## 🎩 Core Team |
| 282 | + |
| 283 | +Meet the core team of daily.dev: |
| 284 | +* [@idoshamun](https://twitter.com/idoshamun) |
| 285 | +* [@nimrodkramer](https://twitter.com/NimrodKramer) |
| 286 | +* [@tsahimatsliah](https://twitter.com/TsahiMatsliah) |
| 287 | + |
| 288 | +Feel free to reach us out and say hi 👋. |
| 289 | + |
| 290 | + |
| 291 | +## 💬 What Do You Think of daily.dev? |
| 292 | + |
| 293 | +<div align="left"> |
| 294 | + <p><a href="https://twitter.com/dailydotdev/"><img alt="Twitter @dailydotdev" align="center" src="https://img.shields.io/badge/twitter-%231DA1F2.svg?&style=for-the-badge&logo=twitter&logoColor=white" /></a> Tweet us @dailydotdev to share your thoughts and stay up-to-date. </p> |
| 295 | + <p><a href="https://facebook.com/dailydotdev/"><img alt="Facebook @dailydotdev" align="center" src="https://img.shields.io/badge/facebook-%231877F2.svg?&style=for-the-badge&logo=facebook&logoColor=white" /></a> Like us to know what's happening at daily.dev and share your reviews.</p> |
| 296 | + <p><a href="https://www.producthunt.com/posts/daily-dev"><img alt="daily.dev at ProductHunt" align="center" src="https://img.shields.io/badge/producthunt-%23DA552F.svg?&style=for-the-badge&logo=product-hunt&logoColor=white" /></a> Checkout our ProductHunt page and let us know what you think.</p> |
| 297 | + <p><a href="https://daily.dev"><img alt="daily.dev Website" align="center" src="https://img.shields.io/badge/Daily Website-%233693F3.svg?&style=for-the-badge&logo=icloud&logoColor=white" /></a> Visit our home for all useful links.</p> |
| 298 | + <p><a href="https://chrome.google.com/webstore/detail/daily-20-source-for-busy/jlmpjdjjbgclbocgajdjefcidcncaied"><img alt="daily.dev at ChomeStore" align="center" src="https://img.shields.io/badge/Chrome Web Store-%234285F4.svg?&style=for-the-badge&logo=google-chrome&logoColor=white" /></a> See our Chrome Store page to grab the extension or share your feedback.</p> |
| 299 | + <p><a href="https://microsoftedge.microsoft.com/addons/detail/dailydev-news-for-busy/cbdhgldgiancdheindpekpcbkccpjaeb"><img alt="daily.dev at EdgeAddons" align="center" src="https://img.shields.io/badge/Edge Addons-%230078D7.svg?&style=for-the-badge&logo=microsoft-edge&logoColor=white" /></a> Check us out on Microsoft Edge Addons and let us know your thoughts.</p> |
| 300 | + <p><a href="https://addons.mozilla.org/en-US/firefox/addon/daily/"><img alt="daily.dev at Firefox" align="center" src="https://img.shields.io/badge/Firefox Addons-%23FF7139.svg?&style=for-the-badge&logo=firefox-browser&logoColor=white" /></a> Check our Firefox Add-on and share your thoughts.</p> |
| 301 | +</div> |
| 302 | + |
| 303 | + |
| 304 | +## 📑 License |
| 305 | +Licensed under [AGPL-3.0](https://github.com/dailydotdev/daily/blob/master/LICENSE). |
0 commit comments