SLW / devportal Production apps Signing in…
The lifecycle

From a throwaway idea to a live product.

Every app lives somewhere on one path β€” Experiment β†’ Incubating β†’ Operational. Moving up is mostly a switch, not a rebuild, and the guardrails only tighten as an app gets closer to real users.

The three stages

You see them as three lanes on the App Board tab. The big idea: everything an app needs is built while it's Incubating, with production sitting ready but dark β€” going live just turns it on.

Experimentprod βœ• none

A throwaway prototype

One person, dev data, no gates. Stamped in ~30 seconds with SLW login already working. Perfect for "let's try this." Nothing here can touch production β€” there is no production.

You build it the same way as everything else: it appears in your workspace automatically, as a normal folder. Your apps live at /workspaces/<app>; experiments are the same, one level deeper β€” /workspaces/experiments/<name>. Open that folder like any app, or open Claude Desktop and paste the kickoff prompt from the experiment's card (e.g. "Open experiments/<name> and build it") β€” the prompt just opens the folder for you. Every push deploys to its own <name>.lab.rivent.dev preview. Want to watch it change live between pushes? Ask Claude: "run the app and give me a link" β€” it serves the in-progress app at a private team link that reloads as Claude works.

Incubatingprod ◐ dark

A real project, being built

It graduates here the moment someone commits to building it for real. It gets its own repo, dev database, CI, previews, and the full progress board β€” the same setup a live app has.

Incubating has two modes. On dev data production is built but dark, and gates are staged rather than enforced β€” there's no prod to protect yet. On real data the app has its own real database and the team uses it, so the gates are already on: main needs a pull request with review. Gates follow the data, not the stage.

Operationalprod ● live

Shipped, and the team relies on it

Production is live and gated: changes ship through preview β†’ approve β†’ prod, and anything touching the database or prod config needs a code-owner (Shawn) review.

Every app is one page, with tabs

Click any app on the App Board to open its page. Everything about it lives here β€” no jumping around.

Overview

Status, what's outstanding, how to open the dev app, and how to work on it in Claude Desktop.

Review & publish

Each finished change with a live preview β€” tick the ones you want and publish them to production.

Plan

The app's kanban board (below).

Team

Who's been working β€” recent dev activity and open changes.

Planning: the in-app Plan board

Each app has its own board on its Plan tab β€” right in the portal, no GitHub.

Four columns β€” Inbox β†’ Up next β†’ In progress β†’ Done. Click οΌ‹ Add a card to open a card: give it a title, a description, and attach a file, image, or PDF (images preview as thumbnails). Drag cards between columns as work moves. A planning card becomes real work when someone opens a change for it β€” which then shows up on Review & publish.

Want the bird's-eye view across every app? Admin β†’ All plans shows every project's board with a toggle.

How work goes live

Same for every operational app: you build on the safe copy (Dev) and the finished change crosses to the live app (Production) through one reviewed gate. The full picture is on Start here β†’

1DevBuild on the safe copy. Your work can't affect the live app while you build β€” experiment freely on safe data.
2DevPreview it. Each finished change gets a live preview link on Review & publish β€” try it before it's live.
3The gateApprove it. Tick the ready changes and publish β€” most just need green checks. Database migrations or production/deploy config wait for Shawn (code-owner review), where a mistake could hit real data.
4ProductionIt goes live β€” the change crosses into the real app.

Moving up: promote, real data & go-live

Three transitions carry an app up the lifecycle.

Experiment→ promote →Incubating

Promote

Commit to building an experiment for real. It's scaffolded into a full incubating app β€” its own repo, dev Supabase database, and dev app β€” with production built but dark. If the dev environment isn't built yet, the app's page shows Set up the dev environment and walks you through it in the browser.

Incubating→ real data →Incubating

Switch to real data

The Real data β†’ button on the app's card. This is the moment the app stops being a practice build, so it does real things β€” read the confirm box before you click it:

It creates the app its own real Supabase database (about $10/month), points production at that database, and turns the gates on β€” from then on main requires a pull request with review, so no more pushing straight to main. The new database starts empty: your existing dev data does not come with it, and loading real data is a separate, deliberate step. Switching back to dev data is free and needs no infrastructure.

Incubating→ go-live →Operational

Go live

Everything's already built, so going live is a switch: production turns on and the app moves onto its product domain as the team's system-of-record. If the app is already on real data the gates are on before this point β€” go-live doesn't turn them on, it just makes the app official. Go-live is approved by Shawn β€” the owner requests it; Shawn clears it.

🌱The whole point: nothing is a big-bang launch. An app is fully built and testable while Incubating; going live only flips the switches β€” and the guardrails scale with risk, so you're never fighting ceremony before there's a real production to protect.