Thank you for your interest in Buildog and your willingness to contribute!
Recognizing the challenges bloggers face in managing their content, we’re committed to making the process smoother and more efficient. We are building this tool to provide bloggers with an intuitive platform to streamline their blogging workflow.
To get started, it’s helpful to understand what Buildog is and how it operates:
-
What is buildog?: Buildog is a web-based application designed to help bloggers write, schedule, and publish their content efficiently. It aims to streamline the blogging process and provide valuable insights into content performance.
-
How Buildog Works?: This section provides a high-level overview of Buildog's functionality and user interface. It outlines the key features and components that you’ll interact with, offering insight into how the application supports your tasks and workflows. It’s a great starting point to understand how to navigate and utilize Buildog effectively.
You will need to install and configure the following dependencies on your machine to build Buildog:
- Git
- Node.js v18.x (LTS)
- pnpm version 8.x.x
This repo uses Turborepo.
To contribute code to Buildog, you must fork the Buildog repo.
- Clone your GitHub forked repo:
git clone https://github.com/<github_username>/buildog.git
- Go to the Buildog directory:
cd buildog
- Install the dependencies in the root of the repo.
pnpm install # install dependencies
- After that you can run the apps simultaneously with the following.
pnpm dev
Directory | Description | Local development server |
---|---|---|
/apps/buildog |
The main web application. | http://localhost:3000 |
/apps/api |
The main backend application. | http://localhost:3010 |
/apps/docs |
The main documentation. | http://localhost:8080 |
Environment variables documentation includes instructions on how to set up Firebase and the database for Buildog. Providing environment variables documentation is highly recommended to getting started. Firebase - How to setup Firebase Database - How to setup Database
The monorepo has a set of shared components under /packages:
/packages/ui
: shadcn/ui components./packages/typescript-config
: Shared Typescript settings/packages/eslint-config
: Shared eslint settings
Use the pre-made script:
pnpm ui:add <shadcn/ui-component-name>
This works just like the add command in the
shadcn/ui
CLI.
Installing a package with pnpm workspaces requires you to add the --filter
flag to tell pnpm which workspace you want to install into. Do not install dependencies in their local folder, install them from the route using the --filter flag.
pnpm add <package> --filter <workspace>
pnpm uninstall <package> --filter <workspace>
For example:
pnpm add react --filter ./apps/buildog
installs into ./apps/buildog
After making any changes, open a pull request. Once your PR has been merged, you will be proudly listed as a contributor.