You can find the project source code on GitHub.
This guide provides detailed, step-by-step instructions on how to use and deploy Upstash Workflows with SolidJS. You can also explore the source code for a detailed, end-to-end example and best practices.
If you haven’t obtained your QStash API key yet, you can do so by signing up for an Upstash account and navigating to your QStash dashboard.
First, install the Workflow SDK in your SolidJS project:
Create a .env
file in your project root and add your QStash token. This key is used to authenticate your application with the QStash service.
Upstash Workflow is powered by QStash, which requires access to your endpoint to execute workflows. When your app is deployed, QStash will use the app’s URL. However, for local development, you have two main options: use a local QStash server or set up a local tunnel.
To start the local QStash server, run:
Once the command runs successfully, you’ll see QSTASH_URL
and QSTASH_TOKEN
values in the console. Add these values to your .env
file:
This approach allows you to test workflows locally without affecting your billing. However, runs won’t be logged in the Upstash Console.
Alternatively, you can set up a local tunnel. For this option:
QSTASH_TOKEN
from the Upstash Console..env
file with the following:***
with your actual QStash token.UPSTASH_WORKFLOW_URL
to the public URL provided by your local tunnel.Here’s where you can find your QStash token:
Using a local tunnel connects your endpoint to the production QStash, enabling you to view workflow logs in the Upstash Console.
A workflow endpoint allows you to define a set of steps that, together, make up a workflow. Each step contains a piece of business logic that is automatically retried on failure, with easy monitoring via our visual workflow dashboard.
To define a workflow endpoint in a SolidJS project, navigate into the SolidJS routes/api
directory. Inside this folder, create a workflow.ts
file that contains your workflow:
After defining the endpoint, you can trigger your workflow by starting your app:
Then, make a POST request to your workflow endpoint. For each workflow run, a unique workflow run ID is returned:
See the documentation on starting a workflow for other ways you can start your workflow.
If you are using a local tunnel, you can use this ID to track the workflow run and see its status in your QStash workflow dashboard. All steps are listed with their statuses, headers, and body for a detailed overview of your workflow from start to finish. Click on a step to see its detailed logs.
When deploying your SolidJS application with Upstash Workflows to production, there are a few key points to keep in mind:
Environment Variables: Make sure that all necessary environment variables are set in your platforms project settings. For example, your QSTASH_TOKEN
and any other configuration variables your workflow might need.
Remove Local Development Settings: In your production code, you can remove or conditionally exclude any local development settings. For example, if you used local tunnel for local development
Deployment: Deploy your SolidJS application to Netlify, Vercel or other platforms as you normally would. These platforms will automatically detect and build your SolidJS application.
Verify Workflow Endpoint: After deployment, verify that your workflow endpoint is accessible by making a POST request to your production URL:
Monitor in QStash Dashboard: Use the QStash dashboard to monitor your production workflows. You can track workflow runs, view step statuses, and access detailed logs.
Set Up Alerts: Consider setting up alerts in Sentry or other monitoring tools to be notified of any workflow failures in production.
Learn how to protect your workflow endpoint from unauthorized access by securing your workflow endpoint.
Explore the source code for a detailed, end-to-end example and best practices.
For setting up and testing your workflows in a local environment, check out our local development guide.
You can find the project source code on GitHub.
This guide provides detailed, step-by-step instructions on how to use and deploy Upstash Workflows with SolidJS. You can also explore the source code for a detailed, end-to-end example and best practices.
If you haven’t obtained your QStash API key yet, you can do so by signing up for an Upstash account and navigating to your QStash dashboard.
First, install the Workflow SDK in your SolidJS project:
Create a .env
file in your project root and add your QStash token. This key is used to authenticate your application with the QStash service.
Upstash Workflow is powered by QStash, which requires access to your endpoint to execute workflows. When your app is deployed, QStash will use the app’s URL. However, for local development, you have two main options: use a local QStash server or set up a local tunnel.
To start the local QStash server, run:
Once the command runs successfully, you’ll see QSTASH_URL
and QSTASH_TOKEN
values in the console. Add these values to your .env
file:
This approach allows you to test workflows locally without affecting your billing. However, runs won’t be logged in the Upstash Console.
Alternatively, you can set up a local tunnel. For this option:
QSTASH_TOKEN
from the Upstash Console..env
file with the following:***
with your actual QStash token.UPSTASH_WORKFLOW_URL
to the public URL provided by your local tunnel.Here’s where you can find your QStash token:
Using a local tunnel connects your endpoint to the production QStash, enabling you to view workflow logs in the Upstash Console.
A workflow endpoint allows you to define a set of steps that, together, make up a workflow. Each step contains a piece of business logic that is automatically retried on failure, with easy monitoring via our visual workflow dashboard.
To define a workflow endpoint in a SolidJS project, navigate into the SolidJS routes/api
directory. Inside this folder, create a workflow.ts
file that contains your workflow:
After defining the endpoint, you can trigger your workflow by starting your app:
Then, make a POST request to your workflow endpoint. For each workflow run, a unique workflow run ID is returned:
See the documentation on starting a workflow for other ways you can start your workflow.
If you are using a local tunnel, you can use this ID to track the workflow run and see its status in your QStash workflow dashboard. All steps are listed with their statuses, headers, and body for a detailed overview of your workflow from start to finish. Click on a step to see its detailed logs.
When deploying your SolidJS application with Upstash Workflows to production, there are a few key points to keep in mind:
Environment Variables: Make sure that all necessary environment variables are set in your platforms project settings. For example, your QSTASH_TOKEN
and any other configuration variables your workflow might need.
Remove Local Development Settings: In your production code, you can remove or conditionally exclude any local development settings. For example, if you used local tunnel for local development
Deployment: Deploy your SolidJS application to Netlify, Vercel or other platforms as you normally would. These platforms will automatically detect and build your SolidJS application.
Verify Workflow Endpoint: After deployment, verify that your workflow endpoint is accessible by making a POST request to your production URL:
Monitor in QStash Dashboard: Use the QStash dashboard to monitor your production workflows. You can track workflow runs, view step statuses, and access detailed logs.
Set Up Alerts: Consider setting up alerts in Sentry or other monitoring tools to be notified of any workflow failures in production.
Learn how to protect your workflow endpoint from unauthorized access by securing your workflow endpoint.
Explore the source code for a detailed, end-to-end example and best practices.
For setting up and testing your workflows in a local environment, check out our local development guide.