Skip to content

Migrate to monorepo, and create mobile app in react native#190

Open
acarlson33 wants to merge 1 commit into
mainfrom
05-21-migrate_to_monorepo_and_create_mobile_app_in_react_native
Open

Migrate to monorepo, and create mobile app in react native#190
acarlson33 wants to merge 1 commit into
mainfrom
05-21-migrate_to_monorepo_and_create_mobile_app_in_react_native

Conversation

@acarlson33

@acarlson33 acarlson33 commented May 21, 2026

Copy link
Copy Markdown
Owner

This pull request sets up the initial project structure and configuration for the Expo-based mobile app. It includes project metadata, recommended development tools and settings, a comprehensive README for onboarding, and documentation for design consistency. The changes establish a solid foundation for mobile development, enforce best practices, and ensure the app will match the web version's visual style.

Project configuration and setup:

  • Added app.json with Expo project metadata, platform-specific settings, and plugin configuration for iOS, Android, and web. This includes icon paths, splash screen, notification, secure storage, and SQLite settings.
  • Added .gitignore to exclude dependencies, build artifacts, native files, environment files, and platform-specific files from version control.

Developer experience improvements:

  • Added VSCode extension recommendations (expo.vscode-expo-tools) and workspace settings to standardize code actions on save, such as fixing, organizing imports, and sorting members. [1] [2]
  • Added a detailed README.md with setup instructions, development workflow, and information about authentication and configuration for the Firepit app.

Design and documentation:

  • Added MOBILE_COLOR_PALETTE_N.md to document the color palette, theme tokens, and mapping rules to ensure the mobile app visually matches the web app.
  • Added assets/expo.icon/icon.json to define icon layers and appearance for various platforms.

@appwrite

appwrite Bot commented May 21, 2026

Copy link
Copy Markdown

Firepit

Project ID: 68b230a0002245833242

Sites (1)
Site Status Logs Preview QR
 firepit
68eed9c6001f50d8f260
Failed Failed View Logs Preview URL QR Code

Tip

Trigger functions via HTTP, SDKs, events, webhooks, or scheduled cron jobs

@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Updated README for monorepo structure with workspace overview
    • Added Quick Start guide for Firepit web and mobile setup
    • Included comprehensive scripts reference and development workflow guidance
    • Added project structure diagram and environment setup instructions
    • Updated documentation links and references

Walkthrough

README.md rewritten from single-app overview to monorepo guide, introducing workspace structure, Quick Start, scripts reference, development workflow, environment setup, and troubleshooting. Removed version banner, extensive feature lists, known limitations, and production deployment details.

Changes

Documentation Restructure

Layer / File(s) Summary
Monorepo README reorganization
README.md
README rewritten to shift from single-app Firepit documentation with version banner, features, limitations, and deployment sections to monorepo-focused guide covering web + mobile apps. New content includes workspace overview, Quick Start, scripts reference (global, web, mobile commands with Bun/Turbo), monorepo project structure diagram (apps/web, apps/mobile, docs, root configs), development workflow (build/test/lint/typecheck), environment setup commands, Turbo build pipeline notes, troubleshooting tips, and consolidated documentation/license/acknowledgment/support links. Prior extensive environment variable explanations and production deployment/performance/security/observability details removed.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 A workspace unfolds in words so bright,
From single flame to monorepo's light,
Bun and Turbo dance in tandem play,
Web and mobile apps find their way,
Documentation blooms, the path is clear!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title directly summarizes the main change: migrating to a monorepo structure and creating a mobile app in React Native, which aligns with the README rewrite and new mobile app setup.
Description check ✅ Passed The description is related to the changeset, covering mobile app setup with configuration files, developer experience improvements, and design documentation that support the monorepo migration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 05-21-migrate_to_monorepo_and_create_mobile_app_in_react_native
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch 05-21-migrate_to_monorepo_and_create_mobile_app_in_react_native

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

acarlson33 commented May 21, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Around line 232-239: The README shows bun run web:dev:webpack which isn’t
listed in the Web App Scripts table; either add an entry for web:dev:webpack
(and web:build:webpack) to the Web App Scripts table with a short description
and the corresponding script command, or replace the mention in the "Use Webpack
Builder for Web" block with the existing documented script (e.g., the documented
dev/build webpack script name from the Web App Scripts table) so the
troubleshooting commands match the table; update references to the exact script
names web:dev:webpack and web:build:webpack (or the chosen documented
equivalents) so copy/paste onboarding steps stay accurate.
- Around line 111-133: The README's project-structure fenced code block is
missing a language tag which triggers markdownlint MD040; update the fenced
block that starts with the tree listing (the triple-backtick block containing
"firepit/ ├── apps/ ...") to include a language identifier such as "text" (i.e.,
change the opening ``` to ```text) so the code fence is explicitly labeled.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0e5a0ac0-5711-44f7-ac09-79090b3eb035

📥 Commits

Reviewing files that changed from the base of the PR and between 666727c and cfad4ff.

⛔ Files ignored due to path filters (299)
  • .gitignore is excluded by none and included by none
  • apps/mobile/.gitignore is excluded by none and included by none
  • apps/mobile/.vscode/extensions.json is excluded by none and included by none
  • apps/mobile/.vscode/settings.json is excluded by none and included by none
  • apps/mobile/README.md is excluded by none and included by none
  • apps/mobile/app.json is excluded by none and included by none
  • apps/mobile/assets/expo.icon/Assets/expo-symbol 2.svg is excluded by !**/*.svg and included by none
  • apps/mobile/assets/expo.icon/Assets/grid.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/expo.icon/icon.json is excluded by none and included by none
  • apps/mobile/assets/images/android-icon-background.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/android-icon-foreground.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/android-icon-monochrome.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/expo-badge-white.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/expo-badge.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/expo-logo.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/favicon.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/icon.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/logo-glow.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/react-logo.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/react-logo@2x.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/react-logo@3x.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/splash-icon.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/tabIcons/explore.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/tabIcons/explore@2x.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/tabIcons/explore@3x.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/tabIcons/home.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/tabIcons/home@2x.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/tabIcons/home@3x.png is excluded by !**/*.png and included by none
  • apps/mobile/assets/images/tutorial-web.png is excluded by !**/*.png and included by none
  • apps/mobile/build-tmp/.gitkeep is excluded by none and included by none
  • apps/mobile/docs/MOBILE_COLOR_PALETTE_N.md is excluded by none and included by none
  • apps/mobile/docs/mobile-api-route-structures.md is excluded by none and included by none
  • apps/mobile/docs/mobile-feature-parity-backlog.md is excluded by none and included by none
  • apps/mobile/docs/mobile-style-guide.md is excluded by none and included by none
  • apps/mobile/docs/openapi-doc.yml is excluded by none and included by none
  • apps/mobile/eas.json is excluded by none and included by none
  • apps/mobile/index.js is excluded by none and included by none
  • apps/mobile/metro.config.js is excluded by none and included by none
  • apps/mobile/package.json is excluded by none and included by none
  • apps/mobile/scripts/build.ts is excluded by none and included by none
  • apps/mobile/src/app/_layout.tsx is excluded by none and included by none
  • apps/mobile/src/app/explore.tsx is excluded by none and included by none
  • apps/mobile/src/app/index.tsx is excluded by none and included by none
  • apps/mobile/src/app/login.tsx is excluded by none and included by none
  • apps/mobile/src/app/server/[serverId].tsx is excluded by none and included by none
  • apps/mobile/src/components/animated-icon.module.css is excluded by none and included by none
  • apps/mobile/src/components/animated-icon.tsx is excluded by none and included by none
  • apps/mobile/src/components/animated-icon.web.tsx is excluded by none and included by none
  • apps/mobile/src/components/app-tabs.tsx is excluded by none and included by none
  • apps/mobile/src/components/app-tabs.web.tsx is excluded by none and included by none
  • apps/mobile/src/components/auth-route-guard.tsx is excluded by none and included by none
  • apps/mobile/src/components/chat-input.tsx is excluded by none and included by none
  • apps/mobile/src/components/emoji-renderer.tsx is excluded by none and included by none
  • apps/mobile/src/components/external-link.tsx is excluded by none and included by none
  • apps/mobile/src/components/hint-row.tsx is excluded by none and included by none
  • apps/mobile/src/components/image-viewer.tsx is excluded by none and included by none
  • apps/mobile/src/components/mention-autocomplete.tsx is excluded by none and included by none
  • apps/mobile/src/components/message-with-mentions.tsx is excluded by none and included by none
  • apps/mobile/src/components/reaction-button.tsx is excluded by none and included by none
  • apps/mobile/src/components/reaction-picker.tsx is excluded by none and included by none
  • apps/mobile/src/components/themed-text.tsx is excluded by none and included by none
  • apps/mobile/src/components/themed-view.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/avatar.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/badge.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/button.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/card.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/checkbox.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/collapsible.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/input.tsx is excluded by none and included by none
  • apps/mobile/src/components/ui/tabs.tsx is excluded by none and included by none
  • apps/mobile/src/components/web-badge.tsx is excluded by none and included by none
  • apps/mobile/src/constants/theme.ts is excluded by none and included by none
  • apps/mobile/src/global.css is excluded by none and included by none
  • apps/mobile/src/hooks/use-color-scheme.ts is excluded by none and included by none
  • apps/mobile/src/hooks/use-color-scheme.web.ts is excluded by none and included by none
  • apps/mobile/src/hooks/use-theme.ts is excluded by none and included by none
  • apps/mobile/src/lib/firepit/bootstrap.ts is excluded by none and included by none
  • apps/mobile/src/lib/firepit/http.ts is excluded by none and included by none
  • apps/mobile/src/lib/firepit/index.ts is excluded by none and included by none
  • apps/mobile/src/lib/firepit/messages.ts is excluded by none and included by none
  • apps/mobile/src/lib/firepit/persistence.ts is excluded by none and included by none
  • apps/mobile/src/lib/firepit/servers.ts is excluded by none and included by none
  • apps/mobile/src/lib/firepit/types.ts is excluded by none and included by none
  • apps/mobile/src/lib/mention-utils.ts is excluded by none and included by none
  • apps/mobile/src/lib/reactions-client.ts is excluded by none and included by none
  • apps/mobile/src/lib/storage/secure-store.ts is excluded by none and included by none
  • apps/mobile/src/lib/storage/sqlite.ts is excluded by none and included by none
  • apps/mobile/src/providers/firepit-provider.tsx is excluded by none and included by none
  • apps/mobile/tsconfig.json is excluded by none and included by none
  • apps/web/.env.local.example is excluded by none and included by none
  • apps/web/.gitignore is excluded by none and included by none
  • apps/web/.npmignore is excluded by none and included by none
  • apps/web/CHANGELOG.md is excluded by none and included by none
  • apps/web/CONTRIBUTING.md is excluded by none and included by none
  • apps/web/DEPLOYMENT.md is excluded by none and included by none
  • apps/web/README.md is excluded by none and included by none
  • apps/web/ROADMAP.md is excluded by none and included by none
  • apps/web/assets/default-diamond.png is excluded by !**/*.png and included by none
  • apps/web/assets/default-round.png is excluded by !**/*.png and included by none
  • apps/web/assets/default-square.png is excluded by !**/*.png and included by none
  • apps/web/assets/default-star.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-fall-2025.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-fall-2026.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-spring-2025.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-spring-2026.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-summer-2025.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-summer-2026.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-winter-2025.png is excluded by !**/*.png and included by none
  • apps/web/assets/seasonal-winter-2026.png is excluded by !**/*.png and included by none
  • apps/web/bunfig.toml is excluded by none and included by none
  • apps/web/components.json is excluded by none and included by none
  • apps/web/docs/CHAT_AND_REALTIME.md is excluded by none and included by none
  • apps/web/docs/FEATURE_FLAGS.md is excluded by none and included by none
  • apps/web/docs/MIGRATIONS.md is excluded by none and included by none
  • apps/web/docs/MOBILE_COLOR_PALETTE_N.md is excluded by none and included by none
  • apps/web/docs/PLATFORM_OPERATIONS.md is excluded by none and included by none
  • apps/web/docs/PRODUCT_AND_ONBOARDING.md is excluded by none and included by none
  • apps/web/docs/README.md is excluded by none and included by none
  • apps/web/docs/ROADMAP_IMPLEMENTATION_SPEC.md is excluded by none and included by none
  • apps/web/docs/SERVER_ADMINISTRATION.md is excluded by none and included by none
  • apps/web/docs/TELEMETRY.md is excluded by none and included by none
  • apps/web/docs/openapi-doc.yml is excluded by none and included by none
  • apps/web/eslint.config.js is excluded by none and included by none
  • apps/web/instrumentation-client.ts is excluded by none and included by none
  • apps/web/instrumentation.ts is excluded by none and included by none
  • apps/web/knip.json is excluded by none and included by none
  • apps/web/newrelic.cjs is excluded by none and included by none
  • apps/web/newrelic.d.ts is excluded by none and included by none
  • apps/web/next.config.ts is excluded by none and included by none
  • apps/web/package.json is excluded by none and included by none
  • apps/web/postcss.config.mjs is excluded by none and included by none
  • apps/web/posthog-setup-report.md is excluded by none and included by none
  • apps/web/public/favicon/apple-touch-icon.png is excluded by !**/*.png and included by none
  • apps/web/public/favicon/favicon-96x96.png is excluded by !**/*.png and included by none
  • apps/web/public/favicon/favicon.ico is excluded by !**/*.ico and included by none
  • apps/web/public/favicon/favicon.png is excluded by !**/*.png and included by none
  • apps/web/public/favicon/favicon.svg is excluded by !**/*.svg and included by none
  • apps/web/public/favicon/web-app-manifest-192x192.png is excluded by !**/*.png and included by none
  • apps/web/public/favicon/web-app-manifest-512x512.png is excluded by !**/*.png and included by none
  • apps/web/public/sw.js is excluded by none and included by none
  • apps/web/scripts/cleanup-orphan-memberships.ts is excluded by none and included by none
  • apps/web/scripts/generate-version.ts is excluded by none and included by none
  • apps/web/scripts/setup-appwrite.ts is excluded by none and included by none
  • apps/web/scripts/test-server-auth.ts is excluded by none and included by none
  • apps/web/scripts/validate-ci-env.ts is excluded by none and included by none
  • apps/web/scripts/validate-env.ts is excluded by none and included by none
  • apps/web/skills-lock.json is excluded by none and included by none
  • apps/web/src/__tests__/__helpers__/mockAppwrite.ts is excluded by none and included by none
  • apps/web/src/__tests__/admin-server-management.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/api-compression.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/announcements-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/audit-logs-export-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/audit-logs-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/categories.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/channel-permissions.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/channel-pins.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/channels.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/conversation-pins.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/custom-emojis.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/debug-auth.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/debug-cookies.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/direct-messages.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/dm-encryption-key-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/dm-pin.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/dm-reactions.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/dm-thread.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/emoji-fileId.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/example-newrelic.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/feature-flags-allow-user-servers.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/friend-system-routes.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/gifs-search-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/inbox-digest-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/inbox-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/invites-code.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/invites-join.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/me-preferences-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/me.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/memberships.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/message-pinning.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/message-poll-close.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/message-poll-votes.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/message-reactions.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/message-threads.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/messages-image-upload.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/messages.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/mute-routes.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/notifications-settings-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/pin-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/profile-userId.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/profiles-batch.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/role-assignments.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/roles.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/search-messages.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/server-members-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/server-moderation-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/server-permissions.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/server-route-settings.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/server-stats-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/servers-create-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/servers-default-signup.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/servers-invites.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/servers-join.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/servers-public.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/servers.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/status-batch.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/status.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/stickers-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/test-env.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/thread-reads-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/thread-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/typing.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/upload-emoji-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/upload-emoji.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/upload-file.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/upload-image.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/user-profile.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/users-relationship.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/users-search.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/api-routes/verify-email-route.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-admin.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-audit-diagnostics.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-audit.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-auth.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-client.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-core.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-dms-client.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-dms.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-friendships.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-invites.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-messages-advanced.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-messages-enriched.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-messages.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-profiles.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-roles-extended.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-roles.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-server.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-servers-list.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-servers.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/appwrite-status.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/auth-server.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/cache-utils-comprehensive.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/cached-data.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/category-settings-panel.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-thread-read-wiring.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useActivityTracking.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useCategories.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useChannels.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useConversations.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useDirectMessages.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useInboxDigest.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useMessages.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useServers.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks-useThreadPinState.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-hooks.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-page.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/chat-surface.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/chat-ui-fixes.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/client-logger.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/components/app-layout.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/button.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/chat-surface-message-item.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/chat-surface-panel.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/checkbox.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/conversation-list.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/direct-message-view.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/emoji-renderer.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/file-attachment-display.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/file-attachments-display.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/file-icon.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/global-search.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/header.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/image-with-skeleton.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/input.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/invite-dialogs.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/loader.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/message-poll.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/message-with-mentions.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/mode-toggle.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/moderation-message-list.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/mute-dialog.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/new-conversation-dialog.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/notification-settings.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/providers.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/reaction-components.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/relationship-actions.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/search-results.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/server-admin-panel-utils.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/components/status-indicator.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/ui-card.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/ui-components.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/ui-switch-tabs.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/components/virtualized-message-list.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/compression-utils.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/custom-emojis.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/default-role.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/direct-message-view.test.tsx is excluded by none and included by none
  • apps/web/src/__tests__/dm-chatbox-limit.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/dm-typing-indicators.test.ts is excluded by none and included by none
  • apps/web/src/__tests__/enrich-messages.test.ts is excluded by none and included by none
📒 Files selected for processing (1)
  • README.md

Comment thread README.md
Comment on lines +111 to +133
```
firepit/
├── apps/
│ ├── web/ # Next.js web application
│ │ ├── src/
│ │ ├── public/
│ │ ├── scripts/
│ │ ├── docs/ # Web-specific documentation
│ │ └── package.json
│ │
│ └── mobile/ # React Native/Expo mobile app
│ ├── src/
│ ├── android/
│ ├── assets/
│ ├── docs/ # Mobile-specific documentation
│ └── package.json
├── docs/ # Monorepo documentation
├── package.json # Root workspace configuration
├── turbo.json # Build pipeline configuration
├── tsconfig.json # TypeScript root config
└── bunfig.toml # Bun package manager config
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a language tag to the project-structure fenced block.

This fenced block is missing a language identifier, which triggers markdownlint (MD040).

Suggested fix
-```
+```text
 firepit/
 ├── apps/
 │   ├── web/                    # Next.js web application
@@
 ├── tsconfig.json               # TypeScript root config
 └── bunfig.toml                 # Bun package manager config
</details>

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>

[warning] 111-111: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @README.md around lines 111 - 133, The README's project-structure fenced code
block is missing a language tag which triggers markdownlint MD040; update the
fenced block that starts with the tree listing (the triple-backtick block
containing "firepit/ ├── apps/ ...") to include a language identifier such as
"text" (i.e., change the opening totext) so the code fence is explicitly
labeled.


</details>

<!-- fingerprinting:phantom:triton:hawk -->

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

Comment thread README.md
Comment on lines +232 to 239
### Use Webpack Builder for Web

### Self-Hosted
If SWC builds are having issues:

```bash
# Build the application
bun build

# Start production server
bun start
bun run web:dev:webpack
bun run web:build:webpack
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Keep troubleshooting commands aligned with the scripts reference.

Line 237 introduces bun run web:dev:webpack, but that command is not documented in the Web App Scripts table. Please either add it there or replace this with a documented equivalent to prevent broken-copy/paste onboarding steps.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 232 - 239, The README shows bun run web:dev:webpack
which isn’t listed in the Web App Scripts table; either add an entry for
web:dev:webpack (and web:build:webpack) to the Web App Scripts table with a
short description and the corresponding script command, or replace the mention
in the "Use Webpack Builder for Web" block with the existing documented script
(e.g., the documented dev/build webpack script name from the Web App Scripts
table) so the troubleshooting commands match the table; update references to the
exact script names web:dev:webpack and web:build:webpack (or the chosen
documented equivalents) so copy/paste onboarding steps stay accurate.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant