Creating this blog wasn't just a coding project — it was a meaningful step in documenting my transition from philosophical studies to the world of software development. I built Nikolas Dev Journey to serve as both a personal journal and a professional platform, showcasing what I learn as I grow as a self-taught developer. In this first post, I'll walk you through how I structured, styled, and deployed this blog using modern technologies.
Technologies I Used
- Next.js — React-based framework with powerful routing and SSR.
- React — Component-based JS library for building UIs.
- Node.js — Backend JS runtime used via Next.js.
- Vercel — CI/CD and deployment.
- Git & GitHub — Version control & collaboration.
Folder Structure
Styling & Design
I kept the design clean, minimal, and readable — optimized for both desktop and mobile:
- A hero section on the homepage introduces the blog and links to the latest post.
- Each page follows a similar layout with
Navbar
, content, andFooter
. - Fonts are loaded via next/font, using Inter.
- Backgrounds, spacing, and alignment are all responsive and visually balanced.
CSS Styling Example
Here's some of the key CSS that makes the blog look great:
Deployment to Vercel
Deploying with Vercel took just a few minutes:
- Connected my GitHub repo to Vercel.
- Each commit triggers a build & deployment.
- Custom domain set up: nikolasdevjourney.com
Connecting Frontend and Backend
After successfully deploying the blog to Vercel, I integrated a simple backend using Next.js API routes. Instead of hardcoding posts directly into the frontend, I created a /app/api/blog/route.js
file that returns blog post data in JSON format.
API Route Example
Here's how I structured my blog API route:
Frontend Data Fetching
And here's how I fetch the data on the frontend:
This approach keeps the code organized, flexible, and easy to scale when I start adding more posts in the future. Since everything is still within the same Next.js app, deployment to Vercel remains seamless.
Lessons Learned
- Be careful with case sensitivity in file names (Vercel is Linux-based).
- Reusable components like Navbar/Footer save a lot of time and keep code consistent.
- Planning routes and layout early made the site easier to scale.
- Starting simple and iterating is more productive than chasing perfection.
What's Next?
This is just the beginning of the journey. I'll be writing about:
- What I'm learning in Python & JavaScript
- Web development tips and tutorials
- Project breakdowns and reflections
"From metaphysics to machine code — it's been a surprising journey, but I'm just getting started."
💬 Comments & Discussion
Share your thoughts, ask questions, or discuss this post. Comments are powered by GitHub Discussions.
💡 Tip: You need a GitHub account to comment. This helps reduce spam and keeps discussions high-quality.