{
 "name": "OneSwitch",
 "url": "https://oneswitch.ru",
 "description": "Websites, web apps, Telegram bots and Mini Apps, integrations, scraping, 1C and AI agents. Systems that keep working without supervision.",
 "language": "en",
 "updated": "2026-10-30",
 "contact": {
  "telegram": "https://t.me/vladimir_7575",
  "github": "https://github.com/Vladimir-Hab"
 },
 "services": [
  {
   "name": "Websites and landing pages",
   "url": "https://oneswitch.ru/en/uslugi/sajty-i-lendingi/",
   "summary": "Fast responsive sites with an SEO base: static, Next.js or CMS.",
   "price": "from $250",
   "term": "5–14 days",
   "stack": [
    "HTML/CSS/JS",
    "Python generators",
    "Next.js",
    "Tailwind",
    "CMS"
   ]
  },
  {
   "name": "Web applications",
   "url": "https://oneswitch.ru/en/uslugi/veb-prilozheniya/",
   "summary": "Client accounts, admin panels, calculators and dashboards.",
   "price": "from $850",
   "term": "3–6 weeks",
   "stack": [
    "Python",
    "aiohttp / FastAPI",
    "PostgreSQL / SQLite",
    "JavaScript",
    "Docker"
   ]
  },
  {
   "name": "Integrations and APIs",
   "url": "https://oneswitch.ru/en/uslugi/integracii-i-api/",
   "summary": "CRM, payments, marketplaces, messengers and 1C exchange.",
   "price": "from $125",
   "term": "2–10 days",
   "stack": [
    "REST",
    "Webhooks",
    "n8n / Make",
    "Python",
    "PostgreSQL"
   ]
  },
  {
   "name": "Process automation",
   "url": "https://oneswitch.ru/en/uslugi/avtomatizaciya-processov/",
   "summary": "Scripts, schedules, reports, n8n and Make: routine leaves your hands.",
   "price": "from $125 per scenario",
   "term": "2–10 days",
   "stack": [
    "n8n",
    "Make",
    "Python",
    "Node.js",
    "cron",
    "PostgreSQL"
   ]
  },
  {
   "name": "Telegram bots and Mini Apps",
   "url": "https://oneswitch.ru/en/uslugi/telegram-boty-i-mini-app/",
   "summary": "Bots, Mini Apps, subscriptions and notifications: leads, catalogs, payments, support.",
   "price": "from $185",
   "term": "3–21 days",
   "stack": [
    "Telegram Bot API",
    "Mini App",
    "Python",
    "aiohttp",
    "PostgreSQL",
    "n8n"
   ]
  },
  {
   "name": "Scraping and data",
   "url": "https://oneswitch.ru/en/uslugi/parsing-i-dannye/",
   "summary": "Collection, cleaning, exports, price and competitor monitoring.",
   "price": "from $125",
   "term": "3–10 days",
   "stack": [
    "Python",
    "Playwright",
    "PostgreSQL",
    "SQLite",
    "n8n"
   ]
  },
  {
   "name": "Content and social media",
   "url": "https://oneswitch.ru/en/uslugi/kontent-i-soczseti/",
   "summary": "Page generation, auto-posting to Instagram, TikTok, Pinterest, YouTube and Dzen.",
   "price": "from $300",
   "term": "1–3 weeks",
   "stack": [
    "Python",
    "Playwright",
    "ffmpeg",
    "n8n",
    "PostgreSQL"
   ]
  },
  {
   "name": "1C and accounting systems",
   "url": "https://oneswitch.ru/en/uslugi/1c/",
   "summary": "Extensions, processing, reports, AI document recognition, site exchange and autotests.",
   "price": "from $30/hour",
   "term": "by estimate",
   "stack": [
    "1C:Enterprise",
    "XML sources",
    "Git",
    "Vanessa Automation"
   ]
  },
  {
   "name": "AI agents",
   "url": "https://oneswitch.ru/en/uslugi/ai-agenty/",
   "summary": "LLM assistants, request classification, knowledge base search.",
   "price": "from $300",
   "term": "1–3 weeks",
   "stack": [
    "LLM",
    "OpenRouter",
    "DeepSeek",
    "n8n",
    "Python",
    "REST API"
   ]
  },
  {
   "name": "SEO and AI optimization",
   "url": "https://oneswitch.ru/en/uslugi/seo-i-ai-optimizaciya/",
   "summary": "Technical audit, structured data, sitemap, llms.txt and AI readiness.",
   "price": "from $185",
   "term": "5–10 days",
   "stack": [
    "Schema.org",
    "JSON-LD",
    "llms.txt",
    "sitemap",
    "Yandex Webmaster",
    "Search Console"
   ]
  },
  {
   "name": "Autotests",
   "url": "https://oneswitch.ru/en/uslugi/avtotesty/",
   "summary": "Playwright scenarios: forms, payments, critical paths.",
   "price": "from $100",
   "term": "2–7 days",
   "stack": [
    "Playwright",
    "Vanessa Automation",
    "CI",
    "Python",
    "JavaScript"
   ]
  },
  {
   "name": "Deployment and support",
   "url": "https://oneswitch.ru/en/uslugi/deploy-i-podderzhka/",
   "summary": "VPS, CI/CD, backups, monitoring and improvements after launch.",
   "price": "from $85/month",
   "term": "as agreed",
   "stack": [
    "Linux",
    "nginx",
    "systemd",
    "Docker",
    "Git",
    "Certbot"
   ]
  }
 ],
 "projects": [
  {
   "name": "InsureHub: an insurance portal",
   "url": "https://oneswitch.ru/en/raboty/insurehub/",
   "summary": "An information portal on car, mortgage, travel and property insurance. Pages are built by a Python generator.",
   "stack": [
    "Python",
    "HTML/CSS/JS",
    "REST API",
    "SEO",
    "Schema.org"
   ],
   "external": "https://insure-hub.ru/"
  },
  {
   "name": "HotTrip: flights, hot tours, a bot and a Mini App",
   "url": "https://oneswitch.ru/en/raboty/hottrip/",
   "summary": "An ecosystem around flights and tours: a portal, an AI bot, a Telegram Mini App, an API and an automated channel.",
   "stack": [
    "n8n",
    "PostgreSQL",
    "Telegram Bot API",
    "Telegram Mini App",
    "OpenRouter",
    "DeepSeek",
    "Travelpayouts",
    "ffmpeg",
    "aiohttp"
   ],
   "external": "https://hot-trip.ru/"
  },
  {
   "name": "Da Nang House: rentals in Vietnam",
   "url": "https://oneswitch.ru/en/raboty/danang-house/",
   "summary": "A catalog of rental housing in Da Nang with a bot, a Mini App, subscriptions to new listings and auto-posting to a group.",
   "stack": [
    "n8n",
    "PostgreSQL",
    "Telegram Bot API",
    "Telegram Mini App",
    "Webhooks"
   ],
   "external": "https://dananghouse.ru/"
  },
  {
   "name": "Social media auto-publishing pipeline",
   "url": "https://oneswitch.ru/en/raboty/publishing-pipeline/",
   "summary": "Site material becomes posts and videos that go to five platforms on schedule, with verification of the result.",
   "stack": [
    "Python",
    "Playwright",
    "ffmpeg",
    "n8n"
   ],
   "external": null
  },
  {
   "name": "Local document recognition from photos for 1C",
   "url": "https://oneswitch.ru/en/raboty/raspoznavanie-dokumentov-1c/",
   "summary": "A 1C extension: a photo, scan or PDF of an invoice fills the document in 30–60 seconds. Local AI, no internet and no cloud.",
   "stack": [
    "1C:Enterprise",
    "Configuration extension",
    "Local AI",
    "LM Studio",
    "OCR"
   ],
   "external": "https://infostart.ru/marketplace/2700415/"
  },
  {
   "name": "1C development tooling",
   "url": "https://oneswitch.ru/en/raboty/1c-tools/",
   "summary": "A working pipeline for 1C: metadata, building processing, extensions, XML export and form testing.",
   "stack": [
    "1C:Enterprise",
    "XML",
    "Git",
    "Vanessa Automation"
   ],
   "external": null
  }
 ],
 "plans": [
  {
   "name": "Start",
   "price": "from $250",
   "term": "5–7 days"
  },
  {
   "name": "Business",
   "price": "from $850",
   "term": "3–6 weeks"
  },
  {
   "name": "Automation",
   "price": "from $125",
   "term": "per scenario, 2–10 days"
  }
 ],
 "articles": [
  {
   "title": "Telegram Mini App notifications: how to send push messages through the bot",
   "url": "https://oneswitch.ru/en/blog/uvedomleniya-v-telegram-mini-app/",
   "markdown": "https://oneswitch.ru/en/blog/uvedomleniya-v-telegram-mini-app/index.md",
   "date": "2026-10-30",
   "summary": "A Mini App has no push of its own: notifications arrive as bot messages, and you can write to a user only after they start the bot or grant access with requestWriteAccess. To open the right screen use a web_app button or a direct link with the startapp parameter. Mark users who blocked the bot and stop messaging them."
  },
  {
   "title": "A Telegram bot in n8n: inline buttons, menus and a Mini App button",
   "url": "https://oneswitch.ru/en/blog/telegram-bot-n8n-knopki-menu-mini-app/",
   "markdown": "https://oneswitch.ru/en/blog/telegram-bot-n8n-knopki-menu-mini-app/index.md",
   "date": "2026-10-30",
   "summary": "In n8n a bot is built from a Telegram Trigger, a branch by event type and a send node. Inline button presses arrive as callback_query and need an answer. A button that opens a Mini App is easiest to send through HTTP Request, and a bot can have only one webhook."
  },
  {
   "title": "How much a Telegram bot and Mini App cost: what the price is made of",
   "url": "https://oneswitch.ru/en/blog/skolko-stoit-telegram-bot-i-mini-app/",
   "markdown": "https://oneswitch.ru/en/blog/skolko-stoit-telegram-bot-i-mini-app/index.md",
   "date": "2026-10-30",
   "summary": "A bot's price depends on scenarios, integrations and roles; a Mini App's price also depends on the interface, API and data. A simple bot costs far less than a catalog with subscriptions. Saving comes from launching a minimal version and describing the task clearly."
  },
  {
   "title": "Invoice recognition in 1C from photo and PDF: cloud or local AI",
   "url": "https://oneswitch.ru/en/blog/raspoznavanie-upd-v-1s-chem-zagruzit-dokumenty/",
   "markdown": "https://oneswitch.ru/en/blog/raspoznavanie-upd-v-1s-chem-zagruzit-dokumenty/index.md",
   "date": "2026-10-30",
   "summary": "If a supplier works through EDI, load the document from XML instead of recognizing it. For paper, scans and photos you choose between cloud OCR and a local AI model. A local model is needed when prices and tax IDs must not leave the company. Test any option on 20–30 of your own real documents."
  },
  {
   "title": "Validate Telegram Mini App initData in Python: code and mistakes",
   "url": "https://oneswitch.ru/en/blog/proverka-initdata-telegram-mini-app-python/",
   "markdown": "https://oneswitch.ru/en/blog/proverka-initdata-telegram-mini-app-python/index.md",
   "date": "2026-10-30",
   "summary": "Validate initData on the server: derive a secret as HMAC-SHA256 of the bot token with the key WebAppData, then compare the signature of the data-check string. Use compare_digest and check auth_date to reject forged and stale data."
  },
  {
   "title": "Send messages from 1C to Telegram: code, chat_id and pitfalls",
   "url": "https://oneswitch.ru/en/blog/otpravka-soobshchenij-iz-1s-v-telegram/",
   "markdown": "https://oneswitch.ru/en/blog/otpravka-soobshchenij-iz-1s-v-telegram/index.md",
   "date": "2026-10-30",
   "summary": "Notifications from 1C need a bot, a token and a call to the sendMessage method over HTTPConnection. The hard part is mapping a 1C user to their chat_id, not the sending code. Never keep the token in module text, and move sending to a background job."
  },
  {
   "title": "1C and website data exchange: HTTP service or OData, auth, errors",
   "url": "https://oneswitch.ru/en/blog/obmen-1s-s-sajtom-http-servis-odata/",
   "markdown": "https://oneswitch.ru/en/blog/obmen-1s-s-sajtom-http-servis-odata/index.md",
   "date": "2026-10-30",
   "summary": "A website can talk to 1C in two ways: the standard OData interface for simple reading and writing of objects, or your own HTTP service for custom logic. Never expose the database to the internet directly: use a proxy with restrictions, a separate user with a narrow role and an exchange with retries and duplicate protection."
  },
  {
   "title": "n8n webhook: how to secure it and accept site data without duplicates",
   "url": "https://oneswitch.ru/en/blog/n8n-webhook-zashchita-avtorizaciya/",
   "markdown": "https://oneswitch.ru/en/blog/n8n-webhook-zashchita-avtorizaciya/index.md",
   "date": "2026-10-30",
   "summary": "An n8n webhook is open to everyone by default, so lock it: Header Auth or Basic Auth in the node, IP restrictions on the proxy and data validation. Reply to the site immediately, do heavy work after the reply, and give each request a unique ID to protect against repeats."
  },
  {
   "title": "1C invoice recognition without the cloud: UPD and TORG-12 from a photo",
   "url": "https://oneswitch.ru/en/blog/lokalnoe-raspoznavanie-dokumentov-v-1s/",
   "markdown": "https://oneswitch.ru/en/blog/lokalnoe-raspoznavanie-dokumentov-v-1s/index.md",
   "date": "2026-10-30",
   "summary": "An invoice from a photo can become a filled 1C document in 30–60 seconds. A local AI model runs on the client's computer, so prices, tax IDs and suppliers never reach third-party servers."
  },
  {
   "title": "llms.txt: an example file, the format and a checklist for your site",
   "url": "https://oneswitch.ru/en/blog/llms-txt-primer-formata/",
   "markdown": "https://oneswitch.ru/en/blog/llms-txt-primer-formata/index.md",
   "date": "2026-10-30",
   "summary": "llms.txt is a plain-text Markdown file in the site root: a title, a short summary and lists of links to the main pages with notes. It helps language models understand a site quickly, but it does not replace a sitemap or structured data and does not guarantee use. It is convenient to generate from the same data as the site."
  },
  {
   "title": "A Telegram Mini App catalog: API design, filters and subscriptions",
   "url": "https://oneswitch.ru/en/blog/katalog-v-telegram-mini-app-arhitektura/",
   "markdown": "https://oneswitch.ru/en/blog/katalog-v-telegram-mini-app-arhitektura/index.md",
   "date": "2026-10-30",
   "summary": "A Mini App catalog rests on three parts: an API with filters and pagination, user verification by initData and a subscription worker that matches new items against saved criteria and sends notifications through the bot. One database and one API serve both the website and the Mini App."
  },
  {
   "title": "No duplicates in auto-posting: a key, ON CONFLICT and a queue",
   "url": "https://oneswitch.ru/en/blog/dedup-v-avtoposting-n8n-postgresql/",
   "markdown": "https://oneswitch.ru/en/blog/dedup-v-avtoposting-n8n-postgresql/index.md",
   "date": "2026-10-30",
   "summary": "Remove duplicates in the database, not in the workflow: give every offer a unique key and insert it with ON CONFLICT DO NOTHING. Pull the send queue with FOR UPDATE SKIP LOCKED, and use new, sending and sent statuses so any step can be safely retried."
  },
  {
   "title": "Telegram auto-posting with n8n and PostgreSQL: pipeline design",
   "url": "https://oneswitch.ru/en/blog/avtoposting-v-telegram-n8n-postgresql/",
   "markdown": "https://oneswitch.ru/en/blog/avtoposting-v-telegram-n8n-postgresql/index.md",
   "date": "2026-10-30",
   "summary": "An auto-posting pipeline has five steps: collect data, store it, prepare the post, queue it and publish with verification. n8n connects the steps and PostgreSQL keeps the state and prevents duplicates."
  },
  {
   "title": "Aviasales API in Python: flight prices via Travelpayouts",
   "url": "https://oneswitch.ru/en/blog/aviasales-travelpayouts-api-na-python/",
   "markdown": "https://oneswitch.ru/en/blog/aviasales-travelpayouts-api-na-python/index.md",
   "date": "2026-10-30",
   "summary": "The Travelpayouts Data API returns cached prices from Aviasales searches, not a live search. One GET request with a token in the header is enough for prices by date and route. The main risks: data can be stale or missing for rare routes, so show prices as “from” and re-check them through the link."
  },
  {
   "title": "Telegram Mini App or a website: what to choose for a catalog",
   "url": "https://oneswitch.ru/en/blog/telegram-mini-app-ili-sajt/",
   "markdown": "https://oneswitch.ru/en/blog/telegram-mini-app-ili-sajt/index.md",
   "date": "2026-10-29",
   "summary": "A Mini App fits when your audience is already in Telegram and you need subscriptions and notifications. A website is needed for search and SEO. The best setup is both: the site attracts, the Mini App retains."
  },
  {
   "title": "llms.txt and GEO: how to prepare a site for AI answers",
   "url": "https://oneswitch.ru/en/blog/llms-txt-i-geo-seo-dlya-nejrosetej/",
   "markdown": "https://oneswitch.ru/en/blog/llms-txt-i-geo-seo-dlya-nejrosetej/index.md",
   "date": "2026-10-28",
   "summary": "GEO is preparing a site for AI answers. In practice it means Schema.org structured data, llms.txt, articles with a short answer first, and open access for AI bots in robots.txt."
  },
  {
   "title": "How much a website and automation cost: what the price is made of",
   "url": "https://oneswitch.ru/en/blog/skolko-stoit-sajt-i-avtomatizaciya/",
   "markdown": "https://oneswitch.ru/en/blog/skolko-stoit-sajt-i-avtomatizaciya/index.md",
   "date": "2026-10-27",
   "summary": "Price depends on scope, number of integrations, data complexity and reliability requirements. It is cheaper to start with a minimal working version and grow it from real usage."
  }
 ],
 "api": {
  "docs": "https://oneswitch.ru/en/dlya-razrabotchikov/",
  "note": "Publishing articles and accepting requests via the HTTP API, see the documentation."
 }
}