jw-dev.pro
Full-cycle developer · working online

Bots, websites, automation. Engineered, not assembled.

I build the whole thing — from the structure to the server and the automated checks. The first look is free; after handover the code and the accounts are yours: no subscription, no lock-in.

7
projects in flight
94–98
speed score on the clinic site
−70%
less page code after moving off Tilda
85
automated checks guard prices and copy
Selected work

Seven projects, and every one's code is open

Every project below is a public repository — you can read the code before you pay.

th.neva.beauty
screenshot
01

th.neva.beauty

Website · Tilda migration
Demo closed

A beauty salon on Koh Samui left Tilda for its own generator — 25 pages rebuilt, 204 prices pulled into a single source, and 85 automated tests that keep a wrong figure out of production.

204 prices85 auto tests−70% page code
PythonJinja2pytestGitHub Actions
Demo closed by the salon owner Case study
vn.neva.beauty
screenshot
02

vn.neva.beauty

Website · Own generator

A beauty centre in Da Nang where 16 pages and 112 prices are assembled in one generator pass from YAML and JSON, with a price parity test and a heading check wired into the deploy.

16 pages112 pricesLighthouse 96
PythonJinja2GitHub Actions
vn.neva.beauty Case study
psy-aleksander
screenshot
03

psy-aleksander

Landing · Quiz funnel

A family psychologist's landing page where the contact form was replaced by a quiz: the visitor answers three questions and gets a ready-made Telegram message instead of an empty input field.

3-question quizA11y 100 · SEO 100llms.txt for AI
HTML/CSS/JSGitHub Pages
@domgdeslushat
screenshot
04

psy-aleksander-tg-auto-posts-bot

Bot · Autoposting

A content engine for a Telegram channel: 31 sources, four levels of deduplication and Claude rewriting, publishing two posts a day without a single human review.

31 sources4-level dedup2 posts a day
PythonClaude CLIcron
t.me Case study
@rus_danang
screenshot
05

jw_danang_group_bot

Bot · Community

Five content streams run an expat Telegram group with no human involved, and cross-language deduplication stops one piece of news arriving twice — once in English and once in Russian.

5 streams28 posts a week5,700 duplicates
PythonClaude CLITelethoncron
t.me Case study
@jw_social_Downloader_bot
screenshot
06

jw_social_downloader

Bot · Product
Live demo

A public downloader bot for five social networks with a freemium model, an admin panel and Docker deployment: open the link, send an address, and it answers right now.

5 platforms3 currenciesFreemium + admin
Pythonaiogram 3yt-dlpDocker
t.me Case study
neva-beauty-bot
screenshot
07

neva-beauty-bot

Bot · Shop and booking
Demo closed

A Telegram bot for a salon: catalogue, cart, line-by-line order confirmation, Thai QR payment and procedure booking — with 204 prices pulled straight from the site's repository.

12 products204 prices synced25 tests
Pythonaiogram 3SQLite
The bot runs on a test environment, production launch is ahead Case study
Services

What I build

Pricing comes after I look at the task — before that it is guesswork.

Telegram bots

A bot that does the work instead of showing a menu: takes requests, serves content, runs mailouts, and is managed from inside Telegram.

What's included

  • Dialogue flow and an owner's admin panel
  • Database and request export
  • Docker deployment on your own server

What you get A working bot, its source code, and instructions to redeploy it

Websites

Pages are assembled from content by a generator instead of being drawn one by one. Changing a price or a line of text means one edit, not a hunt for copies.

What's included

  • Content model and URL structure
  • Markup, speed, accessibility
  • Deployment and automated checks in CI

What you get A site on your domain and the repository it is built from

Automation

Work done by hand every day moves into a script: data collection, scheduled publishing, checks before release.

What's included

  • The manual process broken down step by step
  • Script, schedule, failure notifications
  • Checks that catch a failure before you do

What you get A process that runs itself and tells you when something breaks

Stack

What I work with

Every name here appears in one of the projects above or in this site's own build.

Backend Python aiogram 3 Telethon SQLite Jinja2 yt-dlp
Frontend Astro TypeScript JavaScript HTML CSS
Infrastructure Docker Nginx GitHub Actions GitHub Pages cron
Checks pytest ESLint Stylelint html-validate Lighthouse
AI Claude CLI

Drag to spin

Process

How the work goes

Five steps. The first one is free: if the job isn't worth doing, you'll hear it there.

About

Hi, I'm jw

I build the whole thing: architecture, backend, frontend, infrastructure and the tests that hold it together. I work online, with clients across time zones. The code of every project is public — you can read it before you pay for it.

RU / ENUTC+7Code is public
FAQ

Straight answers

The terms people ask about in their first message. Answered here so they don't have to be answered by email.

How long does the work take?

In working days, counted from the moment the deposit and the materials arrive. A one-page site takes 4–6 days, a landing page with a quiz 6–9, a site with a price list and sections 10–15, a move off Tilda or Wix 14–21. A simple bot takes 2–4 days, a booking bot with a database and an admin panel 5–10, a channel on autopilot 7–12, a utility bot with subscriptions 7–12, a lead parser 7–14. An integration with a CRM or with payments adds 2–5 days.

What holds the schedule is not the build but how ready the materials are: copy, price list, photos, access. Second comes the speed of approvals: if the final call is made by someone other than the person I'm writing to, the schedule doubles. Third is scope. The build itself matters least.

What is included, and what is a separate stage?

Everything technical is included: mobile layout, schema.org markup, speed, analytics, deployment, and a machine-readable summary for AI search engines.

Separate stages: keyword research and the copy written for it, Google Business Profile and maps, copywriting itself. Design defaults to my own base fitted to your brand: your colours, fonts and photos. A bespoke design with concepts is discussed separately, and with finished mockups the schedule is shorter.

How does payment work?

50% up front, 50% on handover. Projects above ₽60,000 are split into three payments of 40/30/30 against checkpoints; monthly support is paid a month ahead. I don't start without a deposit.

Card or SBP; in Thailand and Vietnam a normal local transfer in baht or dong — I hold accounts in both countries; outside the region Wise, Payoneer, or USDT. On freelance platforms I work through escrow only. Two rounds of revisions are included, anything beyond that is hourly — written into the brief in advance.

Who owns the code?

You do. The repository moves to your account whole, not as an archive — after the final payment. Until then the project runs on my server: you can look at it, test it and show it to anyone. If seeing the code from day one matters, I'll open read access straight away and transfer ownership on payment.

Everything the code needs to run goes with it: deployment configuration, tests and automated checks, an administrator's guide. Keys and passwords are handed over separately — they are not in the repository.

Is there a monthly fee?

For a site, none. There is one cost: the domain, around ₽1,000–2,000 a year, registered in your name. Hosting is free, and you edit prices and copy yourself — no developer needed for that. If you'd rather not bother, support costs ₽3,000–8,000 a month, but that's an option, not a condition.

A bot is different: it lives on a server, from $5 a month, billed to you directly; a bot with AI adds model access, also on your account. You can watch it yourself or hand that to me: ₽5,000–15,000 a month, ₽10,000–25,000 for a channel on autopilot. The first month is free either way. Every account — domain, server, analytics — is registered in your name, so nothing ties you to me.

Will you take on someone else's project?

Yes, by the hour: ₽2,500–4,000 an hour, three hours minimum. I start with 2–4 hours to look through it — I read the code and tell you what's there and how long it will take. I won't quote a fixed price for code I haven't opened: that would be unfair to both of us.

If it turns out that rewriting is cheaper than fixing, you get both numbers: fixing as it stands costs this much, but the frame stays fragile and the next change will be expensive again; rewriting costs more now and less to maintain. You decide. I won't quietly rewrite it and call it a fix.

I won't take it on without access to the code and the server, on a "fix it but don't touch anything" basis, or on a stack I don't work with.

What do you need from me to start?

Four things: answers to the brief, your sign-off on a short scope document, the deposit, and one person who makes the final calls.

Access. For a bot — the BotFather token, access to the CRM, spreadsheets or payment provider with their documentation, the IDs of admins and chats. For a site — the domain or permission to register it, access to the current site and hosting if it's a move, an analytics account.

Materials. Copy about your services; the full price list in a single file, every item; your own photos, not stock; the logo in vector; contacts and the messenger where enquiries should land. For a channel on autopilot — a list of sources and 5–10 sample posts in your voice.

The price list has to be complete and in one file for a reason: prices live in a single source, so a number is changed once and changes everywhere — in the table, in the service descriptions and in the markup search engines read. And one organisational thing: answers within one working day. Disappear for a week and the schedule moves by a week.

Contact

Tell me about the job

Describe what needs building, and add a link if the site already exists — looking at it is free. I'll name the price and the schedule after that: before it, it's guesswork.

Leave a Telegram handle or an email — otherwise I can't reply

By sending this form you agree to the privacy policy.

Or skip the form

Anything sent through the form lands in my Telegram. Writing there directly is the same thing, one step shorter.

RU / EN UTC+7