Turn hardcoded strings into governed content
Normalize scans existing code, extracts hardcoded UI text into structured content, patches reuse points, and turns AI-generated copy into a governed workflow.
Scan
Start with the strings already in your codebase
Normalize is designed for real projects that already contain button labels, empty states, headings, validation messages, and marketing copy. It scans source files and groups candidates before anything is written.
- Candidate extraction with length and file filters
- Graph mode for component and import context
- Works best with local provider access to source files
Extract
Extract content before patching source code
The workflow separates extraction from reuse. First, approved strings become Contentrain content entries; then code can be patched to consume generated access after the content model is reviewed.
- Content creation without source mutation
- Traceability from source file and line
- Reviewable branch workflow for generated content
Reuse
Replace hardcoded strings with generated access
After extraction, reuse patches update source files with expressions chosen for the framework. This keeps application code small while making text editable, localizable, and visible to agents.
- Framework-aware replacement expressions
- Import insertion when needed
- Conflict checks around the original string
i18n
Turn localization into a normal content operation
Once strings are structured, locale parity and translation review can be handled as content quality work instead of grep-and-replace. Dictionaries and collections can carry locale-specific values without hiding them from Git.
- Locale-aware content files
- Validation for missing required localized fields
- Translation workflows that keep source and target content aligned
Review
Use Studio when Normalize becomes team work
Local Normalize is the wedge for developers. Studio becomes valuable when content teams need to review extracted strings, approve language, attach media, and govern the branch before merge.
- Review screens for branch changes
- Role-based access for content editors and reviewers
- A path from one developer cleanup to a team process
Common questions
Does Normalize edit source code immediately?
No. The recommended flow extracts approved content first, then applies reuse patches after review. That separation makes the migration easier to inspect.
What kind of strings should be normalized first?
Start with repeated UI labels, empty states, marketing sections, onboarding copy, docs snippets, and localization candidates that product teams will edit again.
Can Normalize work without a remote Git provider?
Yes. The local provider supports source scanning and file operations. Remote providers are useful for hosted workflows, but local source access is the strongest starting point.
Next paths
Continue through the content system
Normalize migration playbook
Move hardcoded UI copy into structured content safely.
Developer implementation playbook
Install, model, validate, generate, and ship runtime access.
Hardcoded strings use case
See why extraction should start inside the codebase.
Content editor workflow playbook
Give editors Studio workflows without losing Git review.
Start local. Scale to Studio.
Build a governed content layer before content becomes product debt.
Developers can start with the MIT packages. Teams can move into Studio when review, roles, delivery, and licensing matter.