-
Notifications
You must be signed in to change notification settings - Fork 733
chore: init Claude Code setup #3943
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+79
−2
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
88991f7
chore: update .gitignore and add Claude settings file
skwowet 04f8416
Merge branch 'main' into chore/claude-code-setup
skwowet 0945ac6
chore: add pyright-lsp for py
skwowet 1863be3
Merge branch 'main' into chore/claude-code-setup
skwowet 503f112
feat: add .claude/settings.local.json to .gitignore and create CLAUDE.md
skwowet 83ee8b3
Merge branch 'main' into chore/claude-code-setup
skwowet 9d2d8e4
Update .gitignore
skwowet 08f695a
feat: update CLAUDE.md to include frontend tech
skwowet db64ad8
Merge branch 'main' into chore/claude-code-setup
skwowet File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| { | ||
| "enabledPlugins": { | ||
| "typescript-lsp@claude-plugins-official": true, | ||
| "pyright-lsp@claude-plugins-official": true | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| # CDP — Community Data Platform | ||
|
|
||
| CDP is a community data platform by the Linux Foundation. It ingests millions of | ||
| activities and events daily from platforms like GitHub, GitLab, and many others | ||
| (not just code hosting). Open-source projects get onboarded by connecting | ||
| integrations, and data flows continuously at scale. | ||
|
|
||
| The ingested data is often messy. A big part of what CDP does is improve data quality: deduplicating member and organization profiles through merge and unmerge operations, enriching data via third-party providers, and resolving identities across sources. The cleaned data powers analytics and insights for LFX products. | ||
|
|
||
| The codebase started as crowd.dev, an open-source startup later acquired by the Linux Foundation. Speed was prioritized over standards, but the platform is now stable. The focus has shifted to maintainable patterns, scalability, and good developer experience. Performance matters at this scale, even small inefficiencies compound across millions of data points. | ||
|
|
||
| ## Tech stack | ||
|
|
||
| TypeScript, Node.js, Express, PostgreSQL (pg-promise), Temporal, Kafka, Redis, OpenSearch, Zod, Bunyan, AWS S3. | ||
|
skwowet marked this conversation as resolved.
|
||
|
|
||
| Vue 3, Vite, Tailwind CSS, Element Plus, Pinia, TanStack Vue Query, Axios. | ||
|
|
||
| Package manager is **pnpm**. Monorepo managed via pnpm workspaces. | ||
|
|
||
| ## Codebase structure | ||
|
|
||
| ``` | ||
| backend/ -> APIs (public endpoints for LFX products + internal for CDP UI) | ||
| frontend/ -> CDP Platform UI | ||
| services/apps/ -> Microservices — Temporal workers, Node.js workers, webhook APIs | ||
| services/libs/ -> Shared libraries used across services | ||
| ``` | ||
|
|
||
| `services/libs/common` holds shared utilities, error classes, | ||
| and helpers. If a piece of logic is reusable (not business logic), it belongs there. | ||
|
|
||
| `services/libs/data-access-layer` holds all | ||
| database query functions. Check here before writing new ones — duplicates are | ||
| already a problem. | ||
|
|
||
| ## Patterns in transition | ||
|
|
||
| Old and new patterns coexist. Always use the new pattern. | ||
|
|
||
| - **Sequelize -> pg-promise**: Sequelize is legacy (backend only). Use | ||
| `queryExecutor` from `@crowd/data-access-layer` for all new database code. | ||
| - **Classes -> functions**: Class-based services and repos are legacy. Write | ||
| plain functions — composable, modular, easy to test. | ||
| - **Multi-tenancy -> single tenant**: Multi-tenancy is being phased out. The | ||
| tenant table still exists. Code uses `DEFAULT_TENANT_ID` from `@crowd/common`. | ||
| Don't add new multi-tenant logic. | ||
| - **Legacy auth -> Auth0**: Auth0 is the current auth system. Ignore old JWT | ||
| patterns. | ||
| - **Zod for validation**: Public API endpoints use Zod schemas with | ||
| `validateOrThrow`. Follow this pattern for all new endpoints. | ||
|
|
||
| ## Working with the database | ||
|
|
||
| Millions of rows. Every query matters. | ||
|
|
||
| - Look up the table schema and indexes before writing any query. Don't select | ||
| or touch columns blindly. | ||
| - Check existing functions in `data-access-layer` before writing new ones. | ||
| Weigh the blast radius of modifying a shared function — sometimes a new | ||
| function is safer. | ||
| - Write queries with performance in mind. Think about what indexes exist, what | ||
| the query plan looks like, and whether you're scanning more rows than needed. | ||
|
|
||
| ## Code quality | ||
|
|
||
| - Functional and modular. Code should be easy to plug in, pull out, and test | ||
| independently. | ||
| - Think about performance at scale, even for small changes. | ||
| - Define types properly — extend and reuse existing types. Don't sprinkle `any`. | ||
| - Don't touch working code outside the scope of the current task. | ||
| - Prefer doing less over introducing risk. Weigh trade-offs before acting. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.