PROJECT / CYCLE web development
Websites and web applications

A good project needs a good loop.

Tell us what you want to make. We’ll sort the task out, agree on a workable scope and take it to a working release.

goodCycle() {
  understand();
  plan();
  build();
  check();
  launch();
  improve();
}
01 / Understand

Start with the job, not the stack.

Sometimes the brief is twenty pages. Sometimes it is two messages and a competitor link. Both are enough to start. First we find what should work, who needs it and what is useful to release first.

badStart() {
  guess();
  chooseStack();
  startCoding();
}
goodStart() {
  ask();
  defineOutcome();
  chooseScope();
}
02 / Plan

Make the work visible before it gets expensive.

Before a large build, we lay out the structure: pages, states, data, integrations and the route to release. Moving a box on a plan is cheaper than rewriting a week of code.

01brief()
02flows()
03screens()
04data()
05release()
03 / Build

A few habits save a lot of time.

01

Reuse the boring parts

Forms, navigation, routing and layout do not need a new invention every Monday.

02

Keep feedback short

We show working pieces early, while changing direction is still cheap.

03

Use the real browser

Responsive behavior, accessibility and failure states are part of the build.

04

Leave room to change

Projects usually change once people can touch them. The structure should survive that.

04 / Check

Build a slice. Open it. Fix what is actually there.

Plans help, but a browser is very good at finding assumptions. We prefer small complete pieces that can be looked at, tested and corrected before the next layer.

shipSlice();
check();
adjust();
continue();
01 · Working sliceOne complete path is more useful than five half-built screens.
02 · Real contentCopy and data change layouts. We introduce them early.
03 · Release checkThe useful question is simple: can a person use this now?
05 / Previous runs

Work has come from more than one place.

The map shows the geography of the client projects selected for this web-development landing. The full portfolio remains in the canonical source; own studio work stays on a separate track.

06 / Services02 / Services

What can we build?

Choose the kind of work you need. The same delivery loop can cover a turnkey web project, a focused content task or development inside an existing system.

Website

Landing pages, company sites, project sites and content-heavy builds.

Web application

Accounts, dashboards, internal tools and project-specific workflows.

WordPress / CMS

New builds, custom behavior, integrations and inherited systems.

Existing project

Repair, extension, migration, cleanup or the next release.

SEO & editorial content

Articles, research-led copy and content prepared for search and publication.

Product content

Service pages, product explanations, interface copy and structured commercial text.

Scripts & presentations

Scripts for videos, talks, presentations and production briefs.

Localization & publishing

Adaptation between audiences, languages and publishing formats.

Frontend

Responsive interfaces, interaction, accessibility and browser behavior.

WordPress / PHP

Themes, plugins, custom logic, integrations and inherited installations.

Backend & integrations

APIs, data flows, internal tools and project-specific business logic.

Infrastructure & release

Hosting, deployment, DNS, production fixes and ongoing technical work.

07 / Exceptions

You can come in before everything is figured out.

if (!specification.exists) defineTogether();
if (legacyProject.exists) inspectFirst();
if (budget.isLimited) reduceScope();
if (release.isLive) keepLearning();
Do I need a finished specification?

No. A clear problem is enough for the first conversation. We can turn it into a workable scope together.

Can you work with an existing project?

Yes. We first inspect what is already there and change only the layer that actually needs work.

Can we start small?

Yes. A smaller first release is often the easiest way to learn what deserves the next round of work.

What happens after launch?

We can hand the project over, keep maintaining it or plan the next iteration with you.

Is this all of your work?

No. This is a focused showcase for website and web-application work, so it intentionally contains only a selected part of our experience. A broader portfolio is available at web.zhovten.games ↗. Games we have worked on or are currently developing are collected at zhovten.games/projects ↗. The fullest professional context is in the team members’ personal profiles: Sam Starling · LinkedIn ↗ and Oksana Dubinetska · LinkedIn ↗.

How is the price calculated?

Rule: the geographic base follows the client’s local cost-of-living floor. We use a public local living-wage/subsistence benchmark, but never below the applicable legal hourly minimum wage.

B(g) = max(L(g), M(g))
R(s,g) = round(B(g) × K(s))
Price = R(s,g) × hours + direct costs

Ukraine, 2026. The statutory subsistence minimum for an able-bodied person is 3,328 UAH/month; the statutory hourly minimum wage is 52 UAH. Therefore the working geographic base is 52 UAH/hour. Source ↗

Washington, DC, 2026. MIT estimates a one-adult living wage of $26.72/hour, above the $17.95 minimum wage, so the base is $26.72/hour. Source ↗

WorkKTypical hoursUkraineWashington, DC
Layout / assembly2.004–12416–1,248 UAH$214–641
Figma → responsive build2.508–241,040–3,120 UAH$534–1,603
Programming / custom logic3.004–40624–6,240 UAH$321–3,206
Turnkey delivery3.258–241,352–4,056 UAH$695–2,084
Deploy / infrastructure2.001–4104–416 UAH$53–214
Writing / editorial work1.751–891–728 UAH$47–374

A very simple constructor-based site for a Ukrainian client can fit roughly 8–11 turnkey hours: about 1,350–1,860 UAH before third-party costs. With prepared copy/assets, keeping such a case around 2,000 UAH is a deliberate pricing target, not an exception.

AI-assisted engineering is priced differently:

Price_AI = B(g) × 2.0 × human review hours
         + actual agent/model/tool cost
         + infrastructure cost

Token/tool spend is passed through from the actual agent run; human time covers specification, orchestration, review and testing. Hosting, domains, paid plugins, SaaS and licenses are also direct costs rather than hidden inside the hourly rate.

08 / Return04 / Contact

Ready when you are.Talk to us.

Send the task in the shape it has today. We’ll work out the next useful step.Open the contact panel and choose the channel that is convenient for you.

RETURNcycle.complete();
return goodCycle();