<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vercel | Jacob Aloysious</title><link>https://jacobaloysious.in/tag/vercel/</link><atom:link href="https://jacobaloysious.in/tag/vercel/index.xml" rel="self" type="application/rss+xml"/><description>Vercel</description><generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Sat, 26 Sep 2026 00:00:00 +0000</lastBuildDate><image><url>https://jacobaloysious.in/images/icon_hu4591c05f594249c11c1e99a3a8f1f246_3759739_512x512_fill_lanczos_center_2.png</url><title>Vercel</title><link>https://jacobaloysious.in/tag/vercel/</link></image><item><title>Bringing My Blog Back with Codex Computer Use</title><link>https://jacobaloysious.in/post/bringing-my-blog-back-with-codex/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><guid>https://jacobaloysious.in/post/bringing-my-blog-back-with-codex/</guid><description>&lt;p>My blog&amp;rsquo;s source code was sitting in GitHub. My domain, &lt;strong>jacobaloysious.in&lt;/strong>, was registered with GoDaddy. I had a Vercel account ready to use. Somewhere in the background, an old AWS setup was still involved.&lt;/p>
&lt;p>The goal sounded simple: publish the blog from GitHub using Vercel and make it accessible through my own domain.&lt;/p>
&lt;p>This time, I asked Codex to help do the work through Computer Use. Instead of following a deployment tutorial and switching between dashboards myself, I let it inspect the browser, configure the deployment, and trace the domain setup. I stayed involved when access or missing context required my input.&lt;/p>
&lt;p>It turned into a useful exercise in both AI-assisted work and remembering how my own website was wired together.&lt;/p>
&lt;h2 id="1-get-computer-use-working">1. Get Computer Use working&lt;/h2>
&lt;p>The first obstacle appeared before deployment even began. Although I was signed in to GitHub, Vercel, and GoDaddy in Chrome, Codex could not initially connect to my browser.&lt;/p>
&lt;p>The Computer Use setting showed:&lt;/p>
&lt;blockquote>
&lt;p>Disabled by your organization or unavailable in your region.&lt;/p>
&lt;/blockquote>
&lt;p>The message alone did not establish the cause. We checked the available setup guidance, but did not conclusively diagnose why the setting was disabled. I subsequently enabled Computer Use and asked Codex to continue.&lt;/p>
&lt;p>Once access was working, Codex could inspect my existing signed-in Chrome tabs and interact with the account dashboards.&lt;/p>
&lt;p>The first lesson: being signed in to a website and giving an assistant access to that browser are separate steps.&lt;/p>
&lt;h2 id="2-inspect-the-existing-hugo-project">2. Inspect the existing Hugo project&lt;/h2>
&lt;p>My Hugo source lived in a private GitHub repository.&lt;/p>
&lt;p>Codex inspected the project and its existing GitHub Actions workflow. That revealed several details that mattered for the new deployment:&lt;/p>
&lt;ul>
&lt;li>The site used Hugo with the Academic theme.&lt;/li>
&lt;li>The theme was included as a Git submodule.&lt;/li>
&lt;li>The existing build pinned a specific Hugo Extended version.&lt;/li>
&lt;li>A custom icon was copied into the theme before building.&lt;/li>
&lt;li>The previous workflow published the generated &lt;code>public&lt;/code> directory to AWS S3.&lt;/li>
&lt;/ul>
&lt;p>Reading the old workflow gave us a starting point for a compatible build. There was no need to combine a hosting migration with a theme or Hugo upgrade.&lt;/p>
&lt;h2 id="3-import-the-repository-into-vercel">3. Import the repository into Vercel&lt;/h2>
&lt;p>In the Vercel dashboard, Codex opened &lt;strong>Add New → Project&lt;/strong>, selected GitHub, and selected my blog repository.&lt;/p>
&lt;p>Vercel already had access to the repository, so it could import the private project without making the source code public.&lt;/p>
&lt;p>The project configuration was:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Setting&lt;/th>
&lt;th>Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Framework preset&lt;/td>
&lt;td>Hugo&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Root directory&lt;/td>
&lt;td>Repository root&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Source branch&lt;/td>
&lt;td>The production branch&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Environment variable&lt;/td>
&lt;td>&lt;code>HUGO_VERSION&lt;/code>, matching the existing build&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Build output&lt;/td>
&lt;td>&lt;code>public&lt;/code> through the Hugo preset&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>We overrode the build command to preserve the existing theme setup. The build initialized the Git submodules, copied my custom icon into the theme, and generated the static site with the intended production URL.&lt;/p>
&lt;p>A simplified example of the Hugo generation step is:&lt;/p>
&lt;pre>&lt;code class="language-sh">hugo --minify --baseURL https://example.com/
&lt;/code>&lt;/pre>
&lt;p>Use your own domain in place of &lt;code>example.com&lt;/code>, and include any preparation steps required by your theme.&lt;/p>
&lt;h2 id="4-deploy-and-check-the-actual-website">4. Deploy and check the actual website&lt;/h2>
&lt;p>The first Vercel deployment succeeded. The blog became available at its Vercel-provided address.&lt;/p>
&lt;p>Codex then opened the deployed site and checked more than the deployment success message. The homepage displayed my biography, profile image, styling, and recent posts. It also opened the &lt;strong>Leadership - Buy In | Meetings&lt;/strong> article and verified that its content loaded.&lt;/p>
&lt;p>At this point, the hosting part was working. The Vercel project was connected to GitHub so future pushes to the production branch could trigger new deployments.&lt;/p>
&lt;h2 id="5-add-the-custom-domain-in-vercel">5. Add the custom domain in Vercel&lt;/h2>
&lt;p>Next, Codex added &lt;code>jacobaloysious.in&lt;/code> to the project&amp;rsquo;s production environment.&lt;/p>
&lt;p>We kept the address without &lt;code>www&lt;/code> as the main domain. Codex also added &lt;code>www.jacobaloysious.in&lt;/code> and configured a &lt;strong>308 permanent redirect&lt;/strong> to &lt;code>jacobaloysious.in&lt;/code>.&lt;/p>
&lt;p>Vercel supplied the DNS records needed for this project:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Type&lt;/th>
&lt;th>Name&lt;/th>
&lt;th>Destination&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>A&lt;/td>
&lt;td>&lt;code>@&lt;/code>&lt;/td>
&lt;td>The IP address provided by Vercel&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CNAME&lt;/td>
&lt;td>&lt;code>www&lt;/code>&lt;/td>
&lt;td>The CNAME target provided by Vercel&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The destinations are intentionally generalized here. Use the exact records displayed in your own Vercel dashboard.&lt;/p>
&lt;h2 id="6-discover-the-old-aws-connection">6. Discover the old AWS connection&lt;/h2>
&lt;p>I expected the next step to be editing DNS in GoDaddy. Instead, GoDaddy showed that the domain&amp;rsquo;s DNS was managed by &lt;strong>Amazon Route 53&lt;/strong>.&lt;/p>
&lt;p>That explained why registering the domain with GoDaddy did not mean GoDaddy controlled its active DNS records.&lt;/p>
&lt;p>The services had different jobs:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Service&lt;/th>
&lt;th>Role in this setup&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>GitHub&lt;/td>
&lt;td>Stored the Hugo source and content&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Vercel&lt;/td>
&lt;td>Built and hosted the website&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>GoDaddy&lt;/td>
&lt;td>Registered the domain; later became its DNS provider&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>AWS&lt;/td>
&lt;td>Previously supplied Route 53 DNS and the S3 deployment destination&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Codex initially suggested updating the existing Route 53 records to preserve anything else using that DNS zone. I clarified that I no longer used the AWS setup and wanted the website routed to Vercel.&lt;/p>
&lt;p>That context mattered: it allowed us to replace the old nameserver delegation instead of requiring access to AWS.&lt;/p>
&lt;h2 id="7-move-dns-management-back-to-godaddy">7. Move DNS management back to GoDaddy&lt;/h2>
&lt;p>Codex selected GoDaddy&amp;rsquo;s default nameservers and completed the confirmation flow, moving DNS management back to GoDaddy.&lt;/p>
&lt;p>Once the GoDaddy DNS records became available, Codex made two changes:&lt;/p>
&lt;ol>
&lt;li>Replaced the parked &lt;code>@&lt;/code> A record with the IP address supplied by Vercel.&lt;/li>
&lt;li>Changed the &lt;code>www&lt;/code> CNAME to the target supplied by Vercel.&lt;/li>
&lt;/ol>
&lt;p>GoDaddy confirmed that both records were saved successfully.&lt;/p>
&lt;p>Changing DNS and retiring the previous hosting setup are separate tasks. A migration should also include a review of old deployment workflows, credentials, and billable resources.&lt;/p>
&lt;h2 id="8-investigate-vercels-invalid-configuration-warning">8. Investigate Vercel&amp;rsquo;s “Invalid Configuration” warning&lt;/h2>
&lt;p>After saving the records, Vercel still showed &lt;strong>Invalid Configuration&lt;/strong> for both domain names.&lt;/p>
&lt;p>It was tempting to assume we had entered something incorrectly. Codex compared the saved GoDaddy records with Vercel&amp;rsquo;s required values and ran public DNS checks.&lt;/p>
&lt;p>The records matched, but the public lookups were still reaching the old AWS nameservers. Those servers refused the queries, and the lookups returned &lt;code>SERVFAIL&lt;/code>.&lt;/p>
&lt;p>So there were two different states:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>In GoDaddy:&lt;/strong> the new nameservers and Vercel records were saved.&lt;/li>
&lt;li>&lt;strong>In the public DNS checks:&lt;/strong> the old AWS delegation was still being used.&lt;/li>
&lt;/ul>
&lt;p>Vercel could not verify the custom domain while those lookups were failing. A browser check also failed to resolve the domain, so we could not yet verify HTTPS on the custom address.&lt;/p>
&lt;p>GoDaddy advised that most DNS updates take effect within an hour, but global propagation can take up to 48 hours. Saving a DNS change is not the same as every resolver seeing it immediately.&lt;/p>
&lt;h2 id="9-verify-the-domain-and-go-live">9. Verify the domain and go live&lt;/h2>
&lt;p>After the DNS changes propagated, the domain was verified and the blog became accessible at &lt;strong>
&lt;a href="https://jacobaloysious.in" target="_blank" rel="noopener">jacobaloysious.in&lt;/a>&lt;/strong>.&lt;/p>
&lt;p>The completed setup:&lt;/p>
&lt;ul>
&lt;li>The Hugo blog was deployed and working on its Vercel address.&lt;/li>
&lt;li>GitHub was connected to Vercel for future deployments.&lt;/li>
&lt;li>The main domain and &lt;code>www&lt;/code> redirect were configured in Vercel.&lt;/li>
&lt;li>GoDaddy had accepted the nameserver change and saved the required records.&lt;/li>
&lt;li>The custom domain was verified and the website was live at &lt;code>jacobaloysious.in&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>The earlier &lt;strong>Invalid Configuration&lt;/strong> warning was an intermediate state during the migration. Once the DNS change took effect, the main goal was complete: readers could use my own domain to access the blog hosted on Vercel.&lt;/p>
&lt;h2 id="what-i-learned-from-using-computer-use">What I learned from using Computer Use&lt;/h2>
&lt;p>The most useful part was watching Codex carry context across several services. It read the old build workflow, applied those details in Vercel, discovered the Route 53 dependency in GoDaddy, and used DNS checks to explain the remaining warning.&lt;/p>
&lt;p>It also exposed where my input was necessary. I had to enable browser access and explain that AWS was no longer part of the intended setup. The assistant could inspect the dashboards, but it could not infer that decision from a nameserver entry alone.&lt;/p>
&lt;p>There were practical limits too. Browser pages needed time to load, some interactions needed another attempt, and a successful save did not guarantee an immediately working domain. Verification remained part of the job.&lt;/p>
&lt;p>For me, this was a concrete example of AI helping with an operational task: taking an existing website, understanding enough of its history to deploy it, and working through the connections between source code, hosting, registration, and DNS.&lt;/p>
&lt;p>My blog is now live at &lt;strong>
&lt;a href="https://jacobaloysious.in" target="_blank" rel="noopener">jacobaloysious.in&lt;/a>&lt;/strong>, with the content in GitHub, hosting on Vercel, and domain registration and DNS managed through GoDaddy. The old AWS nameserver dependency has been replaced.&lt;/p>
&lt;p>For future posts, the publishing flow is simple: update the content in GitHub, push to the production branch, and let Vercel build and deploy the site.&lt;/p></description></item></channel></rss>