gora.
web development · remote · worldwide

Freelance Full-Stack Web Developer

I design, build and deploy production websites and web applications for businesses worldwide: Next.js front ends, NestJS and PostgreSQL back ends, multilingual sites, catalogues and admin panels. One developer from the first message to deployment and support.

  • 1,958 URLs in the sitemaps of a property catalogue
  • 10,000+ parts in a Lithuanian e-commerce catalogue
  • A 50-page admin panel with real-time updates

Typical projects, each one backed by something I have shipped. The stack is chosen to fit the task, not the other way round.

  • Business and brand websites

    Multi-page editorial sites for restaurants, studios and small companies, server-rendered in Next.js so Google and AI assistants can read every page, with structured data built in.

  • Multilingual websites

    Separate URLs per language, hreflang, localized metadata and typography that handles both Latin and Cyrillic scripts. Jusmila serves Lithuanian, Russian and English; Aperwind serves Russian and English.

  • E-commerce and catalogues

    Product and listing catalogues with search, admin panels and imports from external sources: 10,000+ motorcycle parts for Jusmila, a daily-synced property catalogue for Aperwind.

  • Web applications and admin panels

    Operator dashboards, order queues, reports and role-based access. The delivery platform I built has a 50-page admin panel and real-time updates over Socket.IO.

  • Back ends and APIs

    NestJS and PostgreSQL services with Redis where it earns its place: REST and WebSocket APIs, background jobs, audit trails, multi-tenant data models.

  • Integrations

    Messengers (Telegram, WhatsApp Business API), payment providers, external data feeds and existing internal systems, connected through their APIs and webhooks.

  • Performance and technical SEO

    Core Web Vitals, structured data, sitemaps, canonicals and crawlable server-side rendering built in from the start rather than bolted on afterwards.

  • Deployment and maintenance

    Docker, GitHub Actions, nginx with Let's Encrypt, systemd. Aperwind deploys on a push to main: build, restart and a smoke request that stops the release if it fails.

Three production projects with their numbers. Each links to the full case study.

Jusmila — motorcycle parts e-commerce, Lithuania

Catalogue and storefront for motorcycle, ATV and moped parts, with a local warehouse in Šakiai.

What was done
A Turborepo monorepo with three apps: a Next.js storefront, a NestJS API and a Vite + React admin. Catalogue imports from several sources, real-time stock and order status between admin and storefront, session replay for debugging customer issues.
Problem solved
Keep a large parts catalogue current from multiple sources and let warehouse staff see orders and stock live, in three languages.
Technology
  • Next.js 14 + next-intl
  • NestJS 10
  • PostgreSQL 16
  • Redis
  • Socket.IO
  • Vite + React
In numbers
  • 10,000+ parts in the catalogue
  • Lithuanian, Russian and English storefront
  • Real-time sync through Socket.IO with a Redis adapter

Read the case study →

Aperwind — Thailand property catalogue

Public catalogue of new-build property in Phuket, Bangkok, Samui and Pattaya, in two languages (aperwind.com).

What was done
A public Next.js 15 site, an admin panel with its own analytics, and a Python pipeline that reads the supplier's spreadsheet every morning and applies the changes to PostgreSQL in a single transaction. The sync stops at safety thresholds and waits for human approval.
Problem solved
The data source belongs to someone else and changes without warning, so the catalogue must update daily without losing a single indexed URL.
Technology
  • Next.js 15
  • React 19
  • TypeScript
  • PostgreSQL 16
  • Python 3
  • Docker
  • nginx
In numbers
  • 1,958 URLs across four sitemaps (979 pages in two locales)
  • Seven production dependencies and 397 tests
  • Sync halts if more than 25% of listings change, a price jumps over 30%, or more than 5% of rows go missing

Read the case study →

Last-mile delivery platform — Miami

Multi-tenant delivery platform with a Next.js web storefront and a 50-page admin panel (client under NDA).

What was done
A Next.js 14 storefront with an ISR-cached catalogue and three locales, a separate Vite SPA admin panel with fifty pages and role-based access across four roles, and a NestJS API that pushes real-time order and driver events over Socket.IO. Everything runs in one Docker Compose deployment behind nginx.
Problem solved
Give operators a dense working surface and customers a fast storefront from one codebase, without coupling the two.
Technology
  • Next.js 14
  • Vite 6 + React 18
  • NestJS 10
  • PostgreSQL 16
  • Redis 7
  • Socket.IO
  • Docker Compose
In numbers
  • 50-page admin panel with RBAC across four roles
  • Storefront with ISR catalogue caching and three locales
  • 11 apps and two shared packages in one Turborepo monorepo

Read the case study →

Front end
Next.js 15 (App Router) · React 19 · TypeScript · Tailwind CSS v4 · Vite
Back end
NestJS · Node.js · TypeORM · PostgreSQL 16 · Redis · Socket.IO
Delivery
Docker · GitHub Actions · nginx + Let's Encrypt · Cloudflare · systemd
Search and quality
Core Web Vitals · JSON-LD / schema.org · hreflang · XML sitemaps

Four steps, no managers between you and the person writing the code.

  1. 01 · First message

    Write to me on Telegram. In your own words, even if you don't know the technical terms. I care more about understanding what you want to build than what you call it.

  2. 02 · Reading between the lines

    Within a day or two I understand the task and give you an estimate of timeline and budget. If I see it isn't my case — I say so right away, no hedging.

  3. 03 · Lock-in

    Price and timeline — in writing. 50% upfront. After that things change only by mutual agreement, and rarely.

  4. 04 · Work

    I show interim results at my own pace. At the end — handover with documentation and access. First month of support is included by default.

  • You talk directly to the developer who writes the code. No account managers, no agency layer.
  • One person covers architecture, back end, front end and deployment, so nothing is lost between handoffs.
  • Production experience: the sites above are live and maintained, not demos.
  • I work with existing systems as well as new builds: my local SEO project was done on the client's existing site with no redesign.
  • Code goes into your GitHub from day one, with documentation and credentials in your hands. No lock-in to me.
  • Working remotely with international clients in English and Russian.

I work remotely and take projects from anywhere. Day-to-day communication happens on Telegram or email in English or Russian, with video calls on request.

Time zones are handled with a fixed overlap window plus asynchronous work: on the Miami delivery platform the daily overlap with US business hours is 9–11am EST, and outside it I answer on Telegram or email within 12 hours. Payment in USD by Wise or bank wire.

I do not publish a fixed price list for custom work, because two sites that look alike can differ several times over in effort. What moves the cost: the number of page types and templates, how many languages, where the content comes from, an admin panel, integrations (payments, messengers, external data) and real-time features.

After your first message I send a written estimate of timeline and budget, usually within a day or two. If the task is not a good fit, I say so in the first reply. Once agreed, price and timeline are fixed in writing with 50% upfront.

How much does a website cost?
It depends on scope, so I quote per project rather than from a price list. The main drivers are the number of page types, languages, an admin panel, integrations and real-time features. Send a short description on Telegram and I reply with a written estimate of timeline and budget, usually within a day or two.
How long does it take to build a website?
As a guide, the same ranges I give on the home page: a landing page takes one to two weeks, a corporate site or internal tool three to five weeks, and a multi-tenant platform three months and up. The exact timeline is fixed in writing before work starts.
Do you work with international clients, and in which languages?
Yes. I work remotely with clients in different countries and communicate in English and Russian. For multilingual sites I set up each language on its own URLs with hreflang.
Can you build a multilingual website?
Yes. Each language gets its own URL, localized metadata and hreflang links, so search engines show the right version to each visitor. Jusmila runs in Lithuanian, Russian and English; Aperwind in Russian and English.
Can you improve or extend an existing website?
Yes. I regularly work with existing systems: an SEO project for a Vilnius auto service was done on the client's own site without a redesign, and I plug into existing NestJS or FastAPI back ends instead of rewriting them.
Can the site take payments?
Yes. I integrate the payment provider that fits your market and legal setup. That can be a card processor such as Stripe or a local acquirer such as Paysera in Lithuania; the contract and verification with the provider stay on your side. I agree the integration scope before quoting.
Who owns the code and where is the site hosted?
You do. The code lives in your GitHub repository from day one, with documentation in the README and credentials with you. I usually deploy to a VPS with Docker, nginx and Let's Encrypt, or to your own infrastructure.
What happens after launch?
The first month of support is included: bug fixes, small content edits and log monitoring. After that it is hourly or a monthly retainer. Security patches, dependency updates and incident response can be covered under a separate agreement.

Describe the task in your own words. I respond within 24 hours, usually the same day on weekdays.

Elsewhere: GitHub·Telegram channel·Reddit·X