‹ Reports
The Dispatch

GitHub Repo Analysis: supabase/supabase


Executive Summary

Supabase is an open-source alternative to Firebase, designed to provide a comprehensive suite of backend tools. Hosted under the 'supabase' GitHub organization, it leverages enterprise-grade, open-source software to offer services like database management, authentication, API generation, real-time subscriptions, and more. The project is notable for its active community engagement and frequent updates, evidenced by its high number of commits and contributors. It supports a wide range of programming languages through official and community libraries.

Recent Activity

Team Members and Contributions:

Recent Pull Requests:

Recent Issues:

Risks

  1. Issue Resolution Efficiency: The high number of open issues (428) could indicate inefficiencies in managing and resolving community-reported issues. This might affect the project's ability to sustain its rapid growth and could potentially lead to dissatisfaction within the community if not addressed promptly.
  2. Scalability Concerns: Issues like #28018 and #28015 related to pagination and file operations could pose significant risks in terms of scalability and performance, particularly for enterprise-level applications relying on Supabase for critical operations.
  3. Security Configuration Challenges: Recurrent issues related to security configurations such as CORS (#28008) highlight potential vulnerabilities or gaps in the default setup provided by Supabase. This could expose users to security risks if not adequately addressed.

Of Note

  1. Diverse Language Support: The project's support for a wide array of programming languages through both official and community-driven libraries is particularly notable. This not only broadens the potential user base but also fosters a diverse developer community around the project.
  2. Active Community Involvement: The large number of open issues reflects a highly engaged community that actively participates in the project’s development through bug reports and feature requests. However, this also presents challenges in managing community expectations and issue resolution workflows.
  3. Comprehensive Feature Set: Supabase’s offering of features comparable to Firebase with additional flexibility due to its open-source nature positions it uniquely in the market. This comprehensive feature set paired with active development could be a key driver of its growing popularity among developers looking for scalable backend solutions.

Quantified Reports

Quantify commits



Quantified Commit Activity Over 14 Days

Developer Avatar Branches PRs Commits Files Changes
Charis 4 14/13/0 20 192 36034
Jonathan Summers-Muir 4 5/5/0 14 166 13976
Joshen Lim 4 16/17/0 31 100 7031
Alaister Young 2 6/5/0 7 323 4637
Francesco Sansalvadore 4 5/4/0 12 110 4410
github-actions[bot] 1 2/2/0 2 4 2685
Andrew Smith 1 3/2/1 2 36 2428
Thor 雷神 Schaeff 2 6/6/0 7 40 2219
Ivan Vasilov 2 5/4/0 5 26 869
Jordi Enric 1 5/5/1 5 28 811
Wen Bo Xie 2 3/2/0 3 4 348
Kang Ming 1 2/2/0 2 5 345
Paul Cioanca 2 1/1/0 4 14 341
Chase Granberry 1 0/0/0 1 4 327
Bobbie Soedirgo 2 1/1/0 2 4 239
Tyler 1 3/3/0 3 3 227
Terry Sutton 1 1/1/0 1 7 197
Inian 1 2/2/0 2 6 187
Guilherme Souza 1 2/2/0 2 1 134
Michael Ridley 1 2/1/0 2 12 134
Han Qiao 1 0/0/0 2 7 99
Kevin Grüneberg 3 3/1/0 4 8 96
Chris Gwilliams (encima) 2 2/0/0 2 3 94
Monica Khoury 1 2/2/0 4 4 57
Etienne Stalmans 1 3/4/0 4 5 53
Ziinc 1 0/0/0 1 3 52
Pamela Chia 1 1/1/0 1 1 52
Joel Lee 1 1/1/0 2 2 44
Steve Xu 1 0/1/0 1 1 34
Long Hoang 1 1/1/0 1 3 22
Thomas 1 1/1/0 1 1 21
Copple 1 2/1/0 2 3 20
Joe Burchett 1 1/1/0 1 1 20
hallidayo 1 3/3/0 4 6 19
Chandana Anumula 1 3/3/0 3 3 18
Martin William 1 2/1/1 1 2 13
Jason Creviston 1 1/1/0 1 1 12
Will McBride 1 0/0/0 1 1 12
Div Arora (darora) 1 1/0/0 2 1 11
Gor 1 1/1/0 1 1 6
karlo 1 1/1/0 1 1 6
Varun Balani 1 1/1/0 1 1 6
Richard Kavanagh 1 2/1/0 1 1 6
Meet Vyas 1 1/1/0 1 1 6
Kamil Ogórek 1 1/1/0 1 3 6
dependabot[bot] 1 3/1/2 1 1 6
Hichem Dahi 1 2/1/0 1 1 5
Jens Hauke 1 1/1/0 1 1 4
Jonathan Hutchison 1 1/1/0 1 1 4
Ant Wilson (awalias) 1 1/0/0 1 1 4
Emil Grehn 1 1/1/0 1 1 4
Oliver Hogan 1 1/1/0 1 1 4
heocoi 1 1/1/0 1 1 2
Trevor Dobbertin 1 0/1/0 1 1 2
Nil Gàllego 1 0/1/0 1 2 2
DÁVID SZUHAY 1 1/1/0 1 1 2
Duncan 1 1/1/0 1 1 2
Beng Eu 1 1/1/0 1 1 2
Tristan Rhodes 1 1/1/0 1 1 2
lollipopkit🏳️‍⚧️ 1 0/0/0 1 1 2
Sebastián Poliak 1 0/1/0 1 1 2
Filipe Cabaço 1 1/1/0 1 1 2
Prashant Jangam 1 1/1/0 1 1 2
Tyler Fontaine 1 1/1/0 1 1 2
Carel de Waal 1 1/1/0 1 1 1
Michael Ridley 1 0/0/0 1 1 1
None (eposha) 0 1/0/0 0 0 0
jingsam (jingsam) 0 2/0/0 0 0 0
None (ajdking8) 0 1/0/1 0 0 0
Omar Karazoun (omarkar101) 0 1/0/1 0 0 0
Nick ter Haar (nickterhaar) 0 1/0/0 0 0 0
None (Unique-Usman) 0 1/0/0 0 0 0
dikshant rajput (dikshantrajput) 0 1/0/0 0 0 0
lucien (lucien-le-foll) 0 1/0/0 0 0 0
Sinan Talha KOSAR (sinantalhakosar) 0 1/0/0 0 0 0
Jasper (jasper-at-windswept) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Supabase project has a significant number of open issues (428), indicating an active community engagement or potential challenges in managing and resolving these issues efficiently. The project's GitHub repository shows a high level of activity with frequent updates and contributions from a diverse set of contributors.

Notable Issues:

  • Issue #28022: This issue involves a problem with generating new IDs after deleting records, which results in duplicate ID errors. The discussion suggests a need for better handling of ID generation and state awareness in the application.

  • Issue #28018 and Issue #28015: Both issues are related to limitations in pagination and large file deletions in Supabase Storage when hosted on supabase.com. These reflect potential scalability or performance issues that could impact user experience in production environments.

  • Issue #28008: A CORS error reported in this issue highlights possible misconfiguration or lack of adequate documentation on CORS settings, which is critical for security and functionality in web applications.

  • Issue #28004: The request for an API to delete folders directly in storage indicates a gap in the current feature set, which affects usability for cloud storage management.

  • Issue #27997: Reports a bug in self-hosting setup related to time synchronization, suggesting potential improvements in the stability and robustness of the deployment process.

Issue Details

Most Recently Created:

  • #28022: Could not create new items
    • Priority: High
    • Status: Open
    • Created: 0 days ago

Most Recently Updated:

  • #27997: [Self Hosting] supabase-analytics is unhealthy, Monotonic time stepped backwards.
    • Priority: High
    • Status: Open
    • Updated: 0 days ago

Important Rules

The analysis strictly adheres to referencing issues by their number prefixed by #, ensuring concise descriptions without unnecessary elaboration. Recommendations or speculative conclusions are avoided, focusing solely on presenting factual information derived from the issue tracker.

Report On: Fetch pull requests



Analysis of Open and Recently Closed Pull Requests in Supabase Repository

Open Pull Requests

  1. PR #28021: Chore: Added myself (Michael) to humans.txt

    • Status: Open
    • Summary: A simple update to add a contributor's name to a text file. This is straightforward and should not cause any issues.
    • Concerns: None. It's a non-functional change.
  2. PR #28020: fix: Fix the Sheet closing transition

    • Status: Open
    • Summary: Aims to fix a UI transition issue.
    • Concerns: The PR has been ignored by the connected project due to its settings, which might delay its integration testing.
  3. PR #28019: chore: adjust billing for edge function count

    • Status: Open, Draft
    • Summary: Adjusts billing related to edge functions, marked as draft and not to be merged until a specific date.
    • Concerns: As it's a draft and involves billing, careful review and testing are required to ensure it doesn't introduce billing errors.
  4. PR #28017: update pricing page wording

    • Status: Open
    • Summary: Updates copywriting on the pricing page.
    • Concerns: Minor textual changes; however, ensuring accuracy in pricing details is crucial.
  5. PR #28014: chore: new wrappers 16/07/24

    • Status: Open
    • Summary: Adds new wrappers and updates UI components.
    • Concerns: Extensive changes that could affect functionality, requiring thorough review and testing.
  6. PR #28013: Remove mention of safeupdate temporarily

    • Status: Open
    • Summary: Temporarily removes mentions of 'safeupdate' due to an unintended impact.
    • Concerns: Impact on documentation clarity; users might miss critical information until it's re-added.
  7. PR #28010: docs: clarify free plan billing

    • Status: Open
    • Summary: Clarifies billing information for the free plan in the documentation.
    • Concerns: Critical for user understanding, ensuring accuracy is essential.
  8. PR #27980: fix: maintain listbox size on mouseenter

    • Status: Open
    • Summary: Fixes a bug where the listbox size was inconsistent upon mouse interaction.
    • Concerns: UI bug fix, should be checked for any unintended side effects in UI behavior.

Recently Closed Pull Requests

  1. PR #28009: fix: instance specs

    • Status: Closed, Merged
    • Summary: Aligns instance specifications with compute documents.
    • Impact: Ensures documentation accuracy regarding instance specs.
  2. PR #28006: Add flag to check for enterprise plan in invite member modal

    • Status: Closed, Merged
    • Summary: Adds a flag to conditionally display content based on the enterprise plan status.
    • Impact: Enhances user experience by providing context-sensitive features based on subscription plans.
  3. PR #28005: remove duplicate instructions

    • Status: Closed, Merged
    • Summary: Removes duplicate instructions regarding GitHub login in the OAuth documentation.
    • Impact: Streamlines documentation, improving clarity and user experience by removing unnecessary repetition.
  4. PR #28002: feat: add orientation to studio trigger page ui Status: Closed, Merged Summary: Adds orientation information to the studio trigger page UI. Impact: Enhances usability by providing more context about triggers directly in the UI.

  5. PR #28001 (Closed without merging): feat: add avatar picker to profile Summary: Intended to add an avatar picker to user profiles but was closed without merging. Concerns/Impact: The closure without merging suggests possible issues or changes in priorities. It would be beneficial to understand the reasons behind not proceeding with this enhancement.

  6. PR #27999 (Closed and merged): Display up-to-date customer balance [GEN-10135] Summary: Updates the method of fetching customer balance data to ensure it is up-to-date. Impact: Improves data accuracy for customer balances, enhancing user trust and satisfaction by providing reliable financial data.

  7. PR #27995 (Closed and merged): docs: remove Intel Mac warning for Supabase Studio on Supabase CLI --> Getting Started Summary: Removes outdated warning for Intel Mac users about Docker configuration from the documentation. Impact: Keeps documentation up-to-date with current software compatibility, reducing confusion for Mac users setting up Supabase Studio.

  8. PR #27992 (Closed and merged): Add Carel to humans.txt Summary: Adds a new contributor's name to humans.txt, acknowledging their contributions. Impact: Positive impact on community engagement by recognizing contributors publicly.

  9. PR #27985 (Closed and merged): chore: update URL for codegen Summary: Updates the URL used in a code generation script within the project settings. Impact: Ensures that the code generation tool points to the correct URL, which is crucial for maintaining accurate API client libraries.

  10. PR #27984 (Closed and merged): fixed typo Summary: Corrects a typo in one of the documentation files. Impact: Improves documentation clarity and professionalism by correcting language errors.

These pull requests reflect active development and maintenance within the Supabase project, with a focus on improving functionality, user experience, and documentation clarity. The quick turnaround on many of these pull requests suggests an efficient workflow and responsive project management practices within the Supabase community.

Report On: Fetch Files For Assessment



Analysis of Source Code Files

File: apps/design-system/registry/default/example/accordion-demo.tsx

Structure and Quality:

  • Purpose: This file demonstrates the implementation of an accordion component in the design system.
  • Imports: Imports specific accordion components from a UI library, indicating modular use of components.
  • Functionality: The function AccordionDemo returns JSX that renders a collapsible accordion with three items, each containing a question and an answer. This is typical for UI component demos.
  • Readability: The code is well-structured and easy to understand. Proper indentation and clear naming conventions are used.
  • Best Practices: Uses functional components and direct imports which are good practices in React development.

Potential Improvements:

  • Comments: Adding comments explaining each section or choice can help new developers understand the purpose of each part of the component.
  • Accessibility Enhancements: Ensure that accessibility features are highlighted or demonstrated, such as ARIA labels if not handled internally by the components.

File: apps/docs/components/AuthSmsProviderConfig/AuthSmsProviderConfig.tsx

Structure and Quality:

  • Purpose: Manages configuration for different SMS providers within the authentication system.
  • Imports and Hooks: Uses React hooks effectively (useEffect, useReducer, useRef) for managing component state and side effects, which is a modern approach in React.
  • Functionality: Dynamically renders SMS provider configurations and handles URL state changes. It supports multiple providers like MessageBird, Twilio, Vonage, and TextLocal.
  • Readability and Maintainability: The code is moderately complex but well organized. Splitting provider-specific configurations into separate files (MessageBirdConfig.mdx, etc.) enhances maintainability.

Potential Improvements:

  • Error Handling: Could improve by adding error handling around dynamic imports or external calls.
  • UI Feedback: Adding loading states or visual feedback when switching providers could enhance user experience.

File: apps/database-new/app/[thread_id]/[message_id]/CodeEditor.tsx

Structure and Quality:

  • Purpose: Implements a code editor component that formats SQL code within a messaging/thread interface.
  • Functionality: It fetches a message (presumably containing SQL), strips unnecessary characters, formats it, and displays it in a Monaco editor—a popular choice for web-based code editors.
  • Code Quality: Uses modern JavaScript features like async/await effectively. The separation of concerns could be better; the formatting logic could be extracted to a utility function or module.

Potential Improvements:

  • Separation of Concerns: Extracting SQL formatting to a separate utility file would clean up the component code and enhance reusability.
  • Enhanced Editor Features: Could potentially add more features to the editor such as linting SQL queries or autocomplete functionality.

File: apps/design-system/registry/default/example/button-demo.tsx

Structure and Quality:

  • Purpose: Demonstrates various button styles and states in the design system.
  • Functionality: Renders buttons with different properties such as loading states, icons, etc., showcasing component versatility.
  • "Readability": Code is straightforward and easy to follow with clear demonstration intent.

Potential Improvements:

  • Interactive Demo: Integrating interactive properties where users can toggle properties like 'loading' could make the demo more engaging.

File: apps/docs/components/ApiSchema.tsx

Structure and Quality:

  • Purpose: Displays API schemas possibly for documentation purposes.
  • Functionality: Uses tabs to switch between example JSON outputs and schema definitions. Utilizes external libraries for JSON sampling and code display which indicates good reuse of existing tools.
  • Code Quality: Moderate complexity but maintains readability with well-named components and structured JSX.

Potential Improvements:

  • Dynamic Schema Loading: If schemas are static, consider fetching them dynamically if applicable to reduce initial load times.
  • Expandability: Could allow users to interact with the schema, such as collapsing/expanding sections.

Overall, these files demonstrate good coding practices with some room for enhancements mainly around interactivity and documentation within the code.

Report On: Fetch commits



Development Team and Recent Activity

Members and Recent Commits

  • Thor 雷神 Schaeff (thorwebdev)

    • Recent Activity: Worked on blog posts related to JavaScript and security features. Updated dependencies and project configurations.
  • Inian

    • Recent Activity: Focused on security enhancements and blog posts about security features.
  • Kevin Grüneberg (kevcodez)

    • Recent Activity: Updated billing information and addressed issues related to billing documentation.
  • Joshen Lim (joshenlim)

    • Recent Activity: Extensive contributions across various features including enterprise plan checks, UI updates, database functions, and handling customer balances. Collaborated with Alaister Young on several commits.
  • Martin William (MartinSWDev)

    • Recent Activity: Added orientation feature to studio trigger page UI.
  • Thomas (ecktoteckto)

    • Recent Activity: Updated customer balance display functionalities.
  • Carel de Waal (CarelFdeWaal)

    • Recent Activity: Added personal information to humans.txt.
  • Tyler (dshukertjr)

    • Recent Activity: Updated JavaScript code samples and added Dart code samples in the documentation.
  • Andrew Smith (silentworks)

    • Recent Activity: Updated password documentation and fixed formatting issues.
  • Gor (Gor4)

    • Recent Activity: Removed outdated warnings for Intel Mac users in Supabase Studio documentation.
  • Varun Balani (varunbln)

    • Recent Activity: Fixed issues related to CredentialIdentity errors in storage documentation.
  • DÁVID SZUHAY (Szuhaydv)

    • Recent Activity: Fixed a typo in the storage schema documentation.
  • Francesco Sansalvadore (fsansalvadore)

    • Recent Activity: Updated breadcrumb navigation for documentation pages. Added new components to the design system.
  • Charis (charislam)

    • Recent Activity: Fixed footnote links from table of contents. Handled invalid data checks for project API endpoints in the documentation.
  • Joshen Lim (joshenlim)

    • Recent Activity: Addressed multiple UI fixes and enhancements across different components of Supabase Studio. Also worked on updating URL paths for codegen functionalities.

Patterns, Themes, and Conclusions

  1. Collaboration: Several team members like Joshen Lim and Alaister Young frequently collaborate on commits, indicating a team-oriented approach to development.

  2. Documentation Focus: There is a significant focus on updating and maintaining documentation, as seen from commits by Tyler, Andrew Smith, and others. This suggests an emphasis on keeping the developer community well-informed and supported.

  3. Feature Enhancements: Many recent activities revolve around enhancing existing features such as UI improvements, adding functionalities like orientation in studio triggers, or updating billing settings which indicates ongoing efforts to refine the product.

  4. Security Enhancements: Multiple commits by Inian and others focus on security enhancements, reflecting a priority towards maintaining robust security measures.

  5. Bug Fixes and Typo Corrections: Regular updates fixing minor bugs or typos show attention to detail and a commitment to quality in project outputs.

Overall, the development team at Supabase is actively engaged in both expanding the capabilities of their platform and ensuring the existing functionalities meet high standards of performance and user experience. Their collaborative efforts and focus on documentation highlight their commitment to supporting a growing user base effectively.