Homepage – Marouane Souda

My open source contributions

This page documents my open source contributions to supabase/supabase. Each entry includes context, implementation details, and key learnings.

Prevent edit panel from opening for database triggers that are not open for modification

View on GitHub

Fixed a bug in the Supabase Studio where clicking on a trigger always opened the edit side panel even though users shouldn't be allowed to edit those triggers.

What I did

  • Investigated the conditional logic that controlled when the trigger edit side panel should open.
  • Updated checks to ensure the panel only opens for triggers in editable schemas, and for users with the correct permissions to edit triggers, preventing unintended edit affordances.
  • Improved UI behavior to align with permission boundaries for database triggers within the dashboard.

Outcome

Users can no longer open the edit side panel for triggers without the permission to edit triggers orin protected schemas, ensuring the UI respects schema permission boundaries and reducing confusion. The fix was successfully merged.

What I learned

  • Gained deeper familiarity with permission boundary edge cases in the Supabase dashboard.
  • Strengthened collaborative debugging and contribution workflow within the Supabase repo.

Fix composite foreign key error column display in Studio

View on GitHub

Corrected the error panel in the Studio foreign key selector so that when composite foreign keys have misconfigured pairs, the UI correctly shows the mismatched column names instead of defaulting to the first pair.

What I did

  • Identified that the foreign key side panel was incorrectly showing the names of the columns whose types are mismatched when multiple pairs in a composite foreign key had mismatching types.
  • Expanded error object type definitions to include explicit source and target column names and types for all pairs.
  • Updated validation and rendering logic in the foreign key selector UI to use the enhanced error data so the correct columns are shown in error notices.

Outcome

Users now see accurate column names and types in the error panel when configuring composite foreign keys with mismatches, reducing confusion and improving schema editing UX. The fix was merged into the main branch.

What I learned

  • Gained deeper insight into how the Supabase Studio handles composite foreign key validation.
  • Improved experience working with TypeScript type definitions and frontend error propagation.
  • Learned how to refine UI/UX feedback to make schema misconfiguration errors clearer to users.,

Prevent edit panel from opening for database functions that are not open for modification

View on GitHub

Fixed a bug in the Supabase Studio where clicking on a function always opened the edit side panel even though users shouldn't be allowed to edit those functions.

What I did

  • Investigated the conditional logic that controlled when the function edit side panel should open.
  • Updated checks to ensure the panel only opens for functions in editable schemas, and for users with the correct permissions to edit functions, preventing unintended edit affordances.
  • Improved UI behavior to align with permission boundaries for database functions within the dashboard.

Outcome

Users can no longer open the edit side panel for functions without the permission to edit functions orin protected schemas, ensuring the UI respects schema permission boundaries and reducing confusion. The fix was successfully merged.

What I learned

  • Gained deeper familiarity with permission boundary edge cases in the Supabase dashboard.
  • Strengthened collaborative debugging and contribution workflow within the Supabase repo.

Disable 'New Table' button for protected schemas in Schema Visualizer

View on GitHub

Prevent the Schema Visualizer from allowing users to add tables to protected schemas that don't have tables by hiding the "New Table" button when table creation is not permitted.

What I did

  • Detected that the "New Table" button remained visible and active, even when it shouldn't be.
  • Table creation should be blocked on internal schemas. Those schemas are used by Supabase and are closed for direct modifications by users.
  • Table creation should also be blocked for users without the permission to create tables.
  • Updated the visualizer UI logic to check for both schema permissions and user permissions, and hide the button when creation is not allowed.
  • Added a message to inform the user why he/she can't create the table.
  • Ensured this change prevents accidental navigation to the editor with unintended table creation workflows.

Outcome

Users can no longer attempt to create tables in protected schemas or without the proper permissions through the visualizer if the schema is empty; the UI now prevents the action at the source. The fix was merged into the main branch

What I learned

  • Learned how Supabase handles protected schemas and permissions in the dashboard UI.
  • Improved skills managing conditional UI affordances based on rules.
  • Gained experience collaborating on UX fixes that directly close an inconsistency between UI controls and actual permissions.

Fix editor pagination confirmation modal loading state

View on GitHub

Resolved an issue in the Supabase Studio editor where the pagination confirmation modal would get stuck showing a loading state after confirming navigation.

What I did

  • Updated the modal confirmation logic to correctly close or reset loading state when navigating between pages in the studio editor.
  • Ensured that selecting rows and then moving to the next/previous page no longer causes the modal UI to hang indefinitely in loading.
  • Added or tweaked checks in the component to handle state transitions cleanly after confirmation actions.

Outcome

Users now experience smooth pagination transitions in the editor without the confirmation modal getting stuck. The fix was successfully merged into the main branch of the Supabase repo.

What I learned

  • Gained deeper insight into pagination UX edge cases within Supabase Studio.
  • Reinforced how careful UI state transitions improve the developer experience in complex dashboards.

Fix 'Close to the Right' behavior on inactive tabs in Supabase Editor

View on GitHub

Resolved incorrect behavior of the "Close to the Right" tab action when invoked on a non-active tab left of the active tab.

What I did

  • Corrected the logic that determines which tab content should remain visible after using "Close to the Right" on an inactive tab.
  • Ensured that when a tab left of the active tab is closed to the right, the UI now correctly navigates to the expected tab and updates the URL accordingly.

Outcome

Users no longer see the previously active tab's content persist when 'Close to the Right' is triggered on a non-active tab. The fix was merged into `master` and the branch was deleted post-merge.

What I learned

  • Learned deeper nuances of the Supabase Editor's tab state management logic.
  • Experience with contributing fixes that directly improve day-to-day workflows for Supabase users.