I build websites that bring enquiries

Without agency rates or a six-month wait. I build it myself, show the work as it goes, and quote before we start.

  • Price before we start
  • Landing page in 10–14 days
  • Work under contract
  • A month of support included
Scroll
Landing pagesEvent websitesCorporate websitesWeb applications3D and motionLanding pagesEvent websitesCorporate websitesWeb applications3D and motion
01 — Meaning decides form

A beautiful sitewith no enquiriesis just a picture.

First we decide who is coming and why. Then what they must see in the first three seconds. Only then do we draw. The reverse order rarely works: you end up with a gallery people admire and leave.

01

Structure

What answers the visitor's questions, and in what order

02

Form

Design that strengthens the answer instead of decorating it

03

Data

After launch we look at the numbers and fix by them

02 — Services

What I
do

End to end: research, wireframes, design, code, launch and support. One person accountable the whole way.

01Landing pagefrom $1,80010–14 days02Event websitefrom $2,4007–14 days03Corporate websitefrom $4,8003–5 weeks04Online storefrom $7,6005–8 weeks05Website redesignfrom $2,8002–4 weeks06Promo & 3Dfrom $6,0003–6 weeks07Tech for your ideaon requestfrom 6 weeks08Support & growthfrom $300/mosubscription

Event website

from $2,400 · 7–14 days

A page for a conference, forum, concert or opening. It has one job: collect registrations before the date arrives. Programme, speakers, venue with a map, a sign-up form with confirmation and an exportable list. The deadline doesn't move, so I take these projects out of the queue and ship in 7–14 days.

Registration

Form with confirmation and an exportable attendee list

Programme

Schedule, speakers, venue and how to get there

Deadline

Live before the date, ahead of the general queue

03 — Work

What's
been built

Not a wall of screenshots but a breakdown: the task, the decision, and the part a client never sees — yet pays for.

Kostya, pora prignatCar import from Korea, Japan, China and the UAE

The project arrived from another contractor: the server had already been breached, the catalogue was duplicating itself, sold cars stayed on display. Close the holes and fix the data first, sell second.

38,459
duplicate cards removed from the catalogue
34 KB
home page: it opens in a second even on a weak connection
8 attempts
at delivery — an enquiry survives Telegram going down

What was built

  • A catalogue filtered by country, budget and delivery time
  • A step-by-step «How it works» section, from auction to registration
  • Guarantees, closed deals and reviews as their own sections — this is what people read before getting in touch
  • A three-field request form instead of a questionnaire

What you don't see

Anyone can draw a good-looking screen. The difference shows where clients never look: page weight, what the form does when something fails, what happens under a rush.

The site arrived already breached

The first thing I found was a server compromised through a known hole in the site engine. I updated the engine to the version that closes it and moved the build onto a supported runtime — the old one had stopped receiving security updates. I also removed a line that printed the database password into the server log: anyone with access to the logs had access to the database.

Enquiries arrive even when something is down

The server sits in Russia and cannot reach Telegram directly. Any hiccup used to mean the enquiry simply stayed in the database and nobody found out. Now there is a queue: the site files a job, the bot collects it itself and confirms delivery. If the bot dies halfway, the job returns to the queue after a minute — eight attempts in all, with growing pauses. And if no manager is active at all, the enquiry goes to a backup chat instead of evaporating.

The catalogue can't be brought down by one link

There are around a hundred thousand cars, and the page address could be crafted so the server tried to assemble all of them at once — one request took the site down. Now no more than sixty cards are served at a time, and any malformed value in the address returns an ordinary list instead of an error. Checked by hand: a request for 99,999 cars returns 60, and an attempt to slip a database command through returns a normal listing.

A quarter of the catalogue were ghosts

The source platform serves the same car twice — once under the listing number, once under the vehicle's internal number — and the old importer dutifully created two cards. Every fourth car in the catalogue was duplicated. I removed 38,459 surplus cards, keeping a copy of them first, and closed the cause itself with three checks on write. The catalogue now holds 94,647 cars and 3 duplicates.

Sold cars leave the shop window by themselves

A car sold — and its card hung on the site forever: the sync only reached new listings and never came back to published ones. Customers called about cars that no longer existed, and the conversation opened with an apology. Now every listing is re-checked against the source at least once every three days, and sold stock disappears without anyone touching it.

The videos no longer follow the visitor

YouTube videos were embedded directly: the player loaded with the page and told YouTube about the visit even if nobody intended to watch anything. I replaced them with a still frame and a play button — the player connects only on click. Requests to YouTube before a click went from two to zero, and not a single third-party cookie is set until the video starts. For a site that has to declare in its privacy policy what it collects, that is not a detail.

Open poraprignat.ru
KONTURElectrical installation in Kirov

In a trade where the estimate arrives after the work and doubles on the way, the argument is a fixed price. The site has to calculate it itself, before anyone visits.

259 KB
the whole home page — markup and all the code
2 ms
what the server spends assembling a response
0
calls to third-party servers: no fonts, no counters

What was built

  • An estimate calculator: flat, house or office — priced before a site visit
  • «Prices», «Projects» and a knowledge base, so people read instead of phoning with the same question
  • A survey request form with data-processing consent built in
  • The electrician is named, with his city: in this trade people trust a person, not a company

What you don't see

Anyone can draw a good-looking screen. The difference shows where clients never look: page weight, what the form does when something fails, what happens under a rush.

Half the site was invisible

Blocks appeared as you scrolled — a nice touch, but it rested on a browser mechanism that sometimes simply never fires. I checked and saw it: in that situation not one of the six blocks ever appeared, and everything below the first screen stayed blank forever. I added an independent check on a one-second timer and a separate rule for when scripts are off. Blocks now appear even where the browser sends no signal at all.

An enquiry never disappears in silence

It travels two ways in turn: first to a service bot, and if that doesn't answer within four seconds, straight to Telegram. If neither path works, the visitor sees an honest «it didn't send, please call» rather than a fake «thank you» — and the full text is written to a service log on the server, where it can be recovered by hand. I deliberately tested the broken path: the site returned an error and kept the enquiry instead of pretending all was well.

A bot can't fill the form, a human won't notice the guard

There's an invisible trap field: people never see or touch it, automated scrapers fill in everything and give themselves away. Separately, the server re-checks the name, phone and consent itself — it doesn't take the browser's word. And one address gets no more than five submissions per ten minutes. Verified live: a normal enquiry passes, a bot's is rejected, the sixth in a row is refused.

The page doesn't slide sideways on a phone

On a 375-point screen the home page occupied 542 — you could drag it sideways and part of the text ran off the edge. The culprit was a wide price table: in a narrow layout it pushed the whole page out instead of scrolling inside itself. The header with the name and phone number didn't fit either. Fixed and re-checked across seven pages at four widths, from a very narrow phone to a large monitor — no sideways shift anywhere.

The text reads in both light and dark themes

There's a measurable standard for how far text must differ from its background to stay legible for people with weak sight and in sunlight. I calculated every colour pairing on the site and found four that failed it. The worst was yellow lettering on the call-to-action bar in dark mode: it differed from the background by three times less than the standard and all but vanished. Colours replaced; every pairing now clears the standard with room to spare.

The page doesn't wait for other people's servers

Every page is built in advance and sits on the server as a ready file — a request costs it about two thousandths of a second and 55 MB of memory. Fonts, counters and images are never pulled from third-party sites: if something goes down at Google or an ad network, page speed is unaffected. There's a specific reason for that — on the client's previous site a build once failed for exactly one reason: Google's fonts couldn't be reached.

Open master-electric.online
ovchinnikow.comThis website

The studio's own site: show the method, name prices before the first call, and take enquiries so that none is ever lost.

176 KB
page weight, down from 1947
27
URLs, all responding
0
enquiries lost since the rebuild

What was built

  • Two languages on one domain, eight service pages built around real search queries
  • An open estimate calculator — the result travels with the enquiry
  • Enquiries reach Telegram in seconds, with the sender's address and browser
  • Daily backups, each verified by restoring from it

What you don't see

Anyone can draw a good-looking screen. The difference shows where clients never look: page weight, what the form does when something fails, what happens under a rush.

Enquiries hit the disk before they are sent

They used to go straight to Telegram. One enquiry containing text Telegram refused, and it vanished silently. Nine were lost that way. Now an enquiry is logged to disk first and sent second, and failed attempts retry on a schedule.

The page got eleven times lighter

The hero video weighed 3 MB and carried a 256 kbps audio track — on a site where video is always muted. Re-encoded into two formats without audio: 1947 KB became 176 KB before the video loads.

The browser was caching nothing at all

The cache header arrived doubled: first «do not store», then «keep for a month». Browsers take the first. The site was re-downloaded on every visit, and the only way to notice was to read the response headers.

Prices can no longer drift apart

A price lived as text in four files — the price list and the service pages, in two languages. A mismatch between them costs more trust than a typo. Now they are numbers in one place, and roubles and dollars are derived from them.

The form tells a human from a bot

A field no human can see, plus a timestamp: nobody fills a form in two seconds. Add rate limiting at the server. None of it is visible and none of it gets in the way — but enquiries don't drown in noise.

I'll review your site too

The first call is a free review of your current site: where enquiries get lost and what to fix first. Thirty minutes, and you leave with an estimate and a plan — whoever ends up building it.

04 — Process

Five steps,
no fog

I send progress as it happens — you see what is going on and can step in before it is too late.

01

Brief

Thirty minutes on a call. We go through the goal, the audience, the competition. I come back with an estimate and a plan.

1 day
You get
Brief and acceptance criteria
Goal
One measurable outcome
Audience
Who, and at what moment
Constraints
Dates, access, stack
Done when
A criterion you can check
02

Structure

Wireframes, copy, the logic behind the enquiry form. Agreed before design — changes here are free.

2–4 days
You get
Sitemap and wireframes
Screens
Order and transitions
Blocks
Which question each one answers
States
Empty, loading, error
Check
The whole path walks end to end
03

Design

The first screen as a concept, then the full layout. Motion is shown as a working prototype, not described in words.

5–10 days
You get
Layouts and a live prototype
Concept
First screen before anything else
Layouts
Every page and every state
Responsive
Phone, tablet, desktop
Motion
A prototype you can click
04

Build

Code, motion, responsive layout, 90+ in PageSpeed, CRM and analytics wired up.

5–14 days
You get
A working build on a preview link
Interface
Components and states
Data
Forms, integrations, CRM
Speed
90+ in PageSpeed
Checks
Types, accessibility, user paths
05

Launch

Domain, hosting, analytics, handover notes. A month of support included.

1–2 days
You get
Production and a growth plan
Server
Domain, SSL, environments
Metadata
Titles, OG, structured data
Analytics
Events, goals, reports
Growth
SEO, speed, iterations

Step one takes 30 minutes

A brief call: we go through the task, I come back with an estimate and a plan. The estimate is fixed before we start and doesn't creep. Free, and it commits you to nothing.

05 — Difference

How I differ
from an agency

Nobody sits between you and the person doing the work. That's where the timelines, the price and the freedom to change your mind come from.

Who owns the result
AgencyAn account manager
MeMe, directly
When you learn the price
AgencyAfter two meetings
MeBefore we start, calculator on the page
Landing page price
Agency$4,000–9,000
Mefrom $1,800
Landing page timeline
Agency1.5–3 months
Me10–14 days
Design revisions
AgencyPer the contract
MeUntil you're happy
Who writes the code
AgencyA subcontractor's subcontractor
MeI do
After launch
AgencyA new contract
MeA month of support included
06 — Estimate

See roughly
what it costs

Almost nobody in this market shows a price. I do. Whatever you configure travels with your enquiry, so you won't have to repeat it over email.

Ballpark
$1,800
about 10 working days
Landing page
Custom
Normal schedule
Lock in this estimate →

Accurate to about ±20%. The exact figure comes after a 30-minute brief — free, and it commits you to nothing.

07 — FAQ

Answers before
the first call

If your question isn't here, message me on Telegram — you'll get a straight answer and a next step.

01What does it cost, and what drives the price?

The range is in the calculator above — it prices by project type, depth of design and the integrations you need. The exact figure comes after a half-hour walk-through of your task: guessing before that means being wrong in both directions. The estimate is fixed before we start and doesn't creep as we go.

02How does payment work?

In stages, not everything up front. The estimate is fixed before we start and split along the process: part at the start, the rest as stages are accepted. At any moment you can see what's done, what's accepted and what's paid. The exact split comes with the estimate after the brief.

03You're one person. What if you get ill or disappear?

A fair question, and it's answered by how the work is set up, not by a promise. Domain, hosting and code access are yours from day one — the site can't be held hostage. Every stage ends with an artifact in your hands: brief, wireframes, layouts, a working build. The stack is standard, no homemade magic — any developer can pick it up. Illness shifts the timeline by days, and you hear about it at once, not on delivery day.

04Can I come without a structure or finished copy?

That's how most people arrive. I build the structure during the brief and write the copy too — it's a separate line in the estimate. What I need from you is a clear sense of who your customer is and why you're better than the people next door. The rest I'll pull out with questions.

05What do you build on?

Next.js and TypeScript, Tailwind for markup, hosted on my own server. Not a website builder: the site isn't tied to someone else's subscription, and it can grow and move. If your task is simpler than that, I'll say so and suggest something cheaper.

06Why is it cheaper than an agency — what's the catch?

No catch, just arithmetic. An agency invoice covers an office, a salesperson, an account manager, a project manager and the studio's margin — the work itself is the smaller part of it. Here you pay for the work alone: the same stages, done by one person, with no hand-offs. The honest flip side: I won't take five projects at once, which is why a queue exists.

07Why not a freelancer at a fifth of the price?

No reason at all, if you need five screens you won't mind throwing away in six months. The difference shows up later. At that price it's a template: someone else's theme, a dozen plugins, a builder with a subscription — and changing one section in that costs more than starting over. Here the code is written for your task, the credentials are yours from day one, page weight is measured, and the form has been tested on real enquiries. And there's someone to write to six months on: this is my job, not something I do between shifts.

08What happens after launch?

The first month of support is included: copy edits, small improvements, and I watch the numbers. After that it's optional — a growth subscription or one-off tasks. Domain, hosting and code access are yours from day one.

09Who owns the result?

You do. Layouts, copy, code and every credential are handed over in full. The only thing I keep is the right to show the work in my portfolio — and only if you don't mind.

10What if I don't like it?

You see the first-screen concept before the full layout exists. If the direction is wrong, we change it at that step — that's what it's for. Design revisions aren't capped by a counter: we work until it's good.

08 — Contact

Tell me
about it

The first call is a free review of your task or your current site. You leave with an estimate and a plan — what happens next is up to you.

  1. 01I reply within the day, usually sooner
  2. 02A 30-minute call: questions and a review
  3. 03You keep the estimate and the plan — whoever you build with

Order today — your site is ready by13 October

By sending this you agree to the privacy policy.