oxtren.com: a bilingual Next.js website
Our own bilingual website, exported to static HTML and served by nginx. There is no Node in production: no application runs at request time, the whole site is cached at the edge, and it stays up while the API is down for a deploy.
Walk through the site
The way a visitor would: from the first screen to an enquiry. Desktop and phone at the same time. Screens show the Lithuanian version.
- Home
The first screen is a scene
The home page opens with a moon scene that moves with the page as you scroll. It is not one large video file but a frame sequence drawn on a canvas.
- Home
An opening offer with a countdown
At the top, an opening offer bar with a countdown. Offer prices across the site come from a single source, so when the offer ends, regular prices return everywhere at once.
- Services
Every service on one page
Six services, from websites to maintenance. Each shows a “from” price, what is included and a link to a detailed page, so you can compare without leaving the page.
- Website development
What it is, cost, how to start
The first screen answers three questions: what it is, what it costs and how to start. Then: when to get in touch, packages, scope, what you get, an example, how we work and FAQ.
- Website development
Packages that are easy to compare
Three packages with the offer price; the most popular is marked with a badge on the card's edge. Each card shows ten items, and “Show more” opens the rest on every card at once, so the rows stay aligned.
- Website development
What every plan includes
Below the cards: what every plan includes, among it a 6-month warranty and domains and accounts in your name. And a promise about price: the final price is confirmed in writing before the project starts.
- Contact
An enquiry that knows what you want
Press “Get a quote” on a package and the form arrives with that service already selected, for example “Business website”. No need to choose again. We reply within one business day.
About the project
- Client
- Oxtren Labs · our own site
- Industry
- Technology / B2B
- Our role
- Strategy, design, engineering, infrastructure
- Year
- 2026
- Address
- oxtren.com · oxtren.lt
Stack
- Next.js
- React
- TypeScript
- Tailwind CSS
- GSAP
- nginx
- Coolify
- Cloudflare
The problem
The company had products, a portal and client work, but nowhere that explained all of it in one place. It needed a site that was fast, bilingual and dependent on no heavy system.
The customer portal and the API already lived in a Laravel application. We kept the marketing site separate, because that is where the SEO and content arguments actually apply.
The solution
Next.js with a static export: every page in both languages is generated at build time and served by nginx. The domain decides the language – oxtren.lt Lithuanian, oxtren.com English – never a browser guess, and every page carries hreflang and canonical tags.
What has to change together lives in one place. Offer prices across the site come from a single source, so when an offer ends, regular prices return everywhere.
The result
The site redeploys with no environment variables and no server to look after. The same page reaches Vilnius and Sydney from Cloudflare's edge.
Site and API do not depend on each other: while the API is being deployed, the site stays up.
Measured
- 0Application servers at request time
- 2Languages
What we did
- Strategy, design, engineering and infrastructure in one team
- Two languages on two domains: oxtren.lt Lithuanian, oxtren.com English
- hreflang and canonical tags on every page
- Static Next.js export served by nginx, no Node in production
- A first-screen moon scene drawn as a frame sequence on a canvas, not a video file
- Offer prices from a single source, restored automatically when an offer ends
- Service pages with comparable packages and a contact form that arrives with the service already selected
- Deployed with Coolify, served from Cloudflare's edge
Frequently asked
Why is oxtren.com a static site?
A marketing site does not need an application running on every request. Pages are generated at build time and served by nginx, with no Node in production, so the site stays up while the API is down for a deploy.
How does the site choose the language?
By domain: oxtren.lt is Lithuanian, oxtren.com is English. We never guess from the browser, and every page carries hreflang and canonical tags.
How much does a custom Next.js website cost, and how long does it take?
From €2,990, usually 4–8 weeks. The exact price and timeline go into a written proposal before work starts.From €2,392, usually 4–8 weeks. The exact price and timeline go into a written proposal before work starts. −20%
Further reading
- Websites11 min read
How much does a website cost to build in 2026?
What a website costs to build in 2026: the factors behind the price, Oxtren packages from €990, timelines, running costs and how to get an exact quote.Read - Websites9 min read
How much does website maintenance cost, and what does it cover?
What website maintenance costs: what updates, backups and monitoring cover, what drives the price, Oxtren plans from €149/mo and how to choose a plan.Read - Websites11 min read
How to choose a web design agency: 8 criteria
How to choose a web design agency: 8 criteria, the questions to ask before you sign, red flags, and how to compare several proposals side by side.Read
Find out what's stopping
your sales.
We'll review your purchase journey for free and show you the biggest conversion blockers.
What do you need?
We reply within 1 business day.








