Libriv Web
The static site that sells the app — zero server, maximum SEO.
- Year
- 2025
- Role
- Solo — design & build
- Stack
- Next.js 16 · React 19 · Tailwind CSS v4 · sharp (build-time) · JSON-LD
- Status
- —
The marketing site is built with the same care as the app it sells: a fully static Next.js export deployable to any CDN, a bilingual SEO blog with original — not translated — articles, and a build-time pipeline that generates every social card and icon from source.
Content as engineering
The blog runs EN and PL in parallel, but the Polish posts are original articles targeting their own keywords — not machine translations. Every page carries hreflang alternates and rich JSON-LD (SoftwareApplication, FAQPage, Article), and the sitemap is generated from the content data so it can never drift out of sync.

Everything generated at build
Open Graph cards and PWA icons are composited at build time with sharp — SVG plus the mascot, flattened to WebP. Fonts are self-hosted from pre-subset files so the build runs fully offline, and a pre-paint inline script restores dark mode with no flash. There is no server to pay for or patch.

One product, two surfaces
Digital Asset Links tie the site and the app together: assetlinks.json pins the app's certificate to the domain, so Android App Links open straight inside the app. Signing in lives in the app itself — the site's job is to turn a visitor into an install and hand them over cleanly. Its warm-paper design system is color-matched to the app's dark UI, so the two read as one product.

- 01Static export · deployable to any CDN
- 02OG cards + PWA icons generated at build (sharp)
- 03Original bilingual blog · hreflang EN / PL / x-default
- 04JSON-LD on every page
- 05Digital Asset Links — SHA-256 cert pins
- 06Flash-free dark mode · pre-paint restore