brmodelo-app
CLAUDE.md1.7k starsChanged 4 years agoApache-2.0View on GitHub
BRMW is a database modeling web application built with React and JointJS (@joint/core, open source) for diagram creation. It runs entirely in the browser: there is no backend, and models persist in localStorage through app/react/services/modelStore.ts (one entry per model under the brmw.model.<id> key). Routes are / (models list), /conceptual/:id, /logic/:id and /nosql/:id. Editor widgets (shape palette, selection, element toolbar, element resizer, canvas, snaplines, clipboard, command manager, print) are custom implementations in app/editor/. Each page follows a Wrapper + Page split…
We split this CLAUDE.md into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 60
Follow .editorconfig definitions to write code
- Distinctive: line 63
Use TypeScript with strict typing
- Very specific: line 66
Use existing theme structure in app/react/theme/
- Distinctive: line 67
Avoid obvious comments; code should be self-explanatory
- Distinctive: line 74
Use native CSS variables
- Distinctive: line 75
Avoid Sass specific features
- Distinctive: line 76
Create "comment headers blocks" following existent pattern with "//" instead of CSS comments
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
BRMW is a database modeling web application built with React and JointJS (@joint/core, open source) for diagram creation. It runs entirely in the browser: there is no backend, and models persist in localStorage through app/react/services/modelStore.ts (one entry per model under the brmw.model.<id> key). Routes are / (models list), /conceptual/:id, /logic/:id and /nosql/:id. Editor widgets (shape palette, selection, element toolbar, element resizer, canvas, snaplines, clipboard, command manager, print) are custom implementations in app/editor/.
Development Commands
Building and Running
pnpm run:fe- Start webpack dev server (port 9000)pnpm build- Production build (outputs to app/dist)
Testing
pnpm test- Run all tests (Jest with coverage)pnpm test:watch- Run tests in watch mode
Architecture
Frontend Structure (app/react/)
- TypeScript with styled-components
- Pages-based architecture:
pages/,components/,containers/,services/,router/ - Routing via
react-router-domv7 withcreateBrowserRouterand lazy route loading (app/react/router/index.tsx) - Entry point:
app/react/index.tsx(mounts viacreateRoot) - i18n via
react-i18next - Path aliases:
@components/*,@pages/*,@containers/*,@enums/*,@services/*
Persistence
app/react/services/modelStore.tswrapslocalStorage; no network calls anywhere in the app
Build System
- Webpack 5 with TypeScript/Babel compilation
- Entry point:
app/react/index.tsx - TypeScript config:
app/react/tsconfig.json - Sass compilation with PostCSS processing
- Dev server on port 9000
Page Structure Pattern
Each page follows a Wrapper + Page split to keep routing/service wiring separate from view logic:
<Page>Wrapper.tsx- reads route params (useParams), composes providers, fetches services, and passes callbacks to the inner component<Page>.tsx- pure presentational/container component receiving data and callbacks via props
This pattern lets the wrapper own router/service coupling while the page stays easy to test in isolation.
Modal Pattern
Modals are React components opened via context-based providers (e.g., useConfirmationModal in app/react/components/ConfirmationModal/). New modals should follow the same pattern: a provider mounted near the app root and a hook returning an open/confirm-style function that resolves a Promise.
Cancel UX convention: when a modal is cancelable, both Esc and click-outside should dismiss it (return cancel/reject).
Model Versioning
modelStore.updateModelincrementsversionon each save; new models start at0
Code Style
General
- Follow
.editorconfigdefinitions to write code
React Components
- Use TypeScript with strict typing
- Functional components with hooks
- styled-components for styling
- Use existing theme structure in
app/react/theme/ - Avoid obvious comments; code should be self-explanatory
Testing
- Jest for unit tests (
app/**/*.test.*) - Component tests use
@testing-library/react
CSS & Sass
- Use native CSS variables
- Avoid Sass specific features
- Create "comment headers blocks" following existent pattern with "//" instead of CSS comments
Environment Setup
Required:
- Node.js 24.x
- pnpm 10.x
Development workflow:
- Run
pnpm run:fe - Access application at http://localhost:9000
Key Dependencies
- Frontend: React 19, react-router-dom 7, styled-components 6, react-i18next, @radix-ui/react-dialog
- Build: Webpack 5, TypeScript 5, Babel 7
- Testing: Jest 30, @testing-library/react 16
- Diagramming: JointJS open source (@joint/core) + custom editor widgets in
app/editor/
Git Conventions
Branch Naming
feature/<name>for new featuresfix/<name>for bug fixesenhancement/<name>for improvements
Commit Prefixes
Feat:new featureFix:bug fixRefactor:code restructuringDocs:documentation changesChore:maintenance tasks
Workflow
- Unless specified otherwise, each issue should be worked on in a new branch created from
main
Database Modeling Features
The application provides:
- Visual database diagram creation using Joint.js
- Conceptual (EER), logical (relational), and NoSQL modeling paradigms with conversion between them
- Model persistence in the browser (
localStorage) - Multi-language support (i18n)
- SQL generation and printing
Trending
Quiet this year.thin dataabout the whole repository
Who's talking about brmodeloweb/brmodelo-app
The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

