There is a very specific kind of regret that hits when you deploy someone else's template, change the name and the profile picture, push it to GitHub, and then look at the result and think — yeah. Tha
blog.ahmershah.dev16 min read
What was the most challenging part of the build for you? (For me, it’s always getting the responsive layout just right!) Kudos on putting yourself out there!
Love to see this! Building from scratch is the absolute best way to truly learn and showcase your skills. It looks great, and you should be super proud of the hustle. Keep it up!
This feels more personal than using a template. A portfolio built from scratch usually shows how someone thinks, not just what they can display. Even if it takes longer, that process teaches a lot about design, structure, and small details.
this resonates so much. building your portfolio from scratch might take longer, but the learning experience and the satisfaction of owning every line of code are completely worth it . great read.
The inclusion of an llms.txt file is an incredibly forward-thinking addition for a personal site. Most portfolio tutorials stop at basic open graph tags, completely ignoring semantic search and structured JSON-LD data. Making your source code and documentation readily scannable for AI crawlers is going to become highly relevant as the landscape transitions away from traditional search engines.
The combination of TurnJS and TiltJS for the certifications section is a unique creative approach. Standard grid galleries for certificates usually end up looking uniform and monotonous. Combining an interactive flipbook mechanic with dynamic 3D hover states requires a lot of meticulous event handling to ensure it remains responsive on touch devices. It definitely breaks up the flat design feeling.
Using Bootstrap exclusively for the layout grid layer while writing pure custom CSS for the typography, variables, and animations is a fantastic middle ground. It prevents the typical utility-class bloat where HTML becomes unreadable, and as you mentioned, it forces you to actually debug the layout model yourself when things break rather than just guessing with random framework helper classes.
Building a custom 3D mesh in Blender and optimizing the Three.js render loop is no joke for a web project. You made an excellent call by implementing a dedicated toggle to disable the 3D scene entirely for older mobile devices. Many developers throw heavy WebGL elements onto their landing pages without considering low-end hardware or initial layout shift, so deferring initialization shows real consideration for user experience.
Your argument about skipping frameworks like React for a single-page portfolio is spot on. The industry has conditioned people to bundle an entire runtime and node_modules just to render a static profile. Sticking to vanilla JavaScript, custom CSS, and selective libraries keeps the footprint clean and matches the exact scope of the project. It is refreshing to see someone defend proper fundamental architecture instead of over-engineering with a virtual DOM where it is not required.
Najim
This is nice, but the speed is too slow. Design is great and looking awesome🙂.