Making Changes Effectively

Master the art of modifying and extending your Buzzy application safely and effectively. Learn strategies for AI-powered changes vs manual edits.

The Challenge of Changes

One of the biggest struggles with building in Buzzy: making changes after the initial build without breaking everything.

Non-technical explanation: Think of your Buzzy app like a house. When you want to renovate, you can't just knock down walls randomly—some walls are load-bearing and removing them could collapse the roof. Similarly, changing one part of your app can unexpectedly break other parts. This guide teaches you how to safely renovate your app.

Why making changes is challenging:

  • Context loss: Buzzy AI loses memory from previous prompts, like talking to someone with amnesia

  • Ripple effects: Changes can affect related features you didn't think about

  • Data dependencies: Modifying data structure cascades through all screens that use that data

  • Consistency maintenance: Need to update all references when you change something

  • Testing burden: Each change requires verification that nothing else broke

Visual representation of change complexity:

This guide helps you:

  • Choose the right change strategy for your situation

  • Minimize risk of breaking existing functionality

  • Use Buzzy AI v3 effectively for modifications

  • Know when to use manual edits vs AI prompts

  • Implement changes systematically and safely

Types of Changes

1. Additive Changes

What it is: Adding new features without modifying existing ones—like adding a new room to your house without changing the existing rooms.

Examples:

  • Add a new screen (e.g., user profile page)

  • Add a new field to a datatable (e.g., priority field to tasks)

  • Add a new datatable (e.g., comments, categories)

  • Add a new user role (e.g., viewer, moderator)

  • Add new display rules (e.g., show badges for priority)

  • Add new navigation options (e.g., quick actions menu)

Strategy: Lowest risk, easiest to implement. Like adding furniture to an empty room—unlikely to break anything.

Step-by-step approach:

  1. Plan the addition: Clearly describe what you're adding and why

  2. Define integration points: How does it connect to existing features?

  3. Start isolated: Build the new feature separately first

  4. Connect gradually: Link to existing features one connection at a time

  5. Test thoroughly: Verify new feature works AND existing features still work

Sample Buzzy AI v3 prompts for additive changes:

Example 1 - Add Comments System:

"Add a comments feature to the task management app:

NEW DATATABLE: Comments
Fields:
- comment_text (long text, required)
- author (linked table field → Users, required)
- created_at (timestamp, auto-generated)
- task_id (linked table field → Tasks, required)

INTEGRATION WITH EXISTING:
- Add 'comments' subtable field to existing Tasks datatable
- On task detail screen, add comments section below existing task information
- Show comment author name, text, and timestamp for each comment
- Add 'Add Comment' button for logged-in users only
- Use display rule: show comments section only if task has comments OR user is logged in

PERMISSIONS:
- All users can read comments on tasks they can view
- Only logged-in users can add comments
- Users can only edit/delete their own comments (author = current user)

Keep all existing task functionality unchanged."

Example 2 - Add Priority Field:

"Add priority tracking to the existing task management app:

MODIFY EXISTING DATATABLE: Tasks
Add new field:
- priority (dropdown with options: Low, Medium, High, Urgent, default: Medium)

DISPLAY UPDATES:
- Task list screen: Add priority column with colored badges
  - Low: gray badge
  - Medium: blue badge  
  - High: orange badge
  - Urgent: red badge
- Task detail screen: Show priority field below title
- Task create/edit forms: Add priority dropdown field

SORTING/FILTERING:
- Add priority to sort options (High to Low, Low to High)
- Add priority filter checkboxes to existing filter panel

Keep all existing fields, display rules, and functionality exactly the same."

Example 3 - Add New Screen:

"Add a user profile screen to the existing app:

NEW SCREEN: User Profile
Fields to display:
- Profile photo (from Users datatable, image field)
- Name (from Users datatable)
- Email (from Users datatable)
- Bio (add new 'bio' field to Users datatable, long text, optional)
- Join date (from Users datatable, created_at field)
- Task statistics: total tasks created, total completed

NAVIGATION:
- Add 'Profile' option to existing navigation menu
- Add profile link when clicking on user names throughout the app
- Include 'Edit Profile' button for current user only

PERMISSIONS:
- Users can view any profile (public information)
- Users can only edit their own profile
- Bio field is optional and can be left blank

Don't modify any existing screens or functionality."

Benefits of additive changes:

  • ✅ Minimal risk of breaking existing features

  • ✅ Easy to test (test new feature + quick regression test)

  • ✅ Easy to remove if it doesn't work out

  • ✅ Clear scope—you know exactly what you're adding

  • ✅ Users can continue using existing features while you build

When to choose additive approach:

  • Adding optional features or enhancements

  • Expanding functionality without changing core workflows

  • When you're unsure about the change (easy to remove later)

  • Building iteratively (add piece by piece)

  • Working with limited development time

2. Modification Changes

What it is: Changing existing features—like renovating a room that's already in use. More complex because you need to maintain functionality while updating.

Examples:

  • Change field type (date → date-time, text → dropdown)

  • Modify validation rules (make optional field required, change max length)

  • Update UI layout (table → cards, single column → multi-column)

  • Alter navigation flow (redirect users to different screen after action)

  • Change calculations or formulas

  • Update display rules or conditional logic

Strategy: Medium risk, requires careful specification and thorough testing.

Step-by-step approach:

  1. Document current state: How does it work now? What are all the places this feature is used?

  2. Define exact changes: What specifically needs to change? What stays the same?

  3. Identify ripple effects: What other features might be affected?

  4. Plan migration: How do you handle existing data?

  5. Test comprehensively: Changed feature + all related features

Sample Buzzy AI v3 prompts for modification changes:

Example 1 - Change Field Type:

"Modify the Tasks datatable to include time of day for due dates:

CURRENT STATE:
- Tasks datatable has 'due_date' field (date type)
- Displays on task list, task detail, and task forms
- Used in sorting and filtering
- Display rule shows 'Overdue' when due_date < today

CHANGES NEEDED:
- Change 'due_date' field from date to date-time type
- Update display format to show both date and time (e.g., 'Oct 15, 2025 at 2:30 PM')
- Update overdue logic to compare date-time, not just date

SCREENS TO UPDATE:
- Task list screen: Show date-time format
- Task detail screen: Show date-time format  
- Task create form: Use date-time picker instead of date picker
- Task edit form: Use date-time picker
- Overdue filter: Use date-time comparison

KEEP UNCHANGED:
- All other task fields
- Sorting by due date (should work with date-time)
- All other display rules and permissions
- Task creation/editing workflow

MIGRATION NOTE: Default time to 11:59 PM for existing tasks that only have dates."

Example 2 - Change UI Layout:

"Change the task list from table layout to card layout:

CURRENT STATE:
- Task list displays in table format with columns: Title, Assignee, Due Date, Status, Priority
- Sorting and filtering work with current table
- Mobile responsive but cramped on small screens

CHANGES NEEDED:
- Convert to card layout where each task is a card
- Each card shows:
  - Title (large, bold text)
  - Assignee with avatar (top right)
  - Due date with calendar icon
  - Status as colored badge
  - Priority as colored border or corner flag
- Cards arranged in responsive grid (3 columns desktop, 2 tablet, 1 mobile)

KEEP UNCHANGED:
- All existing search, sort, and filter functionality
- Same data displayed, just different layout
- Click behavior (click card to open task detail)
- All permissions and display rules
- Task creation and editing workflows

RESPONSIVE BEHAVIOR:
- Desktop: 3 cards per row
- Tablet: 2 cards per row  
- Mobile: 1 card per row, full width"

Example 3 - Change Validation Rules:

"Update task validation to be more strict:

CURRENT STATE:
- Title field: required, no length limit
- Description field: optional, no length limit
- Due date field: optional
- Assignee field: optional

CHANGES NEEDED:
- Title field: required, max 100 characters, show character count
- Description field: optional, max 1000 characters, show character count
- Due date field: required (cannot create task without due date)
- Assignee field: required (cannot create unassigned tasks)

VALIDATION DISPLAY:
- Show character count below title and description fields
- Show red text when approaching limit (90+ characters for title, 950+ for description)
- Show clear error messages for required fields: 'Title is required', 'Due date is required', etc.
- Disable submit button until all validation passes

EXISTING DATA:
- Existing tasks that don't meet new rules should continue to work
- Only enforce new validation on new tasks and when editing existing tasks
- Provide migration prompt for existing tasks with missing required data

KEEP UNCHANGED:
- All other task functionality
- Display and permission rules
- Task list and detail screens (just forms affected)"

Risks and mitigation strategies:

Risk
Mitigation Strategy

Breaking existing data

Test with real data, plan migration carefully

Affecting unrelated features

List all places feature is used, test each one

User confusion from changes

Document changes, consider gradual rollout

Performance degradation

Test with realistic data volumes

Lost functionality

Explicitly specify what should stay the same

When to choose modification approach:

  • Existing feature has fundamental issues that need fixing

  • User feedback indicates current implementation is confusing

  • Business requirements have changed

  • Performance or usability improvements needed

  • Compliance or security updates required

3. Removal Changes

What it is: Deleting features or components

Examples:

  • Remove a screen

  • Delete a field

  • Remove a feature

  • Deprecate a workflow

Strategy: Highest risk due to dependencies

Approach:

  1. Identify all places using the feature

  2. Remove references before removing feature

  3. Consider cascading deletes

  4. Test that nothing breaks

Better: Often better to hide/disable than delete

4. Restructuring Changes

What it is: Reorganizing without changing behavior

Examples:

  • Rename Datatables

  • Reorganize navigation

  • Restructure data relationships

  • Change screen layouts

Strategy: High risk of subtle breakage

Approach:

  1. Use Buzzy's visual editor for careful changes

  2. Test after each step

  3. Use AI for consistent renaming across app

  4. Verify all references in Data and Design tabs updated

Change Strategies

Strategy 1: Surgical Precision

When to use: Small, isolated changes

How:

  1. Identify the exact location of change

  2. Make minimal modification

  3. Verify change

  4. Stop

Example Buzzy prompt: "On the task detail screen, change the 'Mark Complete' button color to green and the text to 'Complete Task'"

Advantages:

  • Fast

  • Low risk

  • Easy to verify

  • Easy to undo

Disadvantages:

  • Not suitable for widespread changes

  • Can miss related updates needed

Strategy 2: Iterative Expansion

When to use: Adding related features over time

How:

  1. Add simplest version first

  2. Test and refine

  3. Add next layer of complexity

  4. Repeat

Example:

Iteration 1: "Add basic comments to tasks - just content and author"
Test
Iteration 2: "Add edit/delete buttons for comment authors"
Test
Iteration 3: "Add threading so comments can reply to comments"
Test

Advantages:

  • Control complexity

  • Easy to test incrementally

  • Can stop when "good enough"

  • Learn as you go

Disadvantages:

  • Takes longer

  • Need to maintain context between iterations

Strategy 3: Parallel Development

When to use: Major feature additions

How:

  1. Build new feature separately

  2. Test thoroughly in isolation

  3. Integrate with main app

  4. Enable progressively

Example:

Step 1: Build entire messaging system separately
Step 2: Test messaging thoroughly
Step 3: Add link from main app to messaging
Step 4: Enable for beta users
Step 5: Enable for all users

Advantages:

  • Can develop without breaking main app

  • Easier testing

  • Can abandon if needed

  • Controlled rollout

Disadvantages:

  • More upfront work

  • Integration can be tricky

  • Potential consistency issues

Strategy 4: Replace Not Modify

When to use: Major changes to existing features

How:

  1. Build new version alongside old

  2. Test new version

  3. Switch over

  4. Remove old version

Example:

Problem: Current search is too slow
Approach: Build new search with different algorithm
Deploy: Add feature flag to switch between old/new
Test: Verify new search works
Switch: Enable for all users
Clean up: Remove old search code

Advantages:

  • Can compare old vs new

  • Easy rollback

  • No downtime

  • Safe

Disadvantages:

  • Maintain two versions temporarily

  • More complex deployment

Best Practices for Changes

1. Understand Current State First

Before changing anything:

Review:

  • How does it currently work?

  • What will be affected?

  • Are there dependencies?

Test:

  • Verify current behavior

  • Document current state

  • Capture before screenshots

Don't: Start changing without understanding current implementation

2. Start with Clear Requirements

Define:

  • What exactly needs to change?

  • What's the expected result?

  • What shouldn't change?

Document:

  • Write down the change clearly

  • Note any assumptions

  • List success criteria

Bad: "Make the form better"

Good: "Add real-time validation to email field showing 'Invalid email format' immediately when user types an invalid email, similar to how password validation currently works"

3. Make One Change at a Time

Don't: Try to fix multiple things in one prompt

Do:

  • Change one thing

  • Test it

  • Move to next change

Why:

  • Easier to debug if something breaks

  • Clearer cause and effect

  • Can roll back individually

4. Test Immediately

After every change:

  • Test the changed feature

  • Test related features

  • Check for regressions

  • Verify data integrity

Don't wait: Testing later makes it hard to identify which change caused issues

5. Keep Context Explicit

In your prompts, include:

  • What exists currently

  • What you're changing

  • What should remain the same

Example: "In the Tasks datatable (which currently has title, description, status, assignee, due_date), add a 'priority' selectlist field with options: Low, Medium, High, Urgent. Don't change any existing fields. Display priority on the task list as a colored badge."

6. Document as You Go

Keep notes on:

  • Changes made

  • Reasons for changes

  • Issues encountered

  • Workarounds used

Why: Essential for future maintenance and debugging

7. Use Buzzy's Version Control

Before major changes:

  • Save current version in Buzzy's Versions tab

  • Use descriptive version name

  • Document what's working

After successful changes:

  • Save new version with clear description

  • Keep stable versions for rollback

See: Rollback Strategies

Handling Cascading Changes

Some changes affect multiple parts:

Example: Renaming an Entity

Scenario: Rename "Projects" datatable to "Workspaces"

Affected areas in Buzzy:

  • Datatable name in Data tab

  • All screen references in Design tab

  • Navigation menu

  • Form labels and field names

  • Related datatable references (Linked Fields, Subtables)

  • Display rules and actions

Strategy:

  1. List all affected areas first

  2. Use Buzzy AI for consistent renaming: "Rename the Projects datatable to Workspaces throughout the application, including all screen labels, navigation, and field references"

  3. Review changes in Data and Design tabs

  4. Test all features that touched Projects/Workspaces

  5. Test in preview mode

Example: Changing Data Structure

Scenario: Split "due_date" into "start_date" and "end_date"

Affected areas in Buzzy:

  • Datatable fields in Data tab

  • Forms (create/edit screens)

  • Display views (list, detail screens)

  • Sort fields

  • Filter fields

  • Date-based formulas (JSONATA)

  • Display rules using due_date

Strategy:

  1. Add new fields first (don't remove old yet) in Data tab

  2. Manually update existing records with data

  3. Update forms to use new fields in Design tab

  4. Update display screens

  5. Update formulas and display rules

  6. Test everything thoroughly in preview mode

  7. Remove old field last

Common Change Scenarios

Adding Validation

Bad approach: "Add validation"

Good Buzzy approach: "Add validation to the task creation form:

  • Title field: Mark as Required, set max length 100 characters

  • Description field: Optional, set max length 1000 characters

  • Due date field: Mark as Required, add display rule to show error if date is in the past

  • Assignee field: Mark as Required, must be valid user from Users datatable

Show validation errors in red text below each field. Use condition field to disable submit button until all required fields are filled."

Changing UI Layout

Bad approach: "Make it look better"

Good Buzzy approach: "Change task list screen from table layout to card layout. Each card should show:

  • Title field (large, bold text)

  • Assignee field with avatar (top right)

  • Status field as colored badge

  • Due date field with calendar icon

  • Description field preview (first 100 chars using JSONATA substring)

Use Buzzy's responsive layout: 2 columns on desktop, 1 column on mobile, with standard card spacing."

Adding Permission Rules

Bad approach: "Add permissions"

Good Buzzy approach: "Add these server-level permission rules to Tasks datatable:

  • Admins: Full access - no Viewers field restrictions

  • Team Members: Can create tasks, view all team tasks (add to Viewers field), edit/delete only their own (use display rules: owner = current_user)

  • Viewers: Add to Viewers field for read-only access

Use display rules to show/hide action buttons based on user.highestRole and owner field. For users without permission, hide buttons using condition fields."

When Changes Go Wrong

Recovery Steps

1. Stop making changes: Don't try to "fix" with more changes

2. Assess damage:

  • What broke?

  • What still works?

  • What data is affected?

3. Review recent changes:

  • What did you change?

  • What was the prompt?

  • What was the result?

4. Decide recovery approach:

  • Option A: Fix the specific issue using visual editor or targeted AI prompt

  • Option B: Rollback using Buzzy's Versions tab (see Rollback Strategies)

  • Option C: Restore from saved version

5. Prevent recurrence:

  • Understand what went wrong

  • Improve change process

  • Add safeguards

Prevention Better Than Cure

Before making changes:

Change Request Templates

Template: Adding Feature

Add [feature name] to Buzzy app with the following:

Datatables & Fields:
- [Datatable names and field specifications]
- [Relationships: Subtables for 1:M, Linked Fields for N:M]

Screens:
- [Screen names and layouts]
- [Forms and display components]

Display Rules & Actions:
- [Conditional logic using JSONATA]
- [Actions: submit, navigation, CRUD operations]

Security:
- [Viewers field usage]
- [Role-based display rules]

Integration:
- [How it connects to existing Datatables and screens]

Success Criteria:
- [How to verify it works in preview mode]

Template: Modifying Feature

Modify [feature name] in Buzzy:

Current Behavior:
- [what it does now in Data and Design tabs]

Desired Behavior:
- [what it should do]

Keep Unchanged:
- [what should stay the same]

Affected Areas in Buzzy:
- [Datatables/fields/screens that might be impacted]
- [Display rules and actions that reference this]

Testing:
- [How to verify change works in preview mode]

Next Steps

Last updated