<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ali Mahdavi</title>
    <description>The latest articles on Forem by Ali Mahdavi (@ali_mahdavi).</description>
    <link>https://forem.com/ali_mahdavi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3844294%2F32d4bfb3-c9eb-4a5a-a488-5a5b808f1e6f.jpg</url>
      <title>Forem: Ali Mahdavi</title>
      <link>https://forem.com/ali_mahdavi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ali_mahdavi"/>
    <language>en</language>
    <item>
      <title>Deploying ASP.NET Core Apps on the Flux Network Using Deploy With Git</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Wed, 01 Apr 2026 12:01:19 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/deploying-aspnet-core-apps-on-the-flux-network-using-deploy-with-git-1j2f</link>
      <guid>https://forem.com/ali_mahdavi/deploying-aspnet-core-apps-on-the-flux-network-using-deploy-with-git-1j2f</guid>
      <description>&lt;p&gt;ASP.NET Core is a popular framework for building modern, cross-platform web applications and APIs. Deploying these apps on the decentralized Flux Network is simple and efficient with the Deploy With Git feature. This guide explains how to deploy a minimal "Hello World" ASP.NET Core application directly from a Git repository. Flux automatically detects the project, installs the required .NET SDK, builds the application, and runs it across its global network of nodes.&lt;/p&gt;

&lt;p&gt;No Dockerfiles or complex setup are needed. Just push your code to GitHub, and Flux handles the entire process.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Flux Handles ASP.NET Core Deployment
&lt;/h2&gt;

&lt;p&gt;Flux makes .NET deployments straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It scans for .csproj files to identify .NET projects.&lt;/li&gt;
&lt;li&gt;It reads the TargetFramework from the .csproj file (this example uses .NET 8.0 LTS).&lt;/li&gt;
&lt;li&gt;It installs the matching .NET SDK.&lt;/li&gt;
&lt;li&gt;It runs dotnet restore to fetch dependencies.&lt;/li&gt;
&lt;li&gt;It executes dotnet publish -c Release -o ./publish to compile the app.&lt;/li&gt;
&lt;li&gt;It starts the application with the specified runtime command.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The ASP.NET Core app binds to 0.0.0.0:$PORT using the ASPNETCORE_URLS environment variable, which Flux sets automatically. The app then becomes available on the Flux network.&lt;/p&gt;

&lt;p&gt;Important note: You must set the RUN_COMMAND environment variable to tell Flux which DLL to execute after publishing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before starting, make sure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A public GitHub repository (or a private repository with a GitHub personal access token).&lt;/li&gt;
&lt;li&gt;A FluxCloud account.&lt;/li&gt;
&lt;li&gt;Basic knowledge of Git and ASP.NET Core.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step-by-Step Deployment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prepare and Push Your Project to GitHub
&lt;/h3&gt;

&lt;p&gt;Push your ASP.NET Core project to GitHub. Use a public repository for the easiest setup, or provide a personal access token for private repositories.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Register the Application on FluxCloud
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;a href="https://cloud.runonflux.com/apps/register" rel="noopener noreferrer"&gt;FluxCloud dashboard&lt;/a&gt; and select Deploy with Git.&lt;/li&gt;
&lt;li&gt;Log in or create a new FluxCloud account.&lt;/li&gt;
&lt;li&gt;Choose your preferred plan and click Start Deploying.&lt;/li&gt;
&lt;li&gt;Enter the following details:

&lt;ul&gt;
&lt;li&gt;Repository URL&lt;/li&gt;
&lt;li&gt;Branch name&lt;/li&gt;
&lt;li&gt;Path to the project (for example, deploy-aspnet-core/ if inside a monorepo)&lt;/li&gt;
&lt;li&gt;GitHub personal access token (only required for private repositories)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click Continue and complete the configuration form.&lt;/li&gt;
&lt;li&gt;Review the settings and click Register.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Flux will build and deploy your application across multiple nodes. When finished, your app will be live at:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://YOUR-APP-NAME.app.runonflux.com" rel="noopener noreferrer"&gt;https://YOUR-APP-NAME.app.runonflux.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration Settings
&lt;/h2&gt;

&lt;p&gt;Configure these fields during the registration process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Information
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Application Name: Use 3 to 32 characters consisting of lowercase letters, numbers, and hyphens only.&lt;/li&gt;
&lt;li&gt;Contact Email: Provide an email for deployment notifications and alerts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Application Port
&lt;/h3&gt;

&lt;p&gt;Set the Application Port to 8080. This must match the port your ASP.NET Core application listens on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom Domain (Optional)
&lt;/h3&gt;

&lt;p&gt;You may add your own custom domain. After deployment, update your DNS records to point to Flux.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Options
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Auto-Update Polling Interval: Controls how often Flux checks for repository updates. The default is 24 hours. For faster updates, use GitHub webhooks.&lt;/li&gt;
&lt;li&gt;Enterprise App: Enable this option for extra security. It encrypts your app specification and environment variables and limits deployment to verified ArcaneOS nodes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Environment Variables
&lt;/h3&gt;

&lt;p&gt;Set the following variables as needed:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Default Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RUN_COMMAND&lt;/td&gt;
&lt;td&gt;The command to start the app&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;(none)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PORT&lt;/td&gt;
&lt;td&gt;Port the server listens on&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;8080&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DOTNET_VERSION&lt;/td&gt;
&lt;td&gt;.NET SDK version to use&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Detected from csproj (8.0)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BUILD_COMMAND&lt;/td&gt;
&lt;td&gt;Custom build command&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;dotnet publish -c Release -o ./publish&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WEBHOOK_SECRET&lt;/td&gt;
&lt;td&gt;Secret for GitHub webhook authentication&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;(none)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Critical requirement: Set RUN_COMMAND to dotnet deploy-aspnet-core.dll. This tells Flux the correct entry point for your published application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enabling Automatic CI/CD with GitHub Webhooks
&lt;/h2&gt;

&lt;p&gt;To redeploy automatically on every code push:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After your app is running, copy the webhook URL from the Flux dashboard (format: &lt;a href="https://YOUR-APP-NAME-9001.app.runonflux.io/webhook" rel="noopener noreferrer"&gt;https://YOUR-APP-NAME-9001.app.runonflux.io/webhook&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;In your GitHub repository, go to Settings &amp;gt; Webhooks &amp;gt; Add webhook.&lt;/li&gt;
&lt;li&gt;Set the following:

&lt;ul&gt;
&lt;li&gt;Payload URL: Paste the Flux webhook URL.&lt;/li&gt;
&lt;li&gt;Content type: Select application/json.&lt;/li&gt;
&lt;li&gt;Secret: Use the same value as your WEBHOOK_SECRET environment variable.&lt;/li&gt;
&lt;li&gt;Events: Choose "Just the push event".&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Save the webhook.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every git push to the selected branch will now trigger an automatic redeployment, usually within about 2 minutes. Flux rolls back automatically if the build fails.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FluxCloud Dashboard: &lt;a href="https://cloud.runonflux.com" rel="noopener noreferrer"&gt;https://cloud.runonflux.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Deploy With Git Overview: &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/" rel="noopener noreferrer"&gt;https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Deploying .NET Apps on Flux: &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/guides/deploying-dotnet" rel="noopener noreferrer"&gt;https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/guides/deploying-dotnet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub Webhooks Guide: &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/ci-cd/github-webhooks" rel="noopener noreferrer"&gt;https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/ci-cd/github-webhooks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Flux Network: &lt;a href="https://runonflux.com" rel="noopener noreferrer"&gt;https://runonflux.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This method allows you to deploy ASP.NET Core applications quickly and reliably on the Flux Network. With only a Git repository, your app becomes globally distributed and highly available in minutes. Fork the example repository and try deploying your own ASP.NET Core app today.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>dotnet</category>
      <category>runonflux</category>
    </item>
    <item>
      <title>Deploying Blazor WebAssembly Apps on the Flux Network Using Deploy With Git</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Wed, 01 Apr 2026 11:54:07 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/deploying-blazor-webassembly-apps-on-the-flux-network-using-deploy-with-git-3obh</link>
      <guid>https://forem.com/ali_mahdavi/deploying-blazor-webassembly-apps-on-the-flux-network-using-deploy-with-git-3obh</guid>
      <description>&lt;p&gt;Blazor WebAssembly offers a powerful way to build interactive web applications with C# that run directly in the browser. Hosting these apps on a decentralized cloud platform like the Flux Network becomes straightforward with the Deploy With Git feature. This guide walks you through deploying a minimal hosted Blazor WebAssembly "Hello World" application from a Git repository. Flux automatically detects the .NET project, handles dependencies, builds the app, and serves it across its global network of nodes for high availability and resilience.&lt;/p&gt;

&lt;p&gt;No Docker knowledge or complex CI/CD pipelines are required. Simply push your code to GitHub, and Flux takes care of the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Hosted Blazor WebAssembly Model
&lt;/h2&gt;

&lt;p&gt;This deployment example uses the hosted Blazor WebAssembly model. In this setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An ASP.NET Core server project hosts and serves the compiled WebAssembly client.&lt;/li&gt;
&lt;li&gt;The client runs in the user's browser, while the server delivers the necessary static files and handles any backend logic if needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The server project is responsible for serving the published WebAssembly assets. Flux identifies .NET projects through the presence of .csproj files.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Flux Handles Blazor WebAssembly Deployment
&lt;/h2&gt;

&lt;p&gt;Flux streamlines the process for .NET applications:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It scans for .csproj files and reads the TargetFramework (this example targets .NET 8.0 LTS).&lt;/li&gt;
&lt;li&gt;It installs the matching .NET SDK.&lt;/li&gt;
&lt;li&gt;It runs dotnet restore to fetch dependencies.&lt;/li&gt;
&lt;li&gt;It executes dotnet publish -c Release -o ./publish to build both the server and the WebAssembly client.&lt;/li&gt;
&lt;li&gt;It starts the application using the specified runtime command.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The ASP.NET Core server automatically binds to 0.0.0.0:$PORT using the ASPNETCORE_URLS environment variable provided by Flux. The published app serves the Blazor WebAssembly files as static content.&lt;/p&gt;

&lt;p&gt;Important note: Because the publish output folder contains multiple DLLs, you must explicitly set the RUN_COMMAND environment variable to tell Flux which assembly to execute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before starting, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A public GitHub repository (or a private repository with a GitHub personal access token).&lt;/li&gt;
&lt;li&gt;A FluxCloud account.&lt;/li&gt;
&lt;li&gt;Basic familiarity with Git and .NET project structures.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step-by-Step Deployment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prepare and Push Your Project to GitHub
&lt;/h3&gt;

&lt;p&gt;Clone or create your repository and push the Blazor WebAssembly project. Keep the repository public for simplicity, or prepare a personal access token with repository read permissions if using a private repo.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Register the Application on FluxCloud
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Visit the FluxCloud dashboard at &lt;a href="https://cloud.runonflux.com/apps/register" rel="noopener noreferrer"&gt;https://cloud.runonflux.com/apps/register&lt;/a&gt; and select Deploy with Git.&lt;/li&gt;
&lt;li&gt;Log in or create a new FluxCloud account.&lt;/li&gt;
&lt;li&gt;Choose your preferred plan and click Start Deploying.&lt;/li&gt;
&lt;li&gt;Provide the following details:

&lt;ul&gt;
&lt;li&gt;Repository URL&lt;/li&gt;
&lt;li&gt;Branch name&lt;/li&gt;
&lt;li&gt;Path to the project (for example, deploy-blazor-wasm/ if located inside a monorepo)&lt;/li&gt;
&lt;li&gt;GitHub personal access token (only for private repositories)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click Continue and fill in the configuration form.&lt;/li&gt;
&lt;li&gt;Review all settings and click Register.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Flux will build and deploy the application across multiple nodes. Once complete, your app becomes accessible at:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://YOUR-APP-NAME.app.runonflux.com" rel="noopener noreferrer"&gt;https://YOUR-APP-NAME.app.runonflux.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration Settings
&lt;/h2&gt;

&lt;p&gt;Configure these fields carefully during registration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Information
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Application Name: Use 3 to 32 characters consisting of lowercase letters, numbers, and hyphens only.&lt;/li&gt;
&lt;li&gt;Contact Email: Provide an email address for deployment notifications and alerts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Application Port
&lt;/h3&gt;

&lt;p&gt;Set the Application Port to 8080. This value must match the port your ASP.NET Core server listens on so that Flux can configure the proper port mapping.&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom Domain (Optional)
&lt;/h3&gt;

&lt;p&gt;You can specify your own domain. After registration, configure your DNS records to point to Flux. Detailed instructions are available in the Flux documentation for custom domain setup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Options
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Auto-Update Polling Interval: Controls how frequently Flux checks the repository for updates. The default is 24 hours. For faster updates, configure GitHub webhooks instead.&lt;/li&gt;
&lt;li&gt;Enterprise App: Enable this for added security. It encrypts your application specification and environment variables and restricts deployment to verified ArcaneOS nodes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Environment Variables
&lt;/h3&gt;

&lt;p&gt;Set these variables to ensure correct operation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Default Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RUN_COMMAND&lt;/td&gt;
&lt;td&gt;The command to start the app&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;(none)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PORT&lt;/td&gt;
&lt;td&gt;Port the server listens on&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;8080&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DOTNET_VERSION&lt;/td&gt;
&lt;td&gt;.NET SDK version to use&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Detected from csproj (8.0)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BUILD_COMMAND&lt;/td&gt;
&lt;td&gt;Custom build command&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;dotnet publish -c Release -o ./publish&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WEBHOOK_SECRET&lt;/td&gt;
&lt;td&gt;Secret for GitHub webhook authentication&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;(none)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Critical requirement: Set RUN_COMMAND to dotnet deploy-blazor-wasm.dll. This points Flux to the correct entry point after publishing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enabling Automatic CI/CD with GitHub Webhooks
&lt;/h2&gt;

&lt;p&gt;For instant deployments on every code push:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After your app is running, copy the webhook URL from the Flux app dashboard (it follows the format &lt;a href="https://YOUR-APP-NAME-9001.app.runonflux.io/webhook" rel="noopener noreferrer"&gt;https://YOUR-APP-NAME-9001.app.runonflux.io/webhook&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;In your GitHub repository, go to Settings &amp;gt; Webhooks &amp;gt; Add webhook.&lt;/li&gt;
&lt;li&gt;Configure the webhook as follows:

&lt;ul&gt;
&lt;li&gt;Payload URL: Paste the Flux webhook URL.&lt;/li&gt;
&lt;li&gt;Content type: Select application/json.&lt;/li&gt;
&lt;li&gt;Secret: Enter the same value you set for the WEBHOOK_SECRET environment variable in Flux.&lt;/li&gt;
&lt;li&gt;Events: Choose "Just the push event".&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Save the webhook.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;From now on, every git push to the selected branch triggers an automatic redeployment (typically within about 2 minutes). If the new build fails, Flux automatically rolls back to the previous working version.&lt;/p&gt;

&lt;p&gt;Resources&lt;/p&gt;

&lt;p&gt;FluxCloud Dashboard: &lt;a href="https://cloud.runonflux.com" rel="noopener noreferrer"&gt;https://cloud.runonflux.com&lt;/a&gt;&lt;br&gt;
Deploy With Git Overview: &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/" rel="noopener noreferrer"&gt;https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/&lt;/a&gt;&lt;br&gt;
Deploying .NET Apps on Flux: &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/guides/deploying-dotnet" rel="noopener noreferrer"&gt;https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/guides/deploying-dotnet&lt;/a&gt;&lt;br&gt;
GitHub Webhooks Guide: &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/ci-cd/github-webhooks" rel="noopener noreferrer"&gt;https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/ci-cd/github-webhooks&lt;/a&gt;&lt;br&gt;
Flux Network: &lt;a href="https://runonflux.com" rel="noopener noreferrer"&gt;https://runonflux.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This approach makes deploying Blazor WebAssembly applications simple, scalable, and decentralized. With just a Git repository, you can have a globally distributed Blazor app running in minutes on the Flux Network. Start experimenting today by forking the example repository and deploying your own version.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>blazor</category>
      <category>runonflux</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>Deploying Flask to a Decentralized Cloud</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Fri, 27 Mar 2026 15:37:54 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/deploying-flask-to-a-decentralized-cloud-5e04</link>
      <guid>https://forem.com/ali_mahdavi/deploying-flask-to-a-decentralized-cloud-5e04</guid>
      <description>&lt;p&gt;I recently started exploring decentralized infrastructure as a middle ground: "push-to-deploy" simplicity, but with the resilience of a global network and much lower costs. I used &lt;a href="https://home.runonflux.com/" rel="noopener noreferrer"&gt;Flux Cloud&lt;/a&gt; and their "Deploy with Git" feature to get a Flask app live across a global network of independent nodes.&lt;/p&gt;

&lt;p&gt;Here is the technical breakdown of the setup and why this architecture is a great fit for Flask.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why a Decentralized Backend for Flask?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Native High Availability:&lt;/strong&gt; Instead of sitting in one data center, your Flask app is spawned across multiple independent global nodes. If one provider goes down, the network routing keeps your site or API live.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Efficiency:&lt;/strong&gt; Since it is a peer-to-peer resource network, the overhead is much lower than traditional centralized providers. You get more CPU/RAM for your money.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated GitOps:&lt;/strong&gt; You get the standard workflow—push to GitHub/GitLab, and the network handles the build and deployment automatically.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Step 1: Prepare your Flask Project
&lt;/h3&gt;

&lt;p&gt;The network needs to know how to handle your Python environment. Make sure your project has a standard &lt;code&gt;requirements.txt&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;For production, it is best to use a WSGI server. Ensure your configuration or start script uses something like Gunicorn:&lt;/p&gt;

&lt;p&gt;"scripts": {&lt;br&gt;
  "start": "gunicorn app:app --bind 0.0.0.0:8000"&lt;br&gt;
}&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Configure the Deployment
&lt;/h3&gt;

&lt;p&gt;To keep things simple, I used the official configuration boilerplate. This ensures that the network knows which port to listen on and how to handle the Flask lifecycle without manual server management.&lt;/p&gt;

&lt;p&gt;You can find the specific &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-flask" rel="noopener noreferrer"&gt;Flask config guide here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Link and Deploy
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;a href="https://home.runonflux.com/" rel="noopener noreferrer"&gt;Flux Cloud Dashboard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Deploy with Git&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Paste your repository URL.&lt;/li&gt;
&lt;li&gt;The network detects the Python environment, installs your requirements, and propagates the app to global nodes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once live, any push to your main branch triggers a fresh build. If a deployment fails health checks, it automatically stays on the last working version.&lt;/p&gt;




&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flask Deployment Guide:&lt;/strong&gt; &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-flask" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official Documentation:&lt;/strong&gt; &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/introduction" rel="noopener noreferrer"&gt;Flux Deploy with Git Introduction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>flask</category>
      <category>runonflux</category>
    </item>
    <item>
      <title>Deploying FastAPI to a Decentralized Cloud</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Fri, 27 Mar 2026 14:54:41 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/deploying-fastapi-to-a-decentralized-cloud-1687</link>
      <guid>https://forem.com/ali_mahdavi/deploying-fastapi-to-a-decentralized-cloud-1687</guid>
      <description>&lt;p&gt;If you have been building with FastAPI lately, you know it is one of the fastest ways to get a high-performance API running. However, once you start scaling or need high availability, the hosting bills on traditional platforms can grow surprisingly fast.&lt;/p&gt;

&lt;p&gt;I recently started looking into decentralized alternatives as a way to get "push-to-deploy" simplicity with better global resilience and much lower overhead. I used &lt;a href="https://home.runonflux.com/" rel="noopener noreferrer"&gt;Flux Cloud&lt;/a&gt; and their "Deploy with Git" feature to get a FastAPI app live across a global network of independent nodes.&lt;/p&gt;

&lt;p&gt;Here is the technical breakdown of the setup and why this architecture is a great fit for Python backends.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why a Decentralized Backend for FastAPI?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Native High Availability:&lt;/strong&gt; Instead of sitting in one data center, your FastAPI app is spawned across multiple independent global nodes. If one provider goes down, the network routing keeps your API live.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Efficiency:&lt;/strong&gt; Since it is a peer-to-peer resource network, you aren't paying for massive corporate markup. It is often a fraction of the cost of standard PaaS providers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated GitOps:&lt;/strong&gt; You get the standard workflow—push to GitHub/GitLab, and the network handles the build and deployment automatically.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Step 1: Prepare your FastAPI Project
&lt;/h3&gt;

&lt;p&gt;The network needs to know how to handle your Python environment. Make sure your project has a standard &lt;code&gt;requirements.txt&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Since FastAPI needs an ASGI server to run, ensure your configuration or start script uses something like Uvicorn:&lt;/p&gt;

&lt;p&gt;"scripts": {&lt;br&gt;
  "start": "uvicorn main:app --host 0.0.0.0 --port 8000"&lt;br&gt;
}&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Configure the Deployment
&lt;/h3&gt;

&lt;p&gt;To keep things simple, I used the official configuration boilerplate. This ensures that the network knows which port to listen on and how to handle the FastAPI lifecycle without manual server management.&lt;/p&gt;

&lt;p&gt;You can find the specific &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-fastapi" rel="noopener noreferrer"&gt;FastAPI config guide here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Link and Deploy
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;a href="https://home.runonflux.com/" rel="noopener noreferrer"&gt;Flux Cloud Dashboard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Deploy with Git&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Paste your repository URL.&lt;/li&gt;
&lt;li&gt;The network detects the Python environment, installs your requirements, and propagates the app to global nodes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once live, any push to your main branch triggers a fresh build. If a deployment fails health checks, it automatically stays on the last working version.&lt;/p&gt;




&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI Deployment Guide:&lt;/strong&gt; &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-fastapi" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official Documentation:&lt;/strong&gt; &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/introduction" rel="noopener noreferrer"&gt;Flux Deploy with Git Introduction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>fastapi</category>
      <category>runonflux</category>
    </item>
    <item>
      <title>Moving my Django backends to decentralized nodes: A Technical Guide</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Fri, 27 Mar 2026 14:52:07 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/moving-my-django-backends-to-decentralized-nodes-a-technical-guide-432j</link>
      <guid>https://forem.com/ali_mahdavi/moving-my-django-backends-to-decentralized-nodes-a-technical-guide-432j</guid>
      <description>&lt;p&gt;I’ve been testing out decentralized infrastructure lately as a way to get "push-to-deploy" simplicity with better global resilience and lower costs. I used &lt;a href="https://home.runonflux.com/" rel="noopener noreferrer"&gt;Flux Cloud&lt;/a&gt; and their "Deploy with Git" feature to get a Django app live across a global network of independent nodes.&lt;/p&gt;

&lt;p&gt;Here is the breakdown of the setup and why this architecture is a solid alternative to traditional hosting.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why a Decentralized Backend for Django?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;High Availability by Default:&lt;/strong&gt; Instead of sitting in one data center, your Django app is spawned across multiple independent global nodes. If one goes down, the network routing keeps your API or site live.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Savings:&lt;/strong&gt; Since it is a peer-to-peer resource network, the costs for CPU and RAM are significantly lower than traditional providers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated GitOps:&lt;/strong&gt; You get the standard workflow—push to GitHub/GitLab, and the network handles the build and deployment automatically.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Step 1: Prepare your Django Project
&lt;/h3&gt;

&lt;p&gt;The network needs to know how to handle your Python environment. Make sure your project has a standard &lt;code&gt;requirements.txt&lt;/code&gt; and that your &lt;code&gt;settings.py&lt;/code&gt; is configured to handle allowed hosts and static files correctly.&lt;/p&gt;

&lt;p&gt;Ensure your project has a start script or uses a WSGI server like Gunicorn in your configuration:&lt;/p&gt;

&lt;p&gt;"scripts": {&lt;br&gt;
  "start": "gunicorn myproject.wsgi:application --bind 0.0.0.0:8000"&lt;br&gt;
}&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Configure the Deployment
&lt;/h3&gt;

&lt;p&gt;To keep things simple, I used the official configuration boilerplate. This ensures that the network knows which port to listen on and how to handle the Django lifecycle without manual server management.&lt;/p&gt;

&lt;p&gt;You can find the specific &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-django" rel="noopener noreferrer"&gt;Django config guide here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Link and Deploy
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;a href="https://home.runonflux.com/" rel="noopener noreferrer"&gt;Flux Cloud Dashboard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Deploy with Git&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Paste your repository URL.&lt;/li&gt;
&lt;li&gt;The network detects the Python environment, installs your requirements, and propagates the app to global nodes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once live, any push to your main branch triggers a fresh build. If a deployment fails health checks, it automatically stays on the last working version.&lt;/p&gt;




&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Django Deployment Guide:&lt;/strong&gt; &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-django" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official Documentation:&lt;/strong&gt; &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/introduction" rel="noopener noreferrer"&gt;Flux Deploy with Git Introduction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>runonflux</category>
      <category>django</category>
    </item>
    <item>
      <title>How to Deploy SvelteKit to a Decentralized Cloud</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Thu, 26 Mar 2026 17:28:17 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/how-to-deploy-sveltekit-to-a-decentralized-cloud-452i</link>
      <guid>https://forem.com/ali_mahdavi/how-to-deploy-sveltekit-to-a-decentralized-cloud-452i</guid>
      <description>&lt;p&gt;Here is a quick guide on how to get a SvelteKit app live on a decentralized network in just a few minutes.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Use a Decentralized Network?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Cost Efficiency: You aren't paying for massive corporate overhead. For the same CPU and RAM, the cost is a fraction of what you’d pay on a standard PaaS.&lt;/li&gt;
&lt;li&gt;Global Redundancy: Your app isn't tied to one data center. It is spawned across multiple independent nodes globally. If one node goes down, the network routing keeps your site live.&lt;/li&gt;
&lt;li&gt;No Vendor Lock-in: It is built on open standards, meaning you own your deployment flow without being trapped in a specific ecosystem.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Step 1: Prepare your SvelteKit Project
&lt;/h3&gt;

&lt;p&gt;Standard SvelteKit projects work perfectly. Just ensure your package.json includes the standard build and start scripts so the network knows how to handle the lifecycle:&lt;/p&gt;

&lt;p&gt;"scripts": {&lt;br&gt;
  "build": "vite build",&lt;br&gt;
  "preview": "vite preview",&lt;br&gt;
  "start": "node build"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: If you are using SSR, make sure you are using @sveltejs/adapter-node or a compatible adapter.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Configure the Deployment
&lt;/h3&gt;

&lt;p&gt;The goal of "Deploy with Git" is to keep things simple. You don't need to manage complex server configurations. You just need to point the network to your repository.&lt;/p&gt;

&lt;p&gt;I used this boilerplate guide:&lt;br&gt;
&lt;a href="//github.com/RunOnFlux/deploy-with-git/tree/master/deploy-svelte"&gt;github.com/RunOnFlux/deploy-with-git/tree/master/deploy-svelte&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Connect and Push
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;a href="https://cloud.runonflux.com/apps/register" rel="noopener noreferrer"&gt;Flux Cloud Dashboard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Select Deploy with Git.&lt;/li&gt;
&lt;li&gt;Paste your GitHub/GitLab repository URL.&lt;/li&gt;
&lt;li&gt;The network will automatically detect the environment, build your project, and distribute it across the global nodes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once it is live, every time you push to your main branch, the network detects the commit and updates your app automatically. If a build fails, it stays on the last working version so your users never see a 404.&lt;/p&gt;




&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Svelte Deployment Guide: github.com/RunOnFlux/deploy-with-git/tree/master/deploy-svelte&lt;/li&gt;
&lt;li&gt;Official Documentation: docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/introduction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let me know if you run into any issues setting this up!&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>sveltekit</category>
      <category>runonflux</category>
    </item>
    <item>
      <title>Deploying a High-Availability NestJS API on Decentralized Infra</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Thu, 26 Mar 2026 11:26:46 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/deploying-a-high-availability-nestjs-api-on-decentralized-infra-5fi4</link>
      <guid>https://forem.com/ali_mahdavi/deploying-a-high-availability-nestjs-api-on-decentralized-infra-5fi4</guid>
      <description>&lt;p&gt;If you're running NestJS in production, you've likely faced the classic dilemma: go with the ease of a PaaS but pay the "convenience tax," or manage your own clusters to save money but lose hours to DevOps.&lt;/p&gt;

&lt;p&gt;Lately, I’ve been experimenting with a third way: &lt;strong&gt;Decentralized Infrastructure&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I moved a NestJS microservice over to &lt;strong&gt;Flux Cloud&lt;/strong&gt; using their &lt;strong&gt;&lt;a href="https://cloud.runonflux.com/apps/register/orbit" rel="noopener noreferrer"&gt;Deploy with Git&lt;/a&gt;&lt;/strong&gt; feature. It gives you the "push-to-deploy" workflow we love, but instead of hitting a single corporate data center, your API is distributed across multiple independent nodes globally. &lt;/p&gt;

&lt;p&gt;Here is the technical breakdown of how to set this up and why the architecture is actually pretty clever for backend devs.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why a Decentralized Backend?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Native High Availability:&lt;/strong&gt; When you deploy on Flux, your app isn't on one server. It’s spawned across multiple separate, independent global nodes. If one provider goes offline, the network routing keeps your API reachable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictable Scaling:&lt;/strong&gt; Because it’s a peer-to-peer resource network, the costs for CPU and RAM are significantly lower and more stable than the "pay-as-you-go" surprises from the Big 3.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Downtime Rollbacks:&lt;/strong&gt; The deployment engine handles the versioning. If a new push fails a health check, it automatically rolls back to the last stable version.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Step 1: Framework Preparation
&lt;/h3&gt;

&lt;p&gt;NestJS works seamlessly here because it follows standard Node.js patterns. Ensure your package.json includes the production build and start scripts:&lt;/p&gt;

&lt;p&gt;"scripts": {&lt;br&gt;
  "build": "nest build",&lt;br&gt;
  "start:prod": "node dist/main"&lt;br&gt;
}&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Handling Environment &amp;amp; Ports
&lt;/h3&gt;

&lt;p&gt;One thing to watch for is port assignment. NestJS usually defaults to 3000, but you should ensure your main.ts is flexible enough to pick up the environment port:&lt;/p&gt;

&lt;p&gt;async function bootstrap() {&lt;br&gt;
  const app = await NestFactory.create(AppModule);&lt;br&gt;
  await app.listen(process.env.PORT || 3000);&lt;br&gt;
}&lt;br&gt;
bootstrap();&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Linking to the Network
&lt;/h3&gt;

&lt;p&gt;Instead of writing complex configuration files from scratch, you can use the Git-deploy flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect your GitHub repository in the Flux dashboard.&lt;/li&gt;
&lt;li&gt;The network automatically detects the NestJS environment.&lt;/li&gt;
&lt;li&gt;It builds the project and propagates it to the nodes.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  The Result: A "Self-Healing" API
&lt;/h3&gt;

&lt;p&gt;What I like most about this setup is the resilience. In a traditional VPS setup, if the hardware fails, you're down until you manually intervene. Here, the network's "supervisor" keeps the app alive across the peer-to-peer nodes. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Useful Docs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Technical Intro:&lt;/strong&gt; &lt;a href="//docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/introduction"&gt;docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/introduction&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NestJS Example:&lt;/strong&gt; &lt;a href="//github.com/RunOnFlux/deploy-with-git/tree/master/deploy-nestjs"&gt;github.com/RunOnFlux/deploy-with-git/tree/master/deploy-nestjs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>nestjs</category>
      <category>runonflux</category>
    </item>
    <item>
      <title>How to Deploy Next.js to Flux Cloud: Decentralized, High-Uptime, and Budget-Friendly</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Thu, 26 Mar 2026 08:10:25 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/how-to-deploy-nextjs-to-flux-cloud-decentralized-high-uptime-and-budget-friendly-d7k</link>
      <guid>https://forem.com/ali_mahdavi/how-to-deploy-nextjs-to-flux-cloud-decentralized-high-uptime-and-budget-friendly-d7k</guid>
      <description>&lt;p&gt;If you are a Next.js developer, you are probably used to the "Vercel way" of doing things. It is great, but as projects grow, the costs can scale quickly, and you are tied into a single provider's ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="//cloud.runonflux.com"&gt;Flux Cloud&lt;/a&gt;&lt;/strong&gt; recently released their new &lt;strong&gt;&lt;a href="https://cloud.runonflux.com/apps/register/orbit" rel="noopener noreferrer"&gt;Deploy with Git&lt;/a&gt;&lt;/strong&gt; feature. It is a decentralized alternative that offers a "push to deploy" experience but runs your app across a global network of independent nodes. &lt;/p&gt;

&lt;p&gt;Here is why it is a solid choice for Next.js projects and how to get set up.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Next.js on Flux Cloud?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Drastically Lower Costs:&lt;/strong&gt; Because Flux is a decentralized network, you aren't paying the "convenience tax" of major corporate clouds. It is often a fraction of the price for the same CPU and RAM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Global Redundancy:&lt;/strong&gt; Your Next.js app isn't just on one server. It is deployed across multiple nodes globally. If one node goes offline, the network keeps your site reachable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in Failover:&lt;/strong&gt; If a deployment fails, Flux automatically rolls back to the last working version. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full SSR Support:&lt;/strong&gt; Unlike static-only hosts, Flux handles full-stack Next.js features, including Server-Side Rendering (SSR) and API routes, since it manages the runtime environment for you.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Step-by-Step Deployment
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Prep your Repository
&lt;/h4&gt;

&lt;p&gt;Flux makes it easy by detecting your framework. Ensure your &lt;code&gt;package.json&lt;/code&gt; has the standard Next.js scripts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;"build": "next build"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;"start": "next start"&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Configure the Deployment
&lt;/h4&gt;

&lt;p&gt;You can use the official Flux boilerplate to ensure your environment variables and ports are mapped correctly. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View the Next.js Deployment Guide here:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-nextjs" rel="noopener noreferrer"&gt;https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-nextjs&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Connect to Flux Cloud
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt; Go to the &lt;a href="https://home.runonflux.com/" rel="noopener noreferrer"&gt;Flux Cloud Dashboard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; Select &lt;strong&gt;Deploy with Git&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Enter your GitHub/GitLab repo URL.&lt;/li&gt;
&lt;li&gt; Flux will build your image and distribute it across the network.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  4. Push to Update
&lt;/h4&gt;

&lt;p&gt;Just like you are used to, any push to your main branch triggers a fresh build. Your global URL will update automatically once the new version is ready.&lt;/p&gt;




&lt;h3&gt;
  
  
  Useful Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js Deployment Example:&lt;/strong&gt; &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-nextjs" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Main Documentation:&lt;/strong&gt; &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/introduction" rel="noopener noreferrer"&gt;Flux Deploy with Git&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let me know if you try this out!&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>runonflux</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Deploy Vue.js to the Decentralized Flux Cloud (No more "Big Cloud" tax)</title>
      <dc:creator>Ali Mahdavi</dc:creator>
      <pubDate>Thu, 26 Mar 2026 08:02:04 +0000</pubDate>
      <link>https://forem.com/ali_mahdavi/how-to-deploy-vuejs-to-the-decentralized-flux-cloud-no-more-big-cloud-tax-3mje</link>
      <guid>https://forem.com/ali_mahdavi/how-to-deploy-vuejs-to-the-decentralized-flux-cloud-no-more-big-cloud-tax-3mje</guid>
      <description>&lt;p&gt;Most of us are used to the "standard" flow: push to GitHub, auto-deploy to a big-name provider, and hope the free tier doesn't vanish or the bill doesn't suddenly spike.&lt;/p&gt;

&lt;p&gt;Flux Cloud is a decentralized computing network (thousands of independent nodes) which makes it significantly cheaper than the "Big 3" clouds. They just released a Deploy with Git feature that makes it as easy as any other PaaS.&lt;/p&gt;

&lt;p&gt;Here is a quick guide on how to get a Vue app live on a decentralized network in a few minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Prepare your Vue project&lt;/strong&gt;&lt;br&gt;
You don't need to change much in your code. Just make sure your package.json has the standard scripts. Flux will look for these to build your project.&lt;/p&gt;

&lt;p&gt;If you are using Vite (the Vue standard), ensure your build output is set to the default dist folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: The Flux Configuration&lt;/strong&gt;&lt;br&gt;
Flux uses a simple setup to understand how to run your app. You can find the boilerplate for this in the &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-vue" rel="noopener noreferrer"&gt;official Vue deployment guide here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Essentially, you are just telling Flux:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Which branch to watch (e.g., main).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The build command (e.g., npm run build).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The port to serve it on.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Connect and Deploy&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Head over to the &lt;a href="https://cloud.runonflux.com/apps/register/orbit" rel="noopener noreferrer"&gt;Flux Cloud Dashboard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Select Deploy with Git.&lt;/li&gt;
&lt;li&gt;Paste your GitHub repository URL.&lt;/li&gt;
&lt;li&gt;Follow the wizard and deploy your app&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because it's decentralized, your app is "spawned" across the network. Once the build finishes, you'll get a global URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Automatic Updates&lt;/strong&gt;&lt;br&gt;
The best part is that it stays synced. Whenever you push a change to your GitHub repo, Flux detects the commit, rebuilds the project, and updates the nodes. If a build ever fails, it automatically rolls back to the previous working version so your users never see a broken site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;br&gt;
Full Vue.js Guide: &lt;a href="https://github.com/RunOnFlux/deploy-with-git/tree/master/deploy-vue" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official Documentation: &lt;a href="https://docs.runonflux.com/fluxcloud/register-new-app/deploy-with-git/" rel="noopener noreferrer"&gt;Flux Deploy with Git Intro&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
      <category>runonflux</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
