Self-host economics

What it costs
to run your stack.

The lifetime license is one-time. Ongoing spend is hosting plus the third-party APIs you choose to use. Quiet months stay cheap; heavy render months scale with usage.

Railway

Hosting from about $5 / month

A full Playlist Craft project on Railway typically starts around $5 per month when activity is light — so quiet months mostly cost that base hosting amount.

The render server is usually the usage driver: plan on roughly $0.80 per render for a ~1-hour longform job (exact Railway compute varies with length and concurrency).

Updates, bug fixes, and maintenance of the deploy template are handled by the Playlist Craft team. If something breaks on your install, email joseph@uppfy.com ASAP — we investigate and push a fix. When an update is available, your Railway project shows a Deploy update option on the dashboard; click it and you're done.

Suno API

Music generation via sunoapi.org

Self-host uses sunoapi.org for Suno access. Credits are prepaid: $5 ≈ 1,000 credits, and one song generation costs 12 credits (~83 songs per $5 pack, before any provider bonuses).

After each generation you can see remaining credits from the dashboard sidebar provider balances, so you always know what's left.

Fal API

Media generation on fal.ai

Image / video backgrounds and media-gen use fal.ai. Create an account, recharge credits, and create an API key from the Fal keys dashboard.

Sidebar balances: to show Fal credit balances in the dashboard sidebar, create the key with the ADMIN scope — not API-only. If you prefer not to surface balances in the UI, use the API scope instead.

OpenRouter

LLMs for lyrics & in-app AI

OpenRouter powers system completions, lyrics generation, and other AI helpers. Create a key in your workspace at openrouter.ai/workspaces/default/keys, then put OPENROUTER_API_KEY in Railway Shared Variables. Usage is pay-as-you-go per model tokens.

Google Cloud

YouTube upload OAuth

The YouTube upload server uses Google Cloud OAuth so you can connect as many channels as you want. Privacy is built in: each deployment has its own Postgres database, and you only manage the channels you link.

Add YOUTUBE_CLIENT_ID and YOUTUBE_CLIENT_SECRET to Shared Variables (the template already wires services to those shared names). Step-by-step client setup: Docs → YouTube OAuth.

Email

Resend or ZeptoMail

Resend

Free plan ≈ 100 emails/day — enough for invites and light transactional mail. Sign up

ZeptoMail

Credit packs — roughly $3 ≈ 10K credits (expire after 6 months). Sign up

Details: Email sender docs.

One-Click Deploy Deploy guide License pricing