The problem to solve
Jeelwork needed to present artisan services clearly, especially on a phone. The site had to make the offer understandable quickly, show enough detail to create trust and provide a simple path to contact.
There was also a discoverability problem. A single visual landing page would not give search engines much context about the services, the project or the people behind it. The content and the route structure needed to support each other.
- Make services understandable without a meeting
- Keep contact visible on small screens
- Give search engines stable pages
Why Next.js fit the project
Next.js gave me a straightforward way to combine reusable React components with pages that could be generated ahead of time. Most of the content was stable, so I did not need a client-heavy data layer just to render the first view.
TypeScript helped keep the project data consistent across cards, detail sections and navigation. Tailwind CSS kept layout decisions close to the component while still making responsive behavior explicit.
- Use static generation for stable content
- Keep the client-side footprint small
- Share typed project and content data
The decisions that affected SEO
I treated headings and copy as part of the interface rather than metadata added at the end. Each page has a clear subject, descriptive links and a useful title. Project pages connect the visual result to the problem solved, which is more valuable than a gallery with no explanation.
The route structure also matters. Stable project URLs, canonical metadata and internal links make the site easier to crawl and easier for a visitor to navigate from a project to related technical notes.
- Use descriptive headings and links
- Connect project proof to relevant content
- Keep route and metadata values stable
Performance is a content decision
The fastest page is not created by optimizing one number in isolation. I reviewed image dimensions, loading behavior, unnecessary browser work and the amount of content shown before interaction. A focused page with correctly sized media often feels better than a page full of effects.
I also tested the routes after the production build. Development mode can hide costs through hot reload behavior and different caching, so the final check has to use the artifact that will actually be deployed.
- Optimize images for their rendered size
- Avoid client components without an interaction
- Test the production output
What I would improve next
SEO is not a launch checkbox. I would keep expanding the case studies with measurable outcomes, add more links between related services and projects, and review search data once the pages have enough impressions.
The most useful lesson from Jeelwork is that technical choices and content choices are connected. Static generation, accessible structure and clear copy all support the same goal: helping the right person understand the work and take the next step.