Skip to main content
Learn how to customize components and views generated by Sonamu to fit your project requirements.

Customization Overview

Post-generation Editing

Full control Free modifications

Props Extension

Add new features Interface extension

Styling

Design system Theme application

Logic Addition

Business logic Validation

Customization Philosophy

Sonamu’s Approach

Sonamu follows the “80% automatic, 20% customization” philosophy. Generation vs Customization:
When customization is needed:
  • Special validation rules
  • Complex relationship handling
  • Unique UI/UX requirements
  • Permission-based feature control
  • Workflow integration
Customization vs Regeneration:
  • Generated files are overwritten when regenerated
  • Therefore, Git commit immediately after generation is recommended
  • Customization involves directly modifying generated code
  • If needed, create new components to use

View Customization

Extending List Page

Add features to generated list page. Original (auto-generated):
Customized (filters added):
Added features:
  • Search filter
  • Role filter
  • Active status filter

Form Customization

Add business logic to create/edit forms. Original (auto-generated):
Customized (complex validation):
Added features:
  • Zod schema-based validation
  • Email duplication check (async)
  • Password complexity rules
  • Password confirmation
  • Password strength indicator

Table Customization

Add features to tables. Original (auto-generated):
Customized (sorting, selection, actions):
Added features:
  • Sort by column click
  • Multiple selection with checkboxes
  • Select all/deselect all
  • Action buttons per row

Component Styling

Tailwind CSS

CSS Modules

Styled Components

IdAsyncSelect Customization

Custom Option Rendering

Grouped Options

SearchInput Customization

Custom Suggestion Rendering

Creating New Components

Create new components based on generated ones.

Composite Component

Best Practices

1. Commit Immediately After Generation

2. Common Logic as Hooks

3. Styles Globally

4. Extend Types

Cautions

Cautions when customizing: 1. Regeneration overwrites - Git commit required 2. Type changes should be done in backend first 3. Separate complex logic into Hooks 4. Make Props interfaces extensible 5. Maintain style consistency

Next Steps

View Scaffolding

Auto view generation

ID Async Select

Relational data selection

Search Input

Search component

Using Services

Service integration