/daily

daily.dev is a professional network for developers to learn, collaborate, and grow together 👩🏽‍💻 👨‍💻

GNU Affero General Public License v3.0AGPL-3.0

daily.dev Logo

Welcome to the daily.dev repository

The professional network for developers


Chrome Web Store users Mozilla Web Store users Twitter

Open in Gitpod

💜 About daily.dev

daily.dev is a professional network for developers to learn, collaborate, and grow together 👩‍💻

With daily.dev you can discover a wide variety of professional knowledge, create groups where you can collaborate with other developers you appreciate, and discuss the latest trends in the developer ecosystem. It works offline and is available both as a browser extension and as a Progressive Web App (PWA).

daily.dev cover
👀 Watch it in action →

📌 Get daily.dev

daily.dev is currently available for Google Chrome, Microsoft Edge, and Mozilla Firefox. There's also a PWA for mobile devices.

Get it now on:

Download for Chrome Download for Edge Download for Firefox Download for Mobile

📯 Philosophy

We recognize that developers today have the greatest power as a professional group to drive change and affect lives of billions. There are many platforms that provide developers with tools that serve to their success, or the goals of their workplace, but daily.dev is by-design for developers themselves.

We, as developers, know how challenging it is to grow professionally with so much going on, and that's why we built daily.dev - to make it easy for us to navigate abundance of content and discover all the knowledge they need with zero effort.

You can use daily.dev to:

  • 👨‍💻 Learn and stay up-to-date
  • 🙌 Interact based on the latest trends in our ecosystem
  • 🚀 Collaborate with other developers you know and appreciate

🌲 daily.dev projects

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.

🙌 Community & Docs

  • 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.

  • docs - This is the repository for official product documentation of daily.dev.

🎨 Frontend

  • apps - Monorepo with all the frontend related projects since daily.dev 3.0. This includes both the extension and the webapp.

🎈 Others

🚀 Running daily.dev locally

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.

⚙️ Setting Up Daily Services

You can go the easy way by using Gitpod or follow the instructions below.

→ STEP #0

  • Make sure docker-compose is installed on your machine. Take a look at the official guide for installation. After installation, run the following command in your terminal for a double check.
docker compose version
# Docker Compose version v2.10.0 // Expected result

→ STEP #1

Clone the apps repo.

→ STEP #2

daily.dev services are fully dockerized and publicly available on a Google Cloud Registry (GCR) repository. We are going to use them!

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.

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:

docker compose pull && docker compose up

The command will take a while depending on your internet speed.

→ STEP #3

Now we need to apply the migrations on our databases so they will have the latest schema:

docker exec apps-daily-api-1 node ./node_modules/typeorm/cli.js migration:run -d src/data-source.js

# ... // Expected result
# Migration PostToc1623847855158 has been executed successfully.
# query: COMMIT

→ STEP #4

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:

docker exec apps-daily-api-1 node bin/import.js

# importing Source              // Expected result
# importing Post
# importing Keyword
# importing PostKeyword
# done

That's it! 🍻

Now, you have all the required services running. Each project's repo explains what services are needed and how to get started with them.

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.

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.

🎨 Setting Up Daily Apps

Now, let's quickly set up daily.dev apps.

→ STEP #1

Run the following commands in your terminal to bootstrap.

Yes, we use lerna for this purpose.

npm i -g lerna
lerna bootstrap

# ...     // Expected result
# lerna success Bootstrapped 5 packages

→ STEP #2

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.

npm run dev

→ STEP #3

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.

npm run dev:chrome

→ STEP #4

By now, you will have unpacked daily.dev extension in your dist folder. Follow the steps listed below to load the extension.

  1. Go to chrome://extensions path in your Chrome browser.
  2. Enable Developer mode from the top right section.
  3. Click on Load Unpack button and select your dist folder.

That's it! Your extension has been loaded in your browser. Happy hacking! ✌️

🙌 Want to contribute?

We are open to all kinds of contributions. If you want to:

  • 🤔 Suggest a feature
  • 🐛 Report an issue
  • 📖 Improve documentation
  • 👨‍💻 Contribute to the code

You are more than welcome. Before contributing, kindly check our guidelines.

🧳 Careers

We are always looking for talent. You can find all open positions here

💬 What do you think of daily.dev?

Twitter @dailydotdev  Tweet us @dailydotdev to share your thoughts and stay up-to-date.

daily.dev at ProductHunt  Check out our Product Hunt page.

daily.dev Website  Visit our home for a bunch of useful links.

daily.dev at ChomeStore  See our Chrome Store page to grab the extension or share your feedback.

daily.dev at Firefox  Check our Firefox Add-on and share your thoughts.

daily.dev at EdgeAddons  Check us out on Microsoft Edge Addons and let us know your thoughts.

📑 License

Licensed under AGPL-3.0.