YachtShop is a delivery order website for a yacht equipment store in Pärnu, Estonia with over 2,000 products from the world’s leading manufacturers and branded cable crimping service
- Metadata: added all required meta fields using
Next.js metadata API
: title template, description, icons, themeColor, manifest, viewport, alternates (i18n), category, and basic fields (generator, applicationName, referrer, keywords, authors, colorScheme, creator, publisher) - Social: implemented
OpenGraph
and Twitter metadata withImageResponse API
(considering i18n) - Robots:
robots.txt
,static sitemap
,dynamic sitemap
(considering i18n) - Tools: integrated
Google Search Console
Deployed self-hosted Matomo Analytics
on own server and configured all necessary tracking events in the app
- Ngnix: enabled
HTTP/2
,gzip compression
, andstatic file caching support
. - Assets: applied
Next.js <Image/> component
andnext-gen .webp image format
for image optimization, Next.js also optimizes fonts - Bundles: Next.js splits large bundles into smaller chunks to reduce unused code on the page and diminishes resources blocking input
- Components: refactored to move maximum content rendering to the server side to leverage maximum benefits of
Next.js server components
, as well as maximize usage ofSSG for in build time generation
- Caching: integrated
Redis
for caching the central recursive request with heavy computations
Refactored custom internationalization
using the next-international library
with full typing support for better scalability and configurability of the project, as well as to enable internationalization in SEO
![](https://private-user-images.githubusercontent.com/117864556/278823516-4f6f598f-bad2-4dee-94f3-99f50cb2b389.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODU5MDYsIm5iZiI6MTcyMjI4NTYwNiwicGF0aCI6Ii8xMTc4NjQ1NTYvMjc4ODIzNTE2LTRmNmY1OThmLWJhZDItNGRlZS05NGYzLTk5ZjUwY2IyYjM4OS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyOVQyMDQwMDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xMjMyY2Q4ODJjMzc4MTBkN2NjYzZhZGY2OWUyNTAzYWQ3NTIxMWQzMzEzYTY0MTRkNzA0OWZjZDZmMDhhYzQ4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.TOpnqrmmjyXxODKg3t8YStBSQzul5cR9_KitsSpmUqA)