Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supabase database webhook example ugprade #1386

Open
wants to merge 14 commits into
base: main
Choose a base branch
from

Conversation

D-K-P
Copy link
Member

@D-K-P D-K-P commented Oct 6, 2024

Summary by CodeRabbit

  • New Features

    • Updated documentation structure with new sections for "Frameworks," "Guides," and "Examples."
    • Added new guides and examples to assist users in setting up and using Trigger.dev.
    • Introduced a guide for triggering tasks from Supabase Database Webhooks with detailed workflows.
  • Documentation

    • Removed outdated introductory guide for frameworks.
    • Revised titles and descriptions in various guides for clarity.
    • Enhanced readability and organization of existing documents.
    • Expanded prerequisites and setup instructions for new functionalities.
  • Chores

    • Implemented redirects for outdated documentation links to improve navigation.

Copy link

changeset-bot bot commented Oct 6, 2024

⚠️ No Changeset found

Latest commit: ade508a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

coderabbitai bot commented Oct 6, 2024

Walkthrough

This pull request involves several changes to documentation files related to the Trigger.dev framework. Notably, the introductory guide for Trigger.dev has been removed, and various other guides have been updated for clarity and structure. Titles and descriptions have been modified in several documents, and new sections have been added to enhance organization. Additionally, the configuration file has been adjusted to manage redirects and navigation more effectively, reflecting the removal of certain guides.

Changes

File Change Summary
docs/guides/frameworks/introduction.mdx File removed; contained introductory guide for Trigger.dev and visual representation of frameworks.
docs/guides/frameworks/prisma.mdx Title and sidebar title updated from "Prisma" to "Prisma setup guide"; content structure preserved.
docs/guides/frameworks/sequin.mdx Sidebar title updated to "Sequin database triggers"; content reformatted for clarity; code snippets improved.
docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx Title updated; description modified; overview restructured; new table created; code snippets updated.
docs/guides/introduction.mdx Title changed to "Frameworks, guides and examples overview"; new sections added for Frameworks, Guides, and Examples.
docs/mint.json Two new redirects added; navigation entries updated to reflect removal of certain pages.
docs/snippets/supabase-prerequisites.mdx Title updated to focus solely on package.json; instructions clarified; tsconfig.json reference removed.

Possibly related PRs

Suggested reviewers

  • samejr
  • matt-aitken

Poem

In a world of code where rabbits play,
We hop through docs, brightening the way.
With guides anew and titles so clear,
We celebrate changes, let's give a cheer!
For every framework, a path to explore,
Hopping along, we’ll learn even more! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Outside diff range and nitpick comments (18)
docs/snippets/supabase-prerequisites.mdx (2)

20-20: Approve change with minor grammatical correction.

The simplified instruction focusing only on package.json is good. However, there's a minor grammatical issue that should be addressed.

Consider this minor grammatical correction:

- If your project does not already have `package.json` file (e.g. if you are using Deno), create it manually in your project's root folder.
+ If your project does not already have a `package.json` file (e.g., if you are using Deno), create it manually in your project's root folder.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~20-~20: You might be missing the article “a” here.
Context: ... If your project does not already have package.json file (e.g. if you are usin...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


22-22: Approve change with minor punctuation correction.

The updated info box correctly focuses on the package.json file, maintaining consistency with the rest of the document.

Consider this minor punctuation correction:

- <Info> If your project has a `package.json` file you can skip this step.</Info>
+ <Info> If your project has a `package.json` file, you can skip this step.</Info>
🧰 Tools
🪛 LanguageTool

[uncategorized] ~22-~22: A comma might be missing here.
Context: ...o> If your project has a package.json file you can skip this step. This is...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

docs/guides/introduction.mdx (4)

7-11: LGTM: New imports for framework cards.

The added imports for card components align with the new "Frameworks" section. They follow a consistent naming convention, which is good for maintainability.

Consider grouping these imports together in a single line for better readability:

import { CardBun, CardNodejs, CardNextjs, CardRemix, CardSupabase } from "/snippets/cards";

This assumes that all card components are exported from a single file. If not, the current approach is fine.


13-21: LGTM: New "Frameworks" section enhances document structure.

The addition of the "Frameworks" section with a CardGroup component provides a clear, visual overview of supported frameworks. This structure is user-friendly and aligns well with the document's new scope.

Consider adding a brief introductory text before the CardGroup to provide context for the frameworks listed. For example:

## Frameworks

Trigger.dev supports integration with various frameworks. Choose your preferred framework to get started:

<CardGroup cols={3}>
  ...
</CardGroup>

23-30: LGTM: New "Guides" section provides valuable resources.

The addition of the "Guides" section with a concise introduction and a well-structured table of available guides enhances the document's utility. The included guides cover important topics for getting started with Trigger.dev.

Consider adding a third column to the table for the difficulty level or estimated time to complete each guide. This could help users choose the most appropriate guide for their skill level or time constraints. For example:

| Guide | Description | Difficulty/Time |
| :---- | :---------- | :-------------- |
| [Prisma](/guides/frameworks/prisma) | This guide will show you how to setup Prisma with Trigger.dev | Beginner / 15 min |
| [Sequin database triggers](/guides/frameworks/sequin) | This guide will show you how to trigger tasks from database changes using Sequin | Intermediate / 30 min |

Line range hint 32-52: LGTM: Comprehensive "Examples" section adds significant value.

The new "Examples" section provides a wealth of practical tasks that users can leverage. The table format is consistent with the "Guides" section, maintaining a cohesive document structure. The wide range of examples showcases the versatility of Trigger.dev.

To improve scannability, consider grouping the examples by category or technology. You could add a "Category" column to the table or use subheadings to separate different types of examples. For instance:

## Examples

Tasks you can copy and paste to get started with Trigger.dev. They can all be extended and customized to fit your needs.

### AI and Machine Learning
| Example task | Description |
| :----------- | :---------- |
| [DALL·E 3 image generation](/guides/examples/dall-e3-generate-image) | Use OpenAI's GPT-4o and DALL·E 3 to generate an image and text. |
| [Deepgram audio transcription](/guides/examples/deepgram-transcribe-audio) | Transcribe audio using Deepgram's speech recognition API. |
| [Vercel AI SDK](/guides/examples/vercel-ai-sdk) | Use Vercel AI SDK to generate text using OpenAI. |

### Media Processing
| Example task | Description |
| :----------- | :---------- |
| [FFmpeg video processing](/guides/examples/ffmpeg-video-processing) | Use FFmpeg to process a video in various ways and save it to Cloudflare R2. |
| [PDF to image](/guides/examples/pdf-to-image) | Use `MuPDF` to turn a PDF into images and save them to Cloudflare R2. |
| [Sharp image processing](/guides/examples/sharp-image-processing) | Use Sharp to process an image and save it to Cloudflare R2. |

... (continue for other categories)

This organization can help users quickly find examples relevant to their specific needs.

docs/guides/frameworks/sequin.mdx (6)

Line range hint 1-29: LGTM! Minor suggestion for clarity.

The updated title and description accurately represent the content of the guide. The prerequisites are comprehensive and provide necessary context for users.

Consider changing "You are about to create a regular Trigger.dev task that you will execute when ever a post is inserted or updated in your database" to "You are about to create a regular Trigger.dev task that will execute whenever a post is inserted or updated in your database" for improved clarity and correct spelling.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~27-~27: The official spelling of this programming framework is “Next.js”.
Context: ...w Trigger.dev's Next.js setup guide to setup your project. You can return ...

(NODE_JS)


[grammar] ~27-~27: The word “setup” is a noun. The verb is spelled with a white space.
Context: ... guide](/guides/frameworks/nextjs) to setup your project. You can return to this gu...

(NOUN_VERB_CONFUSION)


Line range hint 47-120: Suggestions for improved error handling and code organization.

The code snippets effectively implement the described functionality. However, consider the following improvements:

  1. Error handling in the createEmbeddingForPost task:

    • Add a try-catch block to handle potential errors from the OpenAI API call and the upsertEmbedding function.
  2. Environment variable validation:

    • Add checks for required environment variables (OPENAI_API_KEY, DATABASE_URL) at the beginning of the task.
  3. Code organization in utils.ts:

    • Consider moving the database connection logic to a separate function or module for better reusability.

Here's an example of how you could improve the createEmbeddingForPost task:

import { task } from "@trigger.dev/sdk/v3";
import { OpenAI } from "openai";
import { upsertEmbedding } from "../util";

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

export const createEmbeddingForPost = task({
  id: "create-embedding-for-post",
  run: async (payload: {
    record: {
      id: number;
      title: string;
      body: string;
      author: string;
      createdAt: string;
      embedding: string | null;
    },
    metadata: {
      table_schema: string,
      table_name: string,
      consumer: {
        id: string;
        name: string;
      };
    };
  }) => {
    if (!process.env.OPENAI_API_KEY || !process.env.DATABASE_URL) {
      throw new Error("Missing required environment variables");
    }

    try {
      const content = `${payload.record.title}\n\n${payload.record.body}`;
      const embeddingResponse = await openai.embeddings.create({
        model: "text-embedding-ada-002",
        input: content,
      });
      const embedding = embeddingResponse.data[0].embedding;

      await upsertEmbedding(embedding, payload.record.id);

      return {
        ...payload.record,
        embedding: JSON.stringify(embedding),
      };
    } catch (error) {
      console.error("Error in createEmbeddingForPost task:", error);
      throw error;
    }
  }
});

Would you like me to provide suggestions for improving the utils.ts file as well?

🧰 Tools
🪛 LanguageTool

[uncategorized] ~87-~87: Loose punctuation mark.
Context: ...N.stringify(embedding), }; } }); ```` ```ts utils.ts import pg from ...

(UNLIKELY_OPENING_PUNCTUATION)


Line range hint 211-271: LGTM! Minor formatting suggestions and security note.

The instructions for creating a Sequin consumer are clear and comprehensive. Here are some minor suggestions to improve the section:

  1. Formatting: Consider using a consistent numbering system throughout the steps. Currently, some steps use numbers (1, 2, 3) while others use dots (1., 2., 3.).

  2. Security note: Add a reminder about the importance of keeping the SEQUIN_WEBHOOK_SECRET secure.

Consider adding the following security note at the end of the section:

<Note>
Remember to keep your `SEQUIN_WEBHOOK_SECRET` secure and never expose it in client-side code or public repositories. Regularly rotate this secret to maintain the security of your webhook endpoint.
</Note>

This addition will help reinforce good security practices for users implementing this integration.


Line range hint 273-320: LGTM! Consider adding a troubleshooting tip.

The end-to-end test instructions are clear and comprehensive, covering all aspects of the setup from creating a test post to verifying the process in both Sequin and Trigger.dev dashboards.

Consider adding a troubleshooting tip at the end of this section to help users who might encounter issues:

<Tip>
If you don't see the expected results, check the following:
1. Ensure all services (Next.js app, Trigger.dev dev server, and Sequin tunnel) are running.
2. Verify that your database connection and Sequin configuration are correct.
3. Check the logs of your Next.js app and Trigger.dev dev server for any error messages.
4. Confirm that the `SEQUIN_WEBHOOK_SECRET` in your `.env.local` file matches the one set in the Sequin console.
</Tip>

This addition will provide users with a starting point for troubleshooting common issues they might encounter during the testing process.


Line range hint 322-331: Expand the "Next steps" section for more comprehensive guidance.

The current "Next steps" section provides good initial suggestions for error handling and production deployment. However, consider expanding this section to provide more specific guidance and cover additional important aspects of production readiness.

Here's an expanded version of the "Next steps" section:

## Next steps

With Sequin and Trigger.dev, every post in your database will now have an embedding. This is a simple example of how you can trigger long-running tasks on database changes. To make your implementation production-ready, consider the following steps:

1. **Error Handling and Monitoring**:
   - Add [retries](/errors-retrying) to your Trigger.dev task to ensure that any errors are captured and logged.
   - Implement comprehensive error logging and monitoring to track task execution and catch any issues early.

2. **Performance Optimization**:
   - Consider batching database operations if you expect high volumes of changes.
   - Optimize your OpenAI API usage to minimize costs and improve response times.

3. **Security Enhancements**:
   - Implement rate limiting on your API endpoint to prevent abuse.
   - Regularly rotate your `SEQUIN_WEBHOOK_SECRET` and other sensitive credentials.

4. **Scalability**:
   - Design your system to handle increased load as your database grows.
   - Consider implementing a queue system for handling spikes in database changes.

5. **Testing**:
   - Develop a comprehensive test suite, including unit tests for your tasks and integration tests for the entire flow.

6. **Documentation**:
   - Create detailed documentation for your team, covering the setup process, maintenance procedures, and troubleshooting guides.

7. **Production Deployment**:
   - Deploy to [production](/guides/frameworks/nextjs#deploying-your-task-to-trigger-dev) and update your Sequin consumer to point to your production database and endpoint.
   - Set up a staging environment to test changes before deploying to production.

8. **Monitoring and Alerting**:
   - Implement monitoring for your Trigger.dev tasks and Sequin consumers.
   - Set up alerts for any failures or anomalies in the embedding creation process.

By addressing these points, you'll create a robust, scalable, and maintainable system for creating embeddings from your database content.

This expanded section provides a more comprehensive roadmap for users to follow when preparing their implementation for production use.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~330-~330: The official spelling of this programming framework is “Next.js”.
Context: ...ured and logged. - Deploy to production and...

(NODE_JS)


Line range hint 1-331: Address minor spelling and grammar issues.

Based on the static analysis hints, there are a few minor issues that should be addressed:

  1. Line ~27: Change "setup" to "set up" when used as a verb.

    - guide](/guides/frameworks/nextjs) to setup your project. You can return
    + guide](/guides/frameworks/nextjs) to set up your project. You can return
  2. Line ~87: Remove the extra backtick at the end of the code block.

    - });  ````
    + });  ```
  3. Throughout the document: Ensure consistent spelling of "Next.js" (with a lowercase "j").

Please make these minor corrections to improve the overall quality of the documentation.

docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx (6)

Line range hint 2-25: Improved title, description, and overview

The updates to the title, description, and overview significantly enhance the clarity and specificity of the guide. The new overview provides a more detailed explanation of the workflow, which will help readers better understand the process before diving into the implementation.

Consider adding a brief sentence at the end of the overview to highlight the benefits of this integration, such as "This integration allows for automated processing and analysis of video content, enhancing the capabilities of your Supabase-powered application."

🧰 Tools
🪛 LanguageTool

[typographical] ~20-~20: Consider adding two commas here.
Context: ...ebhook triggers an Edge Function when a row including a video URL is inserted into a table - The Edge Fun...

(UNLIKE_COMMA)


[style] ~79-~79: Consider a more expressive alternative.
Context: ...re the video URL and transcription. To do this, click on 'Table Editor' <Icon ico...

(DO_ACHIEVE)


[duplication] ~79-~79: Possible typo: you repeated a word
Context: ...n. To do this, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...called video_url with the type text <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...anscription, also with the type text` <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~260-~260: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...s to your Trigger.dev project You will need to add your DEEPGRAM_SECRET_KEY, `SUPABA...

(REP_NEED_TO_VB)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ... to use, navigate to 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...lor="A8FF53" />, click 'Edge Functions' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...nu, and then click the 'Add new secret' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~294-~294: Possible typo: you repeated a word
Context: ...3" /> button. Add TRIGGER_SECRET_KEY <Icon icon="circle-4" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...ect dashboard, click 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...} color="A8FF53" />, then the 'API' tab <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ... anon public API key from the table <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...se-api-key.png) Then, go to 'Database' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...} color="A8FF53" /> click on 'Webhooks' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ... />, and then click 'Create a new hook' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~391-~391: Consider a more expressive alternative.
Context: ... your video_transcriptions table. To do this, go back to your Supabase project ...

(DO_ACHIEVE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ject dashboard, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ick on the video_transcriptions table <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ..., and then click 'Insert', 'Insert Row' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~395-~395: Possible typo: you repeated a word
Context: ...r video_url, with a public video url. <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: .../cloud.trigger.dev) project 'Runs' list <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: ...processing videoProcessAndUpdate task <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


27-69: Updated prerequisites and streamlined setup

The additions to the prerequisites, including Docker Desktop and a Deepgram account, are crucial for users to successfully follow this guide. The removal of irrelevant CLI steps helps streamline the setup process.

Consider adding a note about the approximate time required to complete this guide, which can help users plan accordingly. For example: "Note: This guide may take approximately 30-45 minutes to complete, depending on your familiarity with the tools and concepts."


89-282: Comprehensive guide for creating and deploying the Trigger.dev task

The new section on creating and deploying the Trigger.dev task is thorough and well-explained. The step-by-step instructions, including type definition generation, task creation, and deployment, provide users with a clear path to follow.

In the videoProcessAndUpdate task code snippet, consider adding a comment to explain the purpose of the smart_format and diarize options in the Deepgram transcription configuration. This will help users understand the significance of these settings.

 const { result, error } = await deepgram.listen.prerecorded.transcribeFile(
   fs.readFileSync(outputPath),
   {
     model: "nova-2", // Use the Nova 2 model
     smart_format: true, // Automatically format the transcription
     diarize: true, // Enable speaker diarization
+    // smart_format: Improves readability by adding punctuation and capitalization
+    // diarize: Separates the transcription by speaker, useful for multi-speaker audio
   }
 );
🧰 Tools
🪛 LanguageTool

[style] ~260-~260: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...s to your Trigger.dev project You will need to add your DEEPGRAM_SECRET_KEY, `SUPABA...

(REP_NEED_TO_VB)


284-346: Clear instructions for Supabase Edge Function setup and deployment

The new section on creating and deploying the Supabase Edge Function is well-structured and informative. The step-by-step instructions, including adding the Trigger.dev secret key and creating the Edge Function, provide users with a clear path to follow.

In the Edge Function code snippet, consider adding a simple error handling mechanism to log any issues that might occur during the task triggering process. This can help with debugging if something goes wrong. For example:

 // Trigger the videoProcessAndUpdate task with the videoUrl payload
-await tasks.trigger<typeof videoProcessAndUpdate>("video-process-and-update", { videoUrl, id });
+try {
+  await tasks.trigger<typeof videoProcessAndUpdate>("video-process-and-update", { videoUrl, id });
+  console.log("Task triggered successfully");
+} catch (error) {
+  console.error("Error triggering task:", error);
+}
 console.log(payload ?? "No name provided");
🧰 Tools
🪛 LanguageTool

[duplication] ~292-~292: Possible typo: you repeated a word
Context: ... to use, navigate to 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...lor="A8FF53" />, click 'Edge Functions' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...nu, and then click the 'Add new secret' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~294-~294: Possible typo: you repeated a word
Context: ...3" /> button. Add TRIGGER_SECRET_KEY <Icon icon="circle-4" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


387-405: Clear instructions for testing the workflow

The new section on triggering the entire workflow provides excellent guidance for users to test and verify their setup. The step-by-step instructions for inserting a new row and checking the results are clear and concise.

Consider adding a note about the expected time frame for the workflow to complete. This can help users understand when to check for results and prevent unnecessary concern if the process takes longer than expected. For example:

"Note: Depending on the length of the video and system load, the transcription process may take a few minutes to complete. If you don't see immediate results, wait for a short period and refresh the Supabase table."

🧰 Tools
🪛 LanguageTool

[style] ~391-~391: Consider a more expressive alternative.
Context: ... your video_transcriptions table. To do this, go back to your Supabase project ...

(DO_ACHIEVE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ject dashboard, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ick on the video_transcriptions table <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ..., and then click 'Insert', 'Insert Row' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~395-~395: Possible typo: you repeated a word
Context: ...r video_url, with a public video url. <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: .../cloud.trigger.dev) project 'Runs' list <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: ...processing videoProcessAndUpdate task <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


Line range hint 1-405: Excellent improvements to the Supabase Database Webhook guide

The updates to this guide have significantly enhanced its usability, clarity, and completeness. The additions provide a comprehensive walkthrough of the integration between Supabase and Trigger.dev for video transcription, covering all necessary steps from setup to testing.

To further improve the guide, consider adding a section on error handling and troubleshooting. This could include common issues users might encounter during setup or execution of the workflow, along with their solutions. This addition would make the guide even more robust and user-friendly, especially for those new to these technologies.

🧰 Tools
🪛 LanguageTool

[typographical] ~20-~20: Consider adding two commas here.
Context: ...ebhook triggers an Edge Function when a row including a video URL is inserted into a table - The Edge Fun...

(UNLIKE_COMMA)


[style] ~79-~79: Consider a more expressive alternative.
Context: ...re the video URL and transcription. To do this, click on 'Table Editor' <Icon ico...

(DO_ACHIEVE)


[duplication] ~79-~79: Possible typo: you repeated a word
Context: ...n. To do this, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...called video_url with the type text <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...anscription, also with the type text` <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~260-~260: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...s to your Trigger.dev project You will need to add your DEEPGRAM_SECRET_KEY, `SUPABA...

(REP_NEED_TO_VB)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ... to use, navigate to 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...lor="A8FF53" />, click 'Edge Functions' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...nu, and then click the 'Add new secret' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~294-~294: Possible typo: you repeated a word
Context: ...3" /> button. Add TRIGGER_SECRET_KEY <Icon icon="circle-4" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...ect dashboard, click 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...} color="A8FF53" />, then the 'API' tab <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ... anon public API key from the table <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...se-api-key.png) Then, go to 'Database' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...} color="A8FF53" /> click on 'Webhooks' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ... />, and then click 'Create a new hook' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~391-~391: Consider a more expressive alternative.
Context: ... your video_transcriptions table. To do this, go back to your Supabase project ...

(DO_ACHIEVE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ject dashboard, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ick on the video_transcriptions table <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ..., and then click 'Insert', 'Insert Row' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~395-~395: Possible typo: you repeated a word
Context: ...r video_url, with a public video url. <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: .../cloud.trigger.dev) project 'Runs' list <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: ...processing videoProcessAndUpdate task <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 2c014f7 and d9fbd1c.

⛔ Files ignored due to path filters (6)
  • docs/images/supabase-create-webhook-2.png is excluded by !**/*.png
  • docs/images/supabase-create-webhook-3.png is excluded by !**/*.png
  • docs/images/supabase-new-table-2.png is excluded by !**/*.png
  • docs/images/supabase-new-table-3.png is excluded by !**/*.png
  • docs/images/supabase-new-table-4.png is excluded by !**/*.png
  • docs/images/supabase-trigger-screenshot.png is excluded by !**/*.png
📒 Files selected for processing (7)
  • docs/guides/frameworks/introduction.mdx (0 hunks)
  • docs/guides/frameworks/prisma.mdx (1 hunks)
  • docs/guides/frameworks/sequin.mdx (8 hunks)
  • docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx (2 hunks)
  • docs/guides/introduction.mdx (1 hunks)
  • docs/mint.json (2 hunks)
  • docs/snippets/supabase-prerequisites.mdx (1 hunks)
💤 Files with no reviewable changes (1)
  • docs/guides/frameworks/introduction.mdx
🧰 Additional context used
🪛 LanguageTool
docs/guides/frameworks/sequin.mdx

[uncategorized] ~27-~27: The official spelling of this programming framework is “Next.js”.
Context: ...w Trigger.dev's Next.js setup guide to setup your project. You can return ...

(NODE_JS)


[grammar] ~27-~27: The word “setup” is a noun. The verb is spelled with a white space.
Context: ... guide](/guides/frameworks/nextjs) to setup your project. You can return to this gu...

(NOUN_VERB_CONFUSION)


[uncategorized] ~87-~87: Loose punctuation mark.
Context: ...N.stringify(embedding), }; } }); ```` ```ts utils.ts import pg from ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~330-~330: The official spelling of this programming framework is “Next.js”.
Context: ...ured and logged. - Deploy to production and...

(NODE_JS)

docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx

[typographical] ~20-~20: Consider adding two commas here.
Context: ...ebhook triggers an Edge Function when a row including a video URL is inserted into a table - The Edge Fun...

(UNLIKE_COMMA)


[style] ~79-~79: Consider a more expressive alternative.
Context: ...re the video URL and transcription. To do this, click on 'Table Editor' <Icon ico...

(DO_ACHIEVE)


[duplication] ~79-~79: Possible typo: you repeated a word
Context: ...n. To do this, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...called video_url with the type text <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...anscription, also with the type text` <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~260-~260: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...s to your Trigger.dev project You will need to add your DEEPGRAM_SECRET_KEY, `SUPABA...

(REP_NEED_TO_VB)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ... to use, navigate to 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...lor="A8FF53" />, click 'Edge Functions' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~292-~292: Possible typo: you repeated a word
Context: ...nu, and then click the 'Add new secret' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~294-~294: Possible typo: you repeated a word
Context: ...3" /> button. Add TRIGGER_SECRET_KEY <Icon icon="circle-4" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...ect dashboard, click 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...} color="A8FF53" />, then the 'API' tab <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ... anon public API key from the table <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...se-api-key.png) Then, go to 'Database' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...} color="A8FF53" /> click on 'Webhooks' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ... />, and then click 'Create a new hook' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~391-~391: Consider a more expressive alternative.
Context: ... your video_transcriptions table. To do this, go back to your Supabase project ...

(DO_ACHIEVE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ject dashboard, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ...ick on the video_transcriptions table <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~391-~391: Possible typo: you repeated a word
Context: ..., and then click 'Insert', 'Insert Row' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~395-~395: Possible typo: you repeated a word
Context: ...r video_url, with a public video url. <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: .../cloud.trigger.dev) project 'Runs' list <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~401-~401: Possible typo: you repeated a word
Context: ...processing videoProcessAndUpdate task <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)

docs/snippets/supabase-prerequisites.mdx

[uncategorized] ~20-~20: You might be missing the article “a” here.
Context: ... If your project does not already have package.json file (e.g. if you are usin...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[uncategorized] ~22-~22: A comma might be missing here.
Context: ...o> If your project has a package.json file you can skip this step. This is...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

🔇 Additional comments (9)
docs/snippets/supabase-prerequisites.mdx (2)

18-18: LGTM: Title change accurately reflects the simplified step.

The updated title focuses solely on creating a package.json file, which aligns well with the subsequent content changes.


34-34: LGTM: Valuable reminder about TypeScript version.

The added note is a good reminder for users to keep their TypeScript version up to date. This can help prevent potential compatibility issues and ensure users have access to the latest features and improvements.

docs/guides/introduction.mdx (2)

2-4: LGTM: Frontmatter updates improve clarity and accuracy.

The updated title and description better reflect the expanded scope of the document, providing a clear overview of its contents.


Line range hint 1-52: Overall, excellent improvements to the introduction document.

The restructuring and content additions in this file significantly enhance its value to users. The new sections on Frameworks, Guides, and Examples provide a comprehensive overview of Trigger.dev's capabilities and resources. The changes align well with the PR objectives and improve the document's utility as an entry point for users.

A few minor suggestions have been provided to further enhance readability and user experience. Great work on this update!

docs/guides/frameworks/prisma.mdx (1)

1-3: Improved title clarity and consistency

The changes to both the main title and sidebar title from "Prisma" to "Prisma setup guide" are beneficial:

  1. The new title is more descriptive and accurately reflects the document's content.
  2. It helps users quickly understand that this is a setup guide, not just general information about Prisma.
  3. The consistency between the main title and sidebar title is maintained, which is good for navigation.

These updates improve the overall clarity and user experience of the documentation.

docs/mint.json (2)

261-264: Confirm the intention of the empty group name.

The addition of the "guides/introduction" page to the navigation is good. However, the group name is currently empty. Is this intentional, or should it have a name like "Guides" or "Introduction"?

Please clarify the intention behind the empty group name. If it's not intentional, consider adding an appropriate name to improve the navigation structure.


261-264: Verify the removal of redundant navigation entries.

The AI summary indicates that guides/frameworks/introduction and guides/examples/intro have been removed from their respective navigation groups. This aligns with the new redirects and helps streamline the documentation structure.

To ensure consistency, please verify that these pages have been removed from the navigation:

#!/bin/bash
# Check for any remaining references to the removed pages in the navigation
grep -n -e "guides/frameworks/introduction" -e "guides/examples/intro" docs/mint.json

If any references are found, consider removing them to maintain consistency with the new structure.

docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx (2)

75-87: Clear instructions for creating the Supabase table

The new section on creating the video_transcriptions table in Supabase is well-structured and easy to follow. The step-by-step instructions, combined with the screenshots, provide excellent guidance for users of all experience levels.

🧰 Tools
🪛 LanguageTool

[style] ~79-~79: Consider a more expressive alternative.
Context: ...re the video URL and transcription. To do this, click on 'Table Editor' <Icon ico...

(DO_ACHIEVE)


[duplication] ~79-~79: Possible typo: you repeated a word
Context: ...n. To do this, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...called video_url with the type text <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...anscription, also with the type text` <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


348-385: Comprehensive guide for creating the Database Webhook

The new section on creating the Database Webhook in Supabase is excellent. The step-by-step instructions, combined with the screenshots, provide clear and detailed guidance for users to set up the webhook correctly.

The inclusion of information about the JWT requirement for Supabase Edge Functions is particularly helpful for users to understand the security aspects of the setup.

🧰 Tools
🪛 LanguageTool

[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...ect dashboard, click 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ...} color="A8FF53" />, then the 'API' tab <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~350-~350: Possible typo: you repeated a word
Context: ... anon public API key from the table <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...se-api-key.png) Then, go to 'Database' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ...} color="A8FF53" /> click on 'Webhooks' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~354-~354: Possible typo: you repeated a word
Context: ... />, and then click 'Create a new hook' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)

Comment on lines +18 to +34
<Step title="Optional step 2: create a package.json file">

If your project does not already have `package.json` or/and `tsconfig.json` files (e.g. if you are using Deno), create them manually and add them to your project root folder.
If your project does not already have `package.json` file (e.g. if you are using Deno), create it manually in your project's root folder.

<Info> If your project has these files you can skip this step.</Info>
<Info> If your project has a `package.json` file you can skip this step.</Info>

Both of these files are required for the Trigger.dev SDK to work correctly.
This is required for the Trigger.dev SDK to work correctly.

```ts package.json
{
"devDependencies": {
// This should be the version of typescript you are using
"typescript": "^5.6.2"
}
}
```

```ts tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"strict": true,
"outDir": "dist",
"skipLibCheck": true,
"lib": ["DOM", "DOM.Iterable"],
"noEmit": true
},
"include": ["./src/**/*.ts", "trigger.config.ts"]
}
```
<Note> Update your Typescript version to the latest version available. </Note>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

Additional tsconfig.json references found in documentation.

The removal of tsconfig.json mentions in docs/snippets/supabase-prerequisites.mdx simplifies that section. However, tsconfig.json is still referenced in the following documentation files:

  • docs/guides/new-build-system-preview.mdx
  • docs/config/config-file.mdx
  • docs/config/extensions/overview.mdx

Please ensure that tsconfig.json references are consistently handled across all documentation to maintain clarity for users relying on TypeScript configuration.

🔗 Analysis chain

Overall changes improve documentation clarity, with a note on TypeScript configuration.

The modifications successfully simplify the setup process by focusing on the package.json file. This change improves clarity and reduces potential confusion for users.

However, it's worth noting that the removal of tsconfig.json references might impact users who need TypeScript configuration. To ensure we're not overlooking any critical information, let's verify if there are any other mentions of tsconfig.json in the documentation:

If the search returns results, consider adding a note about TypeScript configuration or linking to relevant TypeScript setup documentation.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Search for mentions of tsconfig.json in the documentation

# Test: Look for tsconfig.json mentions
rg --type mdx 'tsconfig\.json'

Length of output: 60


Script:

#!/bin/bash
# Description: Search for mentions of tsconfig.json in .mdx documentation files

# Test: Look for tsconfig.json mentions in .mdx files
rg 'tsconfig\.json' --glob '*.mdx'

Length of output: 394

🧰 Tools
🪛 LanguageTool

[uncategorized] ~20-~20: You might be missing the article “a” here.
Context: ... If your project does not already have package.json file (e.g. if you are usin...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[uncategorized] ~22-~22: A comma might be missing here.
Context: ...o> If your project has a package.json file you can skip this step. This is...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

Comment on lines +91 to +98
{
"source": "/guides/frameworks/introduction",
"destination": "/guides/overview"
},
{
"source": "/guides/examples/intro",
"destination": "/guides/overview"
},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

Issue Found: Destination Page /guides/overview Does Not Exist

The redirect to /guides/overview cannot be validated because the destination page does not exist directly at that path. Instead, an supabase-guides-overview.mdx file exists under docs/guides/frameworks/.

Please update the redirect to point to the correct path:

  • /guides/frameworks/supabase-guides-overview

Ensure that the destination path accurately reflects the location of the overview page to maintain proper navigation and avoid broken links.

#!/bin/bash
# Search for any routing configurations that might map /guides/overview
rg "/guides/overview" config/
🔗 Analysis chain

LGTM! Verify the destination page exists.

The new redirects consolidate introductory pages into a single overview, which aligns with the PR objectives. This change should improve navigation and reduce redundancy in the documentation.

To ensure a smooth user experience, please verify that the /guides/overview page exists and contains the necessary introductory information from the redirected pages.


Further Verification Needed: Destination Page /guides/overview Not Found

The previous verification did not confirm the existence of /guides/overview. Please ensure that the destination page exists with an appropriate extension.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify the existence of the destination page
fd -t f "overview.mdx?" docs/guides

Length of output: 182


Script:

#!/bin/bash
# Search for the overview page with common markdown extensions
fd -t f "overview.mdx" docs/guides || fd -t f "overview.md" docs/guides

Length of output: 86

Comment on lines +162 to +193
```ts app/api/create-embedding-for-post/route.ts
import type { createEmbeddingForPost } from "@/trigger/create-embedding-for-post";
import { tasks } from "@trigger.dev/sdk/v3";
import { NextResponse } from "next/server";

return NextResponse.json(handle);
export async function POST(req: Request) {
const authHeader = req.headers.get("authorization");
if (!authHeader || authHeader !== `Bearer ${process.env.SEQUIN_WEBHOOK_SECRET}`) {
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
}
```
const payload = await req.json();
const handle = await tasks.trigger<typeof createEmbeddingForPost>(
"create-embedding-for-post",
payload
);

return NextResponse.json(handle);
}
```

This route handler will receive records from Sequin, parse them, and then trigger the `create-embedding-for-post` task.

This route handler will receive records from Sequin, parse them, and then trigger the `create-embedding-for-post` task.
</Step>
<Step title="Set secret keys">
You'll need to set four secret keys in a `.env.local` file:

```bash
SEQUIN_WEBHOOK_SECRET=your-secret-key
TRIGGER_SECRET_KEY=secret-from-trigger-dev
OPENAI_API_KEY=sk-proj-asdfasdfasdf
DATABASE_URL=postgresql://
```
```bash
SEQUIN_WEBHOOK_SECRET=your-secret-key
TRIGGER_SECRET_KEY=secret-from-trigger-dev
OPENAI_API_KEY=sk-proj-asdfasdfasdf
DATABASE_URL=postgresql://
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Enhance security and error handling in the route handler.

The API route setup is clear and well-explained. However, consider the following improvements to enhance security and error handling:

  1. Use a constant-time comparison for the authorization header to prevent timing attacks.
  2. Add input validation for the payload.
  3. Implement proper error handling for the tasks.trigger call.

Here's an improved version of the route handler:

import type { createEmbeddingForPost } from "@/trigger/create-embedding-for-post";
import { tasks } from "@trigger.dev/sdk/v3";
import { NextResponse } from "next/server";
import { timingSafeEqual } from "crypto";

export async function POST(req: Request) {
  try {
    const authHeader = req.headers.get("authorization");
    if (!authHeader || !isValidAuthHeader(authHeader)) {
      return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
    }

    const payload = await req.json();
    if (!isValidPayload(payload)) {
      return NextResponse.json({ error: "Invalid payload" }, { status: 400 });
    }

    const handle = await tasks.trigger<typeof createEmbeddingForPost>(
      "create-embedding-for-post",
      payload
    );

    return NextResponse.json(handle);
  } catch (error) {
    console.error("Error in POST handler:", error);
    return NextResponse.json({ error: "Internal Server Error" }, { status: 500 });
  }
}

function isValidAuthHeader(header: string): boolean {
  const expectedHeader = `Bearer ${process.env.SEQUIN_WEBHOOK_SECRET}`;
  return timingSafeEqual(Buffer.from(header), Buffer.from(expectedHeader));
}

function isValidPayload(payload: any): boolean {
  // Implement payload validation logic here
  return true; // Placeholder
}

This version includes constant-time comparison for the authorization header, a placeholder for payload validation, and proper error handling. Remember to implement the isValidPayload function according to your specific payload structure.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (5)
docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx (5)

18-25: Great improvement in the overview section.

The restructured overview provides a much clearer explanation of the workflow, detailing the interaction between Supabase, Edge Functions, and Trigger.dev. This will help readers better understand the guide's objectives and the process they'll be following.

Consider adding a brief sentence at the end of this section to highlight the practical application or benefit of this workflow, e.g., "This workflow enables automatic transcription of videos, making content more accessible and searchable."

🧰 Tools
🪛 LanguageTool

[typographical] ~20-~20: Consider adding two commas here.
Context: ...ebhook triggers an Edge Function when a row including a video URL is inserted into a table - The Edge Fun...

(UNLIKE_COMMA)


30-69: Comprehensive prerequisites and setup instructions.

The addition of Docker Desktop and Deepgram account requirements, along with the updated CLI command for initial setup, provides users with a more complete list of prerequisites and clearer setup instructions.

Consider adding a brief note about the purpose of the Deepgram API key, e.g., "The Deepgram API key will be used for audio transcription later in the guide."


89-287: Comprehensive task creation and deployment instructions.

The detailed instructions for creating and deploying the Trigger.dev task, including code snippets and environment variable setup, provide excellent guidance for users. This section covers all the necessary steps for setting up this crucial part of the workflow.

Consider adding a brief explanation of the purpose of the FFmpeg build extension in the trigger.config.ts file, e.g., "The FFmpeg build extension is required for audio extraction from the video files."

🧰 Tools
🪛 LanguageTool

[style] ~265-~265: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...s to your Trigger.dev project You will need to add your DEEPGRAM_SECRET_KEY, `SUPABA...

(REP_NEED_TO_VB)


353-390: Excellent Database Webhook creation instructions.

The detailed, step-by-step instructions for creating a Database Webhook in Supabase, accompanied by images, provide clear and comprehensive guidance for users. This section effectively covers a crucial part of the workflow setup.

Consider adding a brief explanation of why the anon public API key is used for the webhook authorization, e.g., "We use the anon public API key here as this webhook doesn't require authenticated access to your database."

🧰 Tools
🪛 LanguageTool

[duplication] ~355-~355: Possible typo: you repeated a word
Context: ...ect dashboard, click 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ...} color="A8FF53" />, then the 'API' tab <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ... anon public API key from the table <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ...se-api-key.png) Then, go to 'Database' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ...} color="A8FF53" /> click on 'Webhooks' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ... />, and then click 'Create a new hook' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


Line range hint 1-414: Excellent comprehensive guide with clear instructions.

This guide provides a well-structured, detailed, and easy-to-follow set of instructions for implementing a Supabase-Trigger.dev workflow. The step-by-step approach, accompanied by code snippets and images, effectively guides users through the entire process.

To further enhance the guide, consider adding a troubleshooting section at the end. This could include common issues users might encounter and their solutions, helping to preemptively address potential stumbling blocks.

🧰 Tools
🪛 LanguageTool

[typographical] ~20-~20: Consider adding two commas here.
Context: ...ebhook triggers an Edge Function when a row including a video URL is inserted into a table - The Edge Fun...

(UNLIKE_COMMA)


[style] ~79-~79: Consider a more expressive alternative.
Context: ...re the video URL and transcription. To do this, click on 'Table Editor' <Icon ico...

(DO_ACHIEVE)


[duplication] ~79-~79: Possible typo: you repeated a word
Context: ...n. To do this, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...called video_url with the type text <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...anscription, also with the type text` <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~265-~265: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...s to your Trigger.dev project You will need to add your DEEPGRAM_SECRET_KEY, `SUPABA...

(REP_NEED_TO_VB)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ... to use, navigate to 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ...lor="A8FF53" />, click 'Edge Functions' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ...nu, and then click the 'Add new secret' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~299-~299: Possible typo: you repeated a word
Context: ...3" /> button. Add TRIGGER_SECRET_KEY <Icon icon="circle-4" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ...ect dashboard, click 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ...} color="A8FF53" />, then the 'API' tab <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ... anon public API key from the table <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ...se-api-key.png) Then, go to 'Database' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ...} color="A8FF53" /> click on 'Webhooks' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ... />, and then click 'Create a new hook' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~396-~396: Consider a more expressive alternative.
Context: ... your video_transcriptions table. To do this, go back to your Supabase project ...

(DO_ACHIEVE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ...ject dashboard, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ...ick on the video_transcriptions table <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ..., and then click 'Insert', 'Insert Row' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~400-~400: Possible typo: you repeated a word
Context: ...r video_url, with a public video url. <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~406-~406: Possible typo: you repeated a word
Context: .../cloud.trigger.dev) project 'Runs' list <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~406-~406: Possible typo: you repeated a word
Context: ...processing videoProcessAndUpdate task <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between d9fbd1c and ade508a.

⛔ Files ignored due to path filters (4)
  • docs/images/supabase-new-table-4.png is excluded by !**/*.png
  • docs/images/supabase-run-result.png is excluded by !**/*.png
  • docs/images/supabase-table-result.png is excluded by !**/*.png
  • docs/images/supabase-trigger-screenshot.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx (2 hunks)
  • docs/mint.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/mint.json
🧰 Additional context used
🪛 LanguageTool
docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx

[typographical] ~20-~20: Consider adding two commas here.
Context: ...ebhook triggers an Edge Function when a row including a video URL is inserted into a table - The Edge Fun...

(UNLIKE_COMMA)


[style] ~79-~79: Consider a more expressive alternative.
Context: ...re the video URL and transcription. To do this, click on 'Table Editor' <Icon ico...

(DO_ACHIEVE)


[duplication] ~79-~79: Possible typo: you repeated a word
Context: ...n. To do this, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...called video_url with the type text <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...anscription, also with the type text` <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~265-~265: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...s to your Trigger.dev project You will need to add your DEEPGRAM_SECRET_KEY, `SUPABA...

(REP_NEED_TO_VB)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ... to use, navigate to 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ...lor="A8FF53" />, click 'Edge Functions' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ...nu, and then click the 'Add new secret' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~299-~299: Possible typo: you repeated a word
Context: ...3" /> button. Add TRIGGER_SECRET_KEY <Icon icon="circle-4" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ...ect dashboard, click 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ...} color="A8FF53" />, then the 'API' tab <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~355-~355: Possible typo: you repeated a word
Context: ... anon public API key from the table <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ...se-api-key.png) Then, go to 'Database' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ...} color="A8FF53" /> click on 'Webhooks' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~359-~359: Possible typo: you repeated a word
Context: ... />, and then click 'Create a new hook' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~396-~396: Consider a more expressive alternative.
Context: ... your video_transcriptions table. To do this, go back to your Supabase project ...

(DO_ACHIEVE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ...ject dashboard, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ...ick on the video_transcriptions table <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ..., and then click 'Insert', 'Insert Row' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~400-~400: Possible typo: you repeated a word
Context: ...r video_url, with a public video url. <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~406-~406: Possible typo: you repeated a word
Context: .../cloud.trigger.dev) project 'Runs' list <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~406-~406: Possible typo: you repeated a word
Context: ...processing videoProcessAndUpdate task <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)

🔇 Additional comments (4)
docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx (4)

2-4: LGTM! Title and description improvements.

The updated title with proper capitalization and the expanded description provide a clearer overview of the guide's content. These changes effectively communicate the purpose and scope of the tutorial.


75-87: Excellent addition of table creation instructions.

The new section on creating the video_transcriptions table in Supabase is a valuable addition to the guide. The step-by-step instructions, accompanied by images, provide clear and easy-to-follow guidance for users.

🧰 Tools
🪛 LanguageTool

[style] ~79-~79: Consider a more expressive alternative.
Context: ...re the video URL and transcription. To do this, click on 'Table Editor' <Icon ico...

(DO_ACHIEVE)


[duplication] ~79-~79: Possible typo: you repeated a word
Context: ...n. To do this, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...called video_url with the type text <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~85-~85: Possible typo: you repeated a word
Context: ...anscription, also with the type text` <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


289-351: Clear instructions for Edge Function creation and deployment.

The step-by-step guide for creating and deploying the Supabase Edge Function, including the code snippet, provides excellent guidance for users. This section effectively covers an essential part of the workflow, ensuring that the Trigger.dev task can be triggered appropriately.

🧰 Tools
🪛 LanguageTool

[duplication] ~297-~297: Possible typo: you repeated a word
Context: ... to use, navigate to 'Project settings' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ...lor="A8FF53" />, click 'Edge Functions' <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~297-~297: Possible typo: you repeated a word
Context: ...nu, and then click the 'Add new secret' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~299-~299: Possible typo: you repeated a word
Context: ...3" /> button. Add TRIGGER_SECRET_KEY <Icon icon="circle-4" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


392-414: Effective workflow triggering instructions.

The step-by-step guidance for triggering the entire workflow, including inserting a new row and checking the results, provides an excellent practical demonstration of the setup. This section effectively helps users verify that their implementation is working correctly.

🧰 Tools
🪛 LanguageTool

[style] ~396-~396: Consider a more expressive alternative.
Context: ... your video_transcriptions table. To do this, go back to your Supabase project ...

(DO_ACHIEVE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ...ject dashboard, click on 'Table Editor' <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ...ick on the video_transcriptions table <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~396-~396: Possible typo: you repeated a word
Context: ..., and then click 'Insert', 'Insert Row' <Icon icon="circle-3" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~400-~400: Possible typo: you repeated a word
Context: ...r video_url, with a public video url. <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~406-~406: Possible typo: you repeated a word
Context: .../cloud.trigger.dev) project 'Runs' list <Icon icon="circle-1" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~406-~406: Possible typo: you repeated a word
Context: ...processing videoProcessAndUpdate task <Icon icon="circle-2" iconType="solid" size={20} c...

(ENGLISH_WORD_REPEAT_RULE)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant