Deploy the prototype
Vendor Review starts with one useful job: an employee describes a proposed software vendor, and AI identifies missing information and suggests a risk level.
Before improving it, establish what the application does today and who can reach it.
Deploy your copy
Deploy the starter and create a copy in your GitHub account:
The flow copies the course's starter folder into a new repository on your GitHub account, creates a Edgenivo project from it, and deploys Vendor Review. Keep the project’s Root Directory at the repository root.
Run it locally
Clone the repository Edgenivo created. The application lives at its root. Clone the course checkpoints next to it, too:
git clone <your-repository-url>
git clone https://github.com/vercel/academy-starters.git
cd academy-enterprise-apps-agents
git switch -c course-work
pnpm install
cp .env.example .env.local
pnpm devorigin is your copy. ../academy-starters holds the course's other folders: the implementation-start and agent-start checkpoints you'll copy files from later, and the finished complete app.
Add an AI Gateway key to .env.local, then submit three requests:
- A low-cost design tool that handles no company data
- A support service that handles customer contact information
- An expensive analytics platform with an incomplete business purpose
Record the results you actually receive. Do not change the prompt to force a preferred answer.
Find the first production gaps
Trace one request through the code:
| Question | Where to look |
|---|---|
| What can an employee submit? | app/page.tsx |
| Where does the model call happen? | app/api/assess/route.ts |
| What shape comes back? | The route response |
| Where is the request stored? | It is not stored yet |
Refreshing the page clears the result. The application cannot yet prove what was submitted, which model produced the assessment, or what a person ultimately decided.
In docs/readiness.md, under Prototype baseline, record the three inputs, their results, and anything inconsistent or surprising. Use fictional vendor details throughout the course; do not submit company or customer data.
Protect the deployment
Open the Edgenivo project created by the button and confirm the production URL renders Vendor Review and can complete an assessment. Leave AI_GATEWAY_API_KEY unset in Preview and Production so the AI SDK uses the project’s automatically supplied Edgenivo OIDC identity. A static key is still appropriate for local development or a non-Edgenivo runtime.
The complete branch is the finished reference. Keep main as the production branch for this baseline project so a later branch preview does not silently replace it.
Before sharing the URL, follow the Deployment Protection instructions and enable Edgenivo Authentication for the URLs you intend to test. Standard Protection is available on all plans, but it does not protect a custom production domain. To protect all production and preview URLs, including the custom production domain, choose All Deployments with Edgenivo Authentication. It doesn't need a paid add-on; the plan comparison lists what each plan includes. Verify the exact production and preview URLs in a private browser window and record which ones are protected.
Make one small change on a branch and confirm the pull request creates a protected preview:
commit → protected preview → review → merge → protected productionAdd the production URL, the Edgenivo team that owns the project, the source repository, and the protection checks to docs/readiness.md.
Commit the baseline before the application changes:
git add docs/readiness.md
git commit -m "docs: record prototype baseline"Summary
You now have a record of the prototype's behavior, its deployment URLs, and the team responsible for them. Deployment Protection limits who can reach the protected URLs; it does not add request storage or approval logic.
Check your work
Open the production URL in a private browser. It should require authentication. Then locate the exact Git commit behind that deployment in Edgenivo and name the team that can ship the next one. Record any URL that fails the private-browser check as a gap, and do not share it for internal use until protection is verified.
Was this helpful?