This example Next.js project demonstrates how to use Trigger.dev Realtime to build a CSV Uploader with progress updates streamed to the frontend.
csvValidator
downloads the CSV file, parses it, and then splits the rows into multiple batches. It then does a batch.triggerAndWait
to distribute the work the handleCSVRow
task.handleCSVRow
task “simulates” checking the row for a valid email address and then updates the progress of the parent task using metadata.parent
. See the Trigger.dev docs for more information on how to use the metadata.parent
object.useRealtimeCSVValidator
hook in the src/hooks/useRealtimeCSVValidator.ts file handles the call to useRealtimeRun
to get the progress of the parent task.CSVProcessor
component in the src/components/CSVProcessor.tsx file handles the file upload and displays the progress bar, and uses the useRealtimeCSVValidator
hook to get the progress updates.