davidmyersdev / ccc-free-deploys

Examples of how to deploy your JS apps for free

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This resource is still in progress!

How to deploy your apps for free

A resource for the Columbus Code & Coffee presentation.

Table of Contents

What are the different ways to deploy a web app?

Traditional "always on" applications

  • Most expensive to host
  • Most expensive to scale
  • Usually deployed in a single region as a single instance (less capable for concurrent loads)
  • More flexible
  • More control
  • Least barrier to entry

Traditional hosting providers

Provider Pricing Requires Credit Card?
Railway free ($5/m, $5/m credit) Yes
Fly free Yes
Render free (limited per user) No
Glitch free (apps sleep after 5 minutes) No

What about "serverless" apps?

  • Quite a bit less expensive to host
  • Can be less expensive to scale
  • Decent user experience for users in a closer region, but often not deployed close to users around the world
  • Can handle concurrent loads better than traditional hosting
  • Less runtimes available
  • Slightly higher barrier to entry
  • Although the name implies otherwise, there are still servers involved
  • Examples:

Deploying to the edge

  • Way less expensive to host
  • Way less expensive to scale
  • Better user experience (faster loads times, lower latency, etc) since code is deployed to many locations close to users
  • Least amount of runtimes available
  • Much higher barrier to entry
  • Often runs "raw" JavaScript (no Node)
  • Examples:

Static sites

  • The cheapest to host
  • The cheapest to scale
  • The most limited (only static assets, no server)
  • Limited to technologies that run in a web browser
  • You can't run a server, and you can't authenticate your users without a third-party service (more on that later).
  • Examples:

What options do I have to host my database?

Apps often need a database to persist non-static data. Many hosts offer a database as a service, but there are also options for hosting your database separately from your app.

Alternatives to Platform as a Service (PaaS)

Self-hosted PaaS options (deploy to a VPS)

VPS options

Other considerations

  • Authentication & Authorization
    • Auth0
    • Clerk
    • Firebase
    • Supabase
  • CI/CD
    • GitHub Actions
    • GitLab CI
    • CircleCI
  • Monitoring
    • UptimeRobot
    • Pulsetic
  • Logging
    • Datadog
    • Sumologic
  • Error tracking
    • Sentry
    • AppSignal
    • BugSnag
  • Runtime testing
    • Playwright
    • Cypress

Other resources

About

Examples of how to deploy your JS apps for free