Once the work is done and tested, the final step is to deploy it to production. Deployment may sound like the final stage of the development process, but in reality, it involves more decisions and configurations than you might think. This article documents the complete process from local development to production, as well as how to maintain the system after deployment.
ship skill: The Standard Process for Packaging and Deployment
In this project, before pushing any changes to production, we use the `ship skill` to perform a comprehensive pre-deployment check.
The `ship skill` performs the following tasks:
Checking `git status` to confirm which files have been modified
Running a build to ensure there are no compilation errors
Checking for files that should not be committed (e.g., .env, temporary files)
Generating a structured commit message
Creating a Pull Request and including a change summary
The biggest benefit of this workflow is consistency. Whether it’s a major feature or a minor fix, every commit follows the same set of checks. You won’t skip the build check just because “it’s only a small change,” only to discover it breaks after deployment.
Another benefit is the quality of commit messages. Since Ship Skill automatically analyzes the changes, the generated messages are more precise than handwritten ones. When reviewing the Git log later, you can clearly see what was changed and why for each entry.
land-and-deploy: Deployment Execution
After a PR is merged, use the land-and-deploy skill to execute the deployment. This skill coordinates the entire process from merge to production:
Verify that all checks for the PR have passed
Merge the PR into the main branch
Trigger Vercel’s automated deployment
Wait for the deployment to complete
Verify that the production version is functioning properly
The entire process is automated, but each step has clear verification points. If a step fails, the process stops rather than continuing.
Vercel Platform: Automated Deployment Infrastructure
This project is deployed on Vercel. The reason for choosing it is straightforward—it offers native support for Next.js, requiring no additional configuration.
Key configurations:
Automatic Deployment: Every time a commit is pushed to the main branch, Vercel automatically triggers a deployment. No manual intervention or additional CI/CD pipeline is required.
Preview Deployments: Each pull request automatically generates a preview URL, allowing you to preview the live results before merging. This is particularly useful for visual checks on multilingual sites
ISR (Incremental Static Regeneration): Pages are generated as static HTML on the first request and regenerated periodically thereafter. For this site, article pages are set to a 60-second revalidation interval, while series pages are set to 3,600 seconds. This provides the speed of static pages while automatically reflecting content updates
Environment Variable Management: Sensitive information such as database connection strings and API keys is managed through Vercel’s environment variable system. Different values can be configured for different environments (development, preview, production).
Post-Launch Maintenance
Launching the website is not the end, but the beginning of a new phase. Here are several ongoing maintenance tasks:
Content Updates: When articles are added or modified via the admin dashboard, ISR automatically handles cache updates without requiring a redeployment
Performance Monitoring: Vercel’s built-in Analytics tracks Core Web Vitals, helping you identify which pages are loading slowly and require optimization
Error Tracking: Monitor server-side errors using Vercel’s Function Logs to detect issues early
Dependency Updates: Regularly update npm packages to prevent the accumulation of security vulnerabilities
The Complete Cycle
Looking back at this entire series—from ideation, design, architecture, implementation, development acceleration, quality validation, to deployment and operations—it forms a complete software development cycle.
There are corresponding AI tools to assist with every stage, but tools are always a means to an end, not the end itself. Brainstorming tools help you refine your ideas, but the decision of what to do is still yours. Serena helps you understand code structure, but you make the technical decisions. Playwright helps you automate testing, but you define the testing strategy.
AI tools do not change “who makes the decisions,” but rather “the efficiency and quality of decision-making.” They eliminate a significant amount of mechanical work, allowing you to focus your energy on areas that truly require judgment.
This website itself is a product of this approach—built from scratch by a single person using an AI toolchain to complete the entire process of design, development, testing, and deployment. It’s not perfect, but it runs, it works, and it can be continuously iterated upon. This is likely the truest form of AI-Driven Development.