Option 1: start from a prompt
Open a chat in Reliant, pick the Build an App workflow in the workflow selector, and describe what you want:staging, waits for the rollout to be healthy, and checks the release. Open Apps in the Reliant sidebar to see the environment and the URL it was given.
If you would rather do the steps yourself, or want to see what just happened, continue below.
Option 2: run the commands
Before you start
Inside Reliant, Forge is built in: run it asreliant forge …. Agents’ shells have it too, already signed in to your account. This page writes forge for short. Outside Reliant, install the standalone binary with go install github.com/reliant-labs/forge/cmd/forge@latest; deploying to Reliant hosting then needs the sign-in that reliant forge handles for you.
You need Go and Docker on the machine that runs the project, and Node.js if it has a frontend. If you are unsure what is missing, forge doctor checks the project and the tools it depends on and says how to fix what it finds.
Create a project
--service names a first Go service (name it after a domain thing like bookmark or order, not after the app) and --frontend adds a Next.js frontend. Both are optional and can be added later with forge scaffold service <name> and forge scaffold frontend <name>. Creating the project installs the frontend’s dependencies and generates the first round of code, so this step can take a few minutes.
The project already builds and runs. The binary serves health checks, dev, staging and prod environments are declared, and CI workflows are in place.
Give it data
Describe an entity in the service’s proto file,proto/services/bookmark/v1/bookmark.proto, by marking a message with // forge:entity:
forge scaffold, which creates everything your protos imply:
bookmarks table, the five CRUD methods (CreateBookmark, GetBookmark, UpdateBookmark, DeleteBookmark, ListBookmarks) added to your service, the generated data access and handler wiring, a test that runs the CRUD lifecycle against a real Postgres, and CRUD pages in the frontend. Field numbers start at 2 because forge adds id, created_at and updated_at itself.
Run it locally
--background to detach and return, which is also what happens when an agent or script runs it.
Every process’s output is also written to .forge/logs/dev/, one file per service, including the browser console of your frontend:
Check your work
Before you call a change done, run the same gate CI runs:forge generate is safe to run at any time, and forge lint checks architecture, migrations and generated-file drift as well as style. Adding a feature walks through this everyday loop.
Deploy it
A new project’sstaging and prod environments already point at Reliant hosting, so there is nothing to configure first:
--yes to say “I read the plan”.
If your organization has no compute plan yet, the deploy is queued rather than refused. The command prints what it is waiting on and exits with code 7, and the deploy goes live by itself once billing is set up. Add --wait to block until then. Hosting on Reliant explains queued deploys, and the pricing page lists current plans.
Then prove the release is good rather than assuming it:
0 when the release passed and 1 when it made things worse. An exit code of 2 means it could not tell, which is “not proven good”, not a pass. Observability covers what it reads.
When staging looks right, promote the same release to prod without rebuilding anything:
No account yet?
forge env deploy <env> --claimable deploys without one, for an environment of a single static site or a single service with one database. Forge prints a live URL and a claim link to give to a person. Unless someone opens the link, the deploy goes offline after 72 hours; opening it signs them up for free and makes the deploy theirs. It is refused when you are already signed in.Where to go next
Project anatomy
Where code goes, and which files forge owns.
Adding a feature
Services, RPCs, entities, migrations, tests.
Environments & deploys
Releases, plans, promotion, scoped deploys, your own cluster.
Troubleshooting
When something does not come up.
deploy/static-site skill for it.