Render sits somewhere between Railway and Fly — a real hosting platform with a generous free tier and a dashboard that's friendly without hiding what's happening. total time: about 15 minutes.
Render prefers deploying from Git. Don't worry — your secrets don't go in the repo.
In a folder somewhere, unzip your bundle. Everything is already in it — bot source, your config, your thank-yous. Then:
git init
git add .
git commit -m "my justthetips bot"
Create a new repo on GitHub (private is fine), then:
git remote add origin git@github.com:YOU/justthetips.git
git push -u origin main
.gitignore that excludes config.env. Your bot tokens stay off GitHub.
On the Render dashboard: New + → Web Service.
Connect your GitHub account when prompted, then pick the repo you just pushed.
Render asks for configuration:
npm installnpm startScroll down to the Environment Variables section. Click Add Environment Variable for each line in your config.env.
Key on the left (e.g. OWNER_XRPL_ADDRESS), value on the right.
config.env at once.
Click Create Web Service. Render installs your dependencies and starts your bot. First run takes 2-3 minutes.
Watch the log output — you'll see Node starting up, watchers connecting, and finally api server listening.
Render gives you a URL like https://justthetips-abc123.onrender.com at the top of your service page.
Go back to Environment, edit API_PUBLIC_URL to that URL, then Save Changes. Render redeploys automatically.
Open https://<your-render-url>/check.
Every row should be green. If something's red, the detail text tells you what to fix.
Render's free tier spins down your service after 15 minutes of inactivity. Your bot wakes up when someone hits its URL — but it'll miss tips that arrive during the spindown window.
For a bot you want reliably always-on, their $7/mo Starter plan is the right move.
Render auto-deploys whenever you push to your GitHub repo's main branch. When a new bot version comes out:
config.env)git add . && git commit -m "update" && git pushRender picks it up and redeploys.