Apps
daily.dev application suite
**apps** is a daily.dev application suite The project is written primarily in TypeScript, distributed under the GNU Affero General Public License v3.0 license, first published in 2020. Key topics include: daily, extension, nextjs, react, tailwindcss.
This monorepo contains daily.dev's application suite. The repo includes the web app and the extension, along with shared components for the two.
By using a monorepo approach, we can easily share code and maintain consistency across the different parts of the application suite.
The decision was made to allow faster iterations and to keep features parity in both platforms.
Technologies
- Node v24.14 (a
.nvmrcis presented for nvm users). - pnpm 10.33.4 for managing the monorepo and dependencies.
Projects
packages
contains a collection of smaller projects or libraries that are used across the daily.dev application suite. Here's a brief overview of each package mentioned:
-
eslint-config
Shared ESLint settings for maintaining consistent code quality across the project.
-
eslint-rules
A custom ESLint plugin that defines a set of rules for the project, including a rule to enforce consistent color usage.
-
extension
The browser extension project. Includes webpack configuration for browser extensions and the dedicated components just for the extension.
-
prettier-config
Shared Prettier settings for all the projects in this repo.
-
shared
The main project contains most of the components used in the applications. Every component that needs to be used on both platforms should be placed in this project. This includes the design system components, custom hooks, and many more.
-
storybook
The Storybook configuration for the project, used to develop and showcase UI components in isolation.
-
webapp
The web app project. This is a Next.js project and has more pages than the extension, such as a registration page, post page, profile page, etc. For more information click here.
Local Environment
To spin up a local environment, you will need Docker. Do the steps below and you should be able to start trying to center a div:
- Fork this repo
- Pull it locally
- Run
docker compose up - Once done, seed your local data by running
docker compose exec daily-api node ./bin/import - Then lastly, run npm run dev:oss
- The app should run at
http://localhost:5002/
Want to Help?
So you want to contribute to daily.dev app suite and make an impact, we are glad to hear it. :heart_eyes:
Before you proceed we have a few guidelines for contribution that will make everything much easier.
We would appreciate if you dedicate the time and read them carefully:
CONTRIBUTING.md
Bootstrap Project
After cloning the project, please make sure to run the following commands to bootstrap the project:
bashnvm use corepack enable corepack prepare pnpm@10.33.4 --activate pnpm install
Dependency Supply-Chain Hardening
This repo delays newly published package versions for seven days via minimumReleaseAge: 10080 in pnpm-workspace.yaml. Keep using the pinned pnpm version from package.json; older pnpm versions do not enforce this setting.
Keep pnpm-lock.yaml committed, use frozen-lockfile installs in CI, and avoid adding git or tarball dependencies unless they are reviewed explicitly. If an urgent dependency update must bypass the cooldown, add a temporary minimumReleaseAgeExclude entry in pnpm-workspace.yaml, review the package contents/provenance first, and remove the exception after the release ages out.
Run Extension Locally
Example for Chrome:
- Run
pnpm --filter extension devin the root directory - Open Chrome and go to
chrome://extensions/ - Enable
Developer modein the top right corner - Click on
Load unpackedand select thepackages/extension/dist/chromefolder - The extension should be loaded and you should be able to see it in the extensions list
- Enable the extension, don't forget to disable it when you are done
- Disable the production extension if you have it installed as it might cause conflicts
Contributors
Showing top 12 contributors by commit count.
