
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
A beautiful site with no enquiries is 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.
Structure
What answers the visitor's questions, and in what order
Form
Design that strengthens the answer instead of decorating it
Data
After launch we look at the numbers and fix by them
What I
do
End to end: research, wireframes, design, code, launch and support. One person accountable the whole way.
Event website
from $2,400 · 7–14 daysA 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.
Form with confirmation and an exportable attendee list
Schedule, speakers, venue and how to get there
Live before the date, ahead of the general queue
An AI sales team
that never sleeps
An AI model answers your customers in messengers and on your website within seconds — day, night and weekends. It understands questions asked in plain words, asks for the missing details, books and creates the deal on its own, and sends you a customer who is ready to buy.
- 24/7
- Replies in the evening, at night and on weekends — when your team is offline
- Seconds
- The answer arrives before the customer goes to whoever replied first
- CRM
- Deal, calendar booking and reminder — without manual data entry
- Your server
- Can run on your side: conversations and the customer base stay with you
Packages: from $2,000 · from $4,000 · from $9,900
- 01Process review2–3 days
- 02Build and knowledge base1–2 weeks
- 03Channels and CRM3–5 days
- 04Launch and tuningfirst month
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.
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 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.
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.
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.
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.
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.
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.
KONTURElectrical installation
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.
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
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.
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.
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.
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.
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.
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.
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.
What was built
- →Two languages on one domain, nine service pages built around real search queries
- →An open estimate calculator — the result travels with the enquiry
- →An enquiry arrives by email in seconds, with a Telegram alert that carries no personal data
- →Daily backups, each verified by restoring from it
What you don't see
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 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 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.
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.
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.
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.
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- Goal
- One measurable outcome
- Audience
- Who, and at what moment
- Constraints
- Dates, access, stack
- Done when
- A criterion you can check
Structure
Wireframes, copy, the logic behind the enquiry form. Agreed before design — changes here are free.
2–4 days- Screens
- Order and transitions
- Blocks
- Which question each one answers
- States
- Empty, loading, error
- Check
- The whole path walks end to end
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- Concept
- First screen before anything else
- Layouts
- Every page and every state
- Responsive
- Phone, tablet, desktop
- Motion
- A prototype you can click
Build
Code, motion, responsive layout, 90+ in PageSpeed, CRM and analytics wired up.
5–14 days- Interface
- Components and states
- Data
- Forms, integrations, CRM
- Speed
- 90+ in PageSpeed
- Checks
- Types, accessibility, user paths
Launch
Domain, hosting, analytics, handover notes. A month of support included.
1–2 days- 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.
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.
| Agency | Me | |
|---|---|---|
| Who owns the result | An account manager | Me, directly |
| When you learn the price | After two meetings | Before we start, calculator on the page |
| Landing page price | $4,000–9,000 | from $1,800 |
| Landing page timeline | 1.5–3 months | 10–14 days |
| Design revisions | Per the contract | Until you're happy |
| Who writes the code | A subcontractor's subcontractor | I do |
| After launch | A new contract | A month of support included |
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.
Accurate to about ±20%. The exact figure comes after a 30-minute brief — free, and it commits you to nothing.
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.
01How much does a website cost, and what drives the price?
Starting prices: a landing page from $1,800 (live in 10–14 days), an event website from $2,400, a redesign from $2,800, a corporate website from $4,800, a promo or 3D site from $6,000, an online store from $7,600, ongoing support from $300/mo, Yandex Direct ad management from $300/mo plus setup $450 one-time, excluding the ad budget. The total depends on the project type, the depth of design and the integrations; the calculator on this page gives a ±20% range. I name the exact figure after a free half-hour brief, and 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. I work as a registered sole proprietor in Russia, under a contract with proper closing documents. 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.
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.
- 01I reply within the day, usually sooner
- 02A 30-minute call: questions and a review
- 03You keep the estimate and the plan — whoever you build with
Order today — a landing page is ready by 26 November