How I Built My Next.js Developer Portfolio for SEO in Lebanon
A practical look at how I built bilalmalass.com as a Next.js developer portfolio with technical SEO, local search, performance, structured content, and long-term discoverability in mind.
Bilal Malass
Author

A developer portfolio can look great and still fail at one important job:
being found.
When I built bilalmalass.com, I did not want SEO to be something I added after finishing the website.
I wanted discoverability to be part of the product from the beginning.
As a Full-Stack and Next.js Developer based in Lebanon, my goal was to build a portfolio that clearly communicates what I do, demonstrates how I work, and gives search engines enough context to understand the site.
This meant thinking beyond design and frontend development.
I had to consider structure, performance, content, technical SEO, local relevance, and how the website could continue growing over time.
The Goal Was More Than Ranking
The objective was not to fill every page with keywords.
It was to make three things clear:
- Who I am
- What I build
- Where I am available to work
My core positioning is around:
- Full-Stack Development
- Next.js Development
- Web Development
- React and TypeScript
- Website development in Lebanon
- Development opportunities around Minieh and Tripoli
- Remote development work
These topics need to appear naturally across the site rather than being forced into every paragraph.
Good SEO should support the user experience, not damage it.
1. Building SEO Into the Site Structure
The first step was creating a clear website architecture.
Instead of putting everything on one long page, the portfolio separates important information into dedicated sections and pages.
The site includes areas for:
- Projects
- Services
- Experience
- About
- Blog content
- Contact information
This gives both visitors and search engines a clearer understanding of the website.
For example, someone looking at a project can learn about the technologies used, understand the problem being solved, and then move naturally to related services or other projects.
That structure also creates more opportunities for internal linking.
2. Using Semantic and Clear Page Content
Search engines need context.
A visually impressive interface alone does not explain what a developer actually does.
Each important page therefore needs meaningful text describing its purpose.
For example, a services page should not simply display:
Next.js
It should explain what the service involves and who it is for.
The same applies to projects.
Instead of showing only screenshots, I use project descriptions to explain:
- What the project is
- What problem it solves
- What technologies were used
- What I was responsible for
- How the solution was built
This improves the portfolio for recruiters and potential clients while also creating more useful content for search engines.
3. Targeting Relevant Search Intent
One of my main goals is to become more discoverable for searches related to my actual work.
That includes searches around terms such as:
- Next.js developer in Lebanon
- Full-Stack developer in Lebanon
- Web developer in Tripoli
- Next.js developer in Tripoli
- Website developer in Lebanon
But simply repeating these phrases would not be a good SEO strategy.
Instead, I am building pages and content that genuinely support those topics.
For example, a detailed article about building a production-ready Next.js application gives more context around my expertise than adding “Next.js Developer Lebanon” ten times to a homepage.
The goal is topical relevance, not keyword stuffing.
4. Local SEO Without Making the Site Feel Local-Only
I want to be discoverable in Lebanon while still being available for remote and international opportunities.
That creates an interesting SEO balance.
The website should communicate that I am based in Lebanon and relevant to areas such as Minieh and Tripoli, but it should not make visitors think I only work with local clients.
That is why location information is used where it makes sense:
- About content
- Professional positioning
- Metadata
- Contact information
- Relevant blog content
- Structured data where appropriate
This provides local context without limiting the broader positioning of the portfolio.
5. Technical SEO Matters Too
Content alone is not enough.
Because the portfolio is built with Next.js, I also focused on the technical foundation of the site.
Some of the areas I considered include:
- Search-friendly URLs
- Page titles and meta descriptions
- Canonical URLs
- Sitemap generation
- Robots configuration
- Proper heading hierarchy
- Image optimization
- Responsive layouts
- Fast loading times
- Internal linking
- Structured data where relevant
- Accessible page structure
These details may not be visible to most visitors, but they help create a stronger foundation for search engines and users.
6. Performance Is Part of SEO
Performance is not only a technical metric.
It directly affects the user experience.
A developer portfolio should feel fast, especially when it is supposed to demonstrate development quality.
I try to keep the site lightweight by paying attention to:
- Image sizes
- Responsive images
- Unnecessary JavaScript
- Font loading
- Layout stability
- Mobile performance
- Component efficiency
The objective is simple:
the portfolio should feel as polished technically as it looks visually.
7. The Blog Is Part of the SEO Strategy
The portfolio itself can only target a limited number of topics naturally.
That is where the blog becomes important.
Instead of creating random content just to publish more pages, I want to use the blog to write about areas connected to the work I actually do.
Topics may include:
- Next.js development
- Full-Stack architecture
- Technical SEO
- Website performance
- React development
- Development case studies
- Lessons from real projects
This allows the website to gradually build more depth around the areas I want to be known for.
For example, this article is not only about SEO.
It also demonstrates how I think about product development beyond writing code.
8. Building a Custom CMS
The portfolio also includes a custom CMS.
That allows me to manage:
- Projects
- Blog posts
- Skills
- Services
- CV content
- Media
- Website content
For SEO, this is especially useful because I can continue publishing and updating content without changing the application manually every time.
It turns the portfolio into something that can keep evolving rather than remaining a static website.
9. Measuring What Actually Works
SEO is not finished when a website is published.
The next stage is measurement.
I want to understand:
- Which search queries generate impressions
- Which pages appear in search
- Which pages receive clicks
- Which topics gain visibility
- Which keywords are improving
- Where users enter the website
- Which pages need stronger content
That data can then guide future improvements.
Instead of guessing what content I should publish, I can gradually make decisions based on actual search behavior.
SEO Is an Ongoing Process
One of the biggest lessons from building my portfolio is that SEO is not a single task.
It is a combination of:
development + structure + content + performance + iteration.
I do not expect a new portfolio to immediately rank for every competitive keyword.
The objective is to build the right foundation and continue improving it over time.
As more projects, case studies, and technical articles are added, the website should become a stronger representation of both my work and my expertise.
Final Thoughts
I built bilalmalass.com to be more than a place where I list technologies.
I wanted the website itself to demonstrate how I approach building digital products.
That includes the frontend experience, the systems behind it, the CMS, performance, maintainability, and SEO.
And for me, that is one of the most valuable things a developer portfolio can do:
show how you think, not just what you know.
You can explore the portfolio here:
If you are looking for a Full-Stack or Next.js Developer in Lebanon, or you are working on a remote project that could benefit from this kind of approach, feel free to get in touch.