Skip to content

Conversation

@DVidal1205
Copy link
Contributor

@DVidal1205 DVidal1205 commented Feb 8, 2026

Why

Our docs weren't the best on Notion. They were also gatekept, and closed source, making OSS devs on Forge frustrated.

What

Issue(s): #346

Adds the docs we definitely totally already had on Notion ( 💀 ) to ./docs folder for public access! Details both Dev Team and non-team member contribution practices and common gotchas.

Test Plan

Read the docs... I guess

Checklist

  • Database: No schema changes, OR I have contacted the Development Lead to run db:push before merging
  • Environment Variables: No environment variables changed, OR I have contacted the Development Lead to modify them on Coolify BEFORE merging.

Summary by CodeRabbit

  • Documentation
    • Added Getting Started, API & Permissions, Architecture, and GitHub etiquette guides; README now links to the docs.
  • Improvements
    • Increased profile picture URL capacity to support longer image paths.
  • Chores
    • CI guidance now requires a successful build before merging.
    • Added developer scripts to support pulling and bootstrapping the database.

@DVidal1205 DVidal1205 self-assigned this Feb 8, 2026
@DVidal1205 DVidal1205 requested a review from a team as a code owner February 8, 2026 04:38
@DVidal1205 DVidal1205 added Documentation Improvements or additions to documentation Minor Small change - 1 reviewer required Global Change modifies code for the entire repository labels Feb 8, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 8, 2026

📝 Walkthrough

Walkthrough

Adds four new documentation guides (Getting Started, Architecture, API & Permissions, GitHub Etiquette); updates README.md and CONTRIBUTING.md (adds Getting Started link and CI build requirement pnpm build); adds two npm scripts (db:pull, db:bootstrap); increases Member.profilePictureUrl length to 512 in DB schema.

Changes

Cohort / File(s) Summary
Documentation
docs/GETTING-STARTED.md, docs/ARCHITECTURE.md, docs/API-AND-PERMISSIONS.md, docs/GITHUB-ETIQUETTE.md
Adds four comprehensive docs: local setup, monorepo architecture, tRPC API & permissions patterns, and GitHub etiquette / PR workflows.
README & Contributing Updates
README.md, CONTRIBUTING.md
Inserted Getting Started link into README.md; added CI requirement to CONTRIBUTING.md stating the repo must build (pnpm build).
Package scripts
package.json
Added npm scripts: db:pullwith-env tsx scripts/get_prod_db.ts, and db:bootstrapwith-env tsx scripts/bootstrap-superadmin.ts.
Database Schema
packages/db/src/schemas/knight-hacks.ts
Increased Member.profilePictureUrl varchar length from 255 to 512. Verify migrations/DB compatibility for this column width change.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

Database, Major

Suggested reviewers

  • BryanTaylan
🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title '[#346] Add Baseline Documentation' correctly references issue #346, follows the required format with brackets, and accurately describes the PR's main objective of adding documentation files to the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
No Hardcoded Secrets ✅ Passed Pull request contains no hardcoded secrets; documentation references credentials appropriately without exposing values, and code properly sources sensitive data from environment variables.
Validated Env Access ✅ Passed All modified files contain no unauthorized process.env usage; documentation, config updates, and schema changes follow approved patterns with environment handling via with-env.
No Typescript Escape Hatches ✅ Passed PR contains no TypeScript escape hatches; documentation additions include well-typed code examples using Zod schemas and tRPC procedures, with a harmless schema field length update.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch repo/docs

No actionable comments were generated in the recent review. 🎉


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Fix all issues with AI agents
In `@docs/API-AND-PERMISSIONS.md`:
- Line 469: Update the phrasing that currently reads "Read our [Github
Etiquette](./GITHUB-ETIQUETTE.md) guide for how to contribute to the project" to
use the correct brand capitalization "GitHub" (i.e., "Read our [GitHub
Etiquette](./GITHUB-ETIQUETTE.md) guide...") so the link text and any
occurrences of "Github" in this sentence are replaced with "GitHub".

In `@docs/ARCHITECTURE.md`:
- Around line 282-285: Update the link text "Github Etiquette" to the correct
brand spelling "GitHub Etiquette" in the ARCHITECTURE.md list item that
references the ./GITHUB-ETIQUETTE.md page (the bullet starting with "Read our
[Github Etiquette](./GITHUB-ETIQUETTE.md) guide"), leaving the link target
unchanged.

In `@docs/GETTING-STARTED.md`:
- Around line 244-246: Update the link text in GETTING-STARTED.md from "Github
Etiquette" to the correct brand spelling "GitHub Etiquette" so the list item "-
Read our [Github Etiquette](./GITHUB-ETIQUETTE.md) guide..." becomes "- Read our
[GitHub Etiquette](./GITHUB-ETIQUETTE.md) guide..."; modify the display text
only (leave the file path GITHUB-ETIQUETTE.md unchanged).

In `@package.json`:
- Around line 14-17: The db:pull npm script currently includes the literal
placeholder "[--truncate]" which is passed into process.argv and prevents the
script's args.includes("--truncate") check in scripts/get_prod_db.ts from ever
matching; remove the bracketed placeholder from the "db:pull" script so it reads
simply "pnpm --filter=@forge/db with-env tsx scripts/get_prod_db.ts" and rely on
users to supply flags at invocation (e.g. pnpm db:pull --truncate), keeping the
scripts/get_prod_db.ts logic (args.includes("--truncate")) unchanged.

In `@packages/db/src/schemas/knight-hacks.ts`:
- Around line 80-83: The schema change adjusting profilePictureUrl length (field
profilePictureUrl in packages/db/src/schemas/knight-hacks.ts) must be applied
via a SQL migration instead of db:push: enable drizzle-kit generate, point its
outDir to a version-controlled migrations folder (e.g.,
packages/db/migrations/), run drizzle-kit generate after modifying schema (so it
emits a migration that alters profile_picture_url length and any related changes
involving shirtSize/shirtSizeEnum), commit the generated migration, and update
CI/deploy scripts to run drizzle-kit (or the DB migration runner) on startup
instead of using drift/db:push so migrations are applied in production and
reversible/auditable.
🧹 Nitpick comments (1)
docs/API-AND-PERMISSIONS.md (1)

421-428: Add a language identifier to the fenced block.

Markdownlint flags this fence as missing a language; using text (or bash if it’s a shell tree) improves readability and lint compliance.

✅ Suggested fix
-```
+```text
 routers/
 ├── members.ts      # Member management
 ├── events.ts       # Event management
 ├── roles.ts        # Role/permission management
 ├── misc.ts         # Form integrations and misc
 └── index.ts        # Main router that combines all
</details>

</blockquote></details>

</blockquote></details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Copy link
Contributor

@DGoel1602 DGoel1602 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a real review just double checking some info

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/API-AND-PERMISSIONS.md`:
- Around line 421-428: Update the fenced code block that shows the "routers/"
tree so the opening fence is labeled with a language (e.g., change ``` to
```text); this addresses the MD040 markdownlint warning and improves rendering
for the block containing the lines starting with "routers/" and the entries
"members.ts", "events.ts", "roles.ts", "misc.ts", and "index.ts".

Copy link

@azizu06 azizu06 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As an onboarding new dev on the team this documentation really helped me to understand the structure of forge and the ideal workflows I should follow as I start contributing. In my review I left some small suggestions as well as clarifying questions.

Comment on lines 76 to 81
> IMPORTANT!

You must push the database schema to your local database before running the project. This is a common source of errors for new contributors.

```bash
pnpm db:push
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any examples of what error messages may be displayed if I forget to do this step? Would help me be more aware of avoiding this error and catching it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

biggest one is failed to get session. will add now, good idea :)

Copy link
Contributor

@mchdich mchdich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks pretty straightforward. Will just have to get used to the codebase and workflow

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/GETTING-STARTED.md`:
- Line 90: Update the Markdown link that currently uses HTTP to use HTTPS:
replace the text "[local.drizzle.studio](http://local.drizzle.studio)" with
"[local.drizzle.studio](https://local.drizzle.studio)" so the line reading "This
opens a GUI at [local.drizzle.studio](http://local.drizzle.studio)." becomes
"This opens a GUI at [local.drizzle.studio](https://local.drizzle.studio)."
🧹 Nitpick comments (1)
docs/GETTING-STARTED.md (1)

115-115: Use obviously fake Discord IDs in the example.

While Discord IDs are public, the example IDs could be mistaken for real production values. Using clearly fake IDs makes it obvious these are placeholders that users should replace.

📝 Clearer example with fake IDs
-pnpm db:bootstrap 1321955700540309645 238081392481665025
+pnpm db:bootstrap 123456789012345678 987654321098765432

@DVidal1205 DVidal1205 added this pull request to the merge queue Feb 8, 2026
Merged via the queue into main with commit 01f7788 Feb 8, 2026
8 checks passed
@DVidal1205 DVidal1205 deleted the repo/docs branch February 8, 2026 22:34
2. Create a new application
3. Get your Client ID and Client Secret
4. Add these to your `.env` file

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a specific Redirect URI for OAuth2 in the Discord app? Or is it something like http://localhost:PORT/api/auth/callback/discord?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Documentation Improvements or additions to documentation Global Change modifies code for the entire repository Minor Small change - 1 reviewer required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants