Inspiration
AgroClima helps small coffee farmers in El Salvador understand estimated coffee-leaf-rust weather risk and leaf-photo guidance in Spanish. A useful application also needs a reliable route from a code change to a verified release.
For Life After Code, AgroClima supplies the real application. The new contribution is its GitLab-native delivery workflow: issue context, agent execution, review, testing, security checks, deployment preparation, and commit verification.
What it does
GitLab Duo Developer receives a scoped issue, implements changes on a branch, runs checks, and opens a merge request. Code Review Flow evaluates the generated changes and requests corrections. GitLab CI runs lint, TypeScript checks, tests, and a production build.
The merged release gate records the build commit in /api/health and rejects a deployment serving a different revision. Its tests cover malformed responses, HTTP failures, timeouts, missing inputs, and credential-free output.
The separate application is live at https://agroclima-transcend.vercel.app on Vercel. The migration removes automatic Cloudflare initialization from the default Next.js build, reads server settings on Node/Vercel without importing a Cloudflare runtime, supports VERCEL_GIT_COMMIT_SHA, and adds a manual GitLab job that builds and stages a production Vercel deployment without automatically promoting it.
That job is limited to protected default-branch push/web pipelines with the nonsecret ENABLE_VERCEL_STAGING flag. Credentials are scoped to its vercel-staging environment, checked inside the job, and unavailable to unrelated install/test/build jobs. It checks critical production dependency advisories, verifies the explicit organization/project IDs, builds the prebuilt bundle, records the nonsecret deployment URL, and checks its health revision through protected Vercel access. Automatic Git deployments are disabled so they cannot publish around the GitLab checks.
How we built it
This is a Path B entry based on the existing public MIT-licensed AgroClima app. The code was imported into the provisioned GitLab hackathon workspace. The original GitHub repository and original Cloudflare Worker remain untouched.
GitLab Duo Developer implemented the release gate, followed up on review feedback, produced a Next.js security-patch MR, and implemented the Vercel migration. The farmer-facing AI integrations are inherited features; they do not substitute for GitLab Duo Agent Platform usage.
Codex reviewed the official requirements, imported and inspected the source, configured Duo execution and review instructions, wrote scoped issues, independently reviewed generated changes, and ran tests and local builds. Codex also tightened the staging failure behavior, revision validation, artifact handling, and deployment controls.
Execution evidence
Release gate, reviewed and merged: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/761948/showcase/-/merge_requests/1 Security patch, critical audit gate, and integration, reviewed and merged: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/761948/showcase/-/merge_requests/3 Vercel migration, reviewed and merged: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/761948/showcase/-/merge_requests/4
The Vercel migration branch passed 201 application tests and 33 release/helper/provenance cases locally, plus typecheck and lint. The suites overlap; these are not added as a distinct-case total. Its latest branch pipeline passed. The final merged main pipeline also passed at 8062474: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/761948/showcase/-/pipelines/2992000505 . A review correction retains the staged URL even when health verification fails; follow-up review session 10092403 approved the correction, and MR !4 merged into main at 87926c5.
A private combined verification tree with the Vercel migration and the unmerged Next.js 16.4.3 security patch completed a standard Next.js production build. Running it directly with next start returned homepage HTTP 200, a health revision from VERCEL_GIT_COMMIT_SHA, and a seven-day Santa Ana forecast. Correct expected-revision verification passed; an intentionally wrong revision failed with exit code 1. These are localhost checks, not a public Vercel deployment.
The reviewed main revision 8062474 was then uploaded to the dedicated agroclima-transcend Vercel project and built successfully. Anonymous requests returned HTTP 200 for the homepage, /api/health with sha 8062474, and a seven-day Santa Ana forecast. The live browser flow rendered the department risk and municipality forecast without console errors. Running the reviewed release verifier against the public site accepted the expected commit and rejected deadbee with exit code 1. These public checks are separate from the earlier localhost checks.
The production-dependency audit has zero critical findings, with six high and two moderate findings remaining. The audit is not clean.
Challenges and lessons
Code review exposed meaningful gaps: credential tests needed to exercise the actual failure path; the build needed an explicit dependency on the security audit; and a failed staging check needed to retain its deployment URL as evidence. We corrected those issues rather than treating a green-looking session as proof.
Some Duo sessions dropped or finished without a review decision. We retain the actual session and pipeline evidence and do not count a runner's successful exit as an agent approval.
A passing build, an agent run, and a healthy-looking URL establish different facts. A release needs evidence connecting the reviewed change, passing checks, deployed revision, and visible failure behavior.
Testing instructions
Use Node.js 22.x. From the reviewed main revision with the migration and security patch: git clone https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/761948/showcase.git cd showcase npm ci npm test npm run test:release npm run typecheck npm run lint npm run build npm run start
Deployment setup and staged checks are documented in docs/vercel-deployment.md. A public deployment can be verified with: npm run verify:release -- https://agroclima-transcend.vercel.app 8062474de61859dd074d05958c93ede64dc2e0b6
Do not use a placeholder URL or the original app's URL as evidence of the new deployment.
Release status
The release gate, Vercel migration and security patch are reviewed and merged into main at 8062474. Main pipeline 2992000505 passed all ordinary checks. Code Review session 10093246 approved the combined corrections. The separate public Vercel deployment serves that reviewed revision.
Demo video: https://www.youtube.com/watch?v=Jti7Y0q0MKY (2 minutes 6 seconds, Unlisted).
The workflow's issue, merge-request, review and CI evidence is linked above. The autonomy category is Bring Your Own: Supervised; human review remains part of the release boundary.
Limitations
Forecast risk is an estimate and has not been validated as an agronomic diagnosis. The new Vercel target needs its own configured credentials before image diagnosis or model responses can be verified. Optional browser speech remains the fallback. KV/R2 bindings are absent on Vercel; in-memory caches and rate limits are per instance and best-effort.
The initial release used an authenticated Vercel source upload of the exact reviewed GitLab tree after main CI passed. The manual GitLab staging job has not been exercised against the Vercel project yet; its scoped credentials remain to be configured. The public release-verifier commands were run from the local reviewed source against the live URL, rather than from GitLab CI. Creating a new pipeline with a DEPLOYMENT_URL variable was rejected by GitLab's current role policy; that policy was not changed. No autonomous production promotion or recovery loop is claimed. No Google Cloud bonus or quantified sustainability prize claim is made.
Source
Original MIT source: https://github.com/jaime-sql/agroclima
Hackathon GitLab source and pipeline history: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/761948/showcase
This is the separate Life After Code entry. The earlier AgroClima Devpost project belongs to another event and has not been edited.
Built With
- gitlab
- gitlab-ci-cd
- gitlab-duo-agent-platform
- next.js
- node.js
- open-meteo
- react
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.