Building and Deploying Web Projects with Deno and VitePress
Hey everyone! I'm excited to share my experience working with Deno and VitePress on two recent projects. I built a URL shortener with Deno and a portfolio site with VitePress, including challenges faced and lessons learned in modern web development.
The URL Shortener with Deno
Deno is a modern runtime for JavaScript and TypeScript that I used to build a URL shortener. I chose it for several reasons:
- Built-in TypeScript support
- Robust security features
- Developer-friendly tools (Deno FMT and Deno Lint)
- Clean dependency management
I faced some challenges deploying it live, especially with CORS errors, but I eventually figured it out. While I didn't need to deploy it live for the take-home project with a company I was interviewing with at the time, I wanted to challenge myself and learn more about deployment processes. Eventually I was able to deploy it live and it's working great! Check it out at url-shortener-v1.deno.dev.
Portfolio Website with VitePress
For my portfolio website, I wanted something more modern and dynamic than my old HTML template. VitePress proved to be the perfect choice because of its features:
- Clean default UI
- Lightning-fast build times
- Vue.js integration
- Markdown-based content
- Built-in theme customization
Integration Challenges
One of the trickier aspects was integrating the GitHub and GitLab APIs. Here's what I learned:
- Proper environment variable management
- API rate limiting considerations
- Error handling for failed API calls
- Caching strategies for better performance
Key Takeaways
Throughout these projects, I gained valuable insights:
- Understanding modern JavaScript runtimes
- Working with static site generators
- Managing API integrations
- Using AI tools effectively as development aids in troubleshooting
- Importance of proper documentation
What's Next?
I'm continuing to improve my portfolio website over time and plan to add features like:
- Performance optimizations
- Blog integrations
- Podcast episodes
Connect With Me
Feel free to follow my journey on the following platforms:
Let me know if you have any questions about either project!