We build and scale customer-facing services

We build the online touchpoints between a business and its customers, partners and employees: customer accounts and stores, dealer and partner portals, CRM and internal systems for teams.

Discuss a project

Our services

We build services where customers never lose their data
or their connection with your business.

We can combine several services in one project and add analytics.

All services
  1. 01

    Customer accounts and portals

    Accounts for customers, partners and employees: orders, payments, requests, history and access roles.

    Learn more
  2. 02

    Corporate systems

    CRM, ERP and internal systems. Customers, finances, requests and access in one place.

    Learn more
  3. 03

    Mini Apps and web services

    Mini Apps, chatbots and web services that automate individual business processes.

    Learn more
  4. 04

    Special projects and complex interfaces

    Web games, configurators and calculators. Built for Alfa-Bank, Raiffeisen Life and SPLAT.

    Learn more
  5. 05

    Service integrations

    Data exchange with 1C, CRM, YooKassa, Stripe, delivery services and SMS gateways.

    Learn more
  6. 06

    Support and scaling

    We join existing products and work with someone else's code. We optimise performance and move legacy to a new stack.

    Learn more

Projects and results

We launch customer accounts, CRM systems and online stores and keep developing them after release.

Experience with large companies: Alfa-Bank, Rostelecom, Raiffeisen Life, Sber Education, Selectel Academy and SPLAT.

All projects

Technologies

We build products on a proven stack that can be developed for years.

Frontend, backend and infrastructure that a new team can pick up easily and that can be maintained long-term. AI is part of the process: routine tasks, working with code and documentation.

VueFrontendVueWe have been writing Vue since 2016 — it is our main framework. Reactivity and component architecture: SPAs, customer accounts, corporate portals.ReactFrontendReactOur choice when the client or their team already works with React. Declarative UI, a huge ecosystem of libraries and a familiar stack for joint work.NuxtFrontendNuxtNuxt 3 and 4 are our standard for Vue projects with SEO. SSR, SSG, auto-routing and DevTools out of the box: a fast first screen and easy deployment.Next.jsFrontendNext.jsFor React projects where SEO and load speed matter. SSR and static output out of the box — showcases, marketing sites, public sections of a CRM.TypeScriptFrontendTypeScriptAll product code is written in TypeScript only. Static typing cuts production bugs and makes refactoring safe.ViteFrontendViteOur standard bundler for all Vue and React projects. Instant dev server start and a fast production build — a short edit cycle.SassFrontendSassUsed for structured design systems: variables, mixins, nesting. Keeps styles readable on large projects.PiniaFrontendPiniaThe official state store for Vue 3. We manage the profile, cart, filters and user roles — without the extra complexity of Vuex.GSAPFrontendGSAPFor expressive motion: timelines, ScrollTrigger, complex easing. Landing pages and brand sites where animation is part of the product.CanvasFrontendCanvasPixel-level drawing in the browser: scramble effects, interactive backgrounds, custom heroes. Used where CSS is no longer enough.Anime.jsFrontendAnime.jsA lightweight alternative to GSAP for simple scenarios: animating SVG, CSS properties and DOM attributes. No extra weight when you need flexibility.FigmaFrontendFigmaAll design work happens in Figma: mockups, component library, tokens, Code Connect. A shared language between designer and developer.PythonBackendPythonThe language for services, integrations and ML. Used together with Django and FastAPI — clean code, a rich ecosystem and a quick start.DjangoBackendDjangoOur choice for Python projects with rich business logic. ORM, auth, migrations and a ready admin panel out of the box — we start fast.FastAPIBackendFastAPIFor high-performance Python APIs: async, auto schemas and validation via Pydantic. Ideal for integrations, ML services and API gateways.NestJSBackendNestJSA TypeScript framework on Node.js: one language with the frontend, modular architecture, IoC. For complex REST APIs and microservices.Node.jsBackendNode.jsJavaScript on the server: one language with the frontend, one team. For WebSocket, streaming and highly concurrent tasks.LaravelBackendLaravelOur main PHP framework: API, queues, auth, scheduler out of the box. A quick start for corporate CRMs and admin systems.WordPressBackendWordPressThe most widespread CMS. For content sites where the client wants to edit materials themselves without a developer.StrapiBackendStrapiA headless CMS on Node.js: REST and GraphQL out of the box, flexible content models. Backend and frontend are separated — each part changes independently.PostgreSQLBackendPostgreSQLThe main relational database in all our projects. Transactions, JSON columns, full-text search — catalogues, orders, financial reports, audit.GraphQLBackendGraphQLWhere the frontend needs flexible data queries: one endpoint, a typed schema, no over- or under-fetching.RabbitMQBackendRabbitMQA message broker for asynchronous tasks and integrations: notifications, event processing, decoupling services without direct calls.SwaggerBackendSwaggerAll APIs are documented with OpenAPI/Swagger: interactive docs, generated clients and a single contract between teams.CursorAI toolsCursorAn AI editor with the full repository context: agents, chat with the code, auto-edits. Used to speed up features, documentation and code analysis.Claude CodeAI toolsClaude CodeAI for deep work with code: explanations, reviews, tests, bug analysis. Used where a long context and precise edits are needed.OpenAI APIAI toolsOpenAI APIWe integrate AI into products through the OpenAI API: chat, text generation, document analysis. Smart features without training our own models.Anthropic APIAI toolsAnthropic APIAnthropic API — Claude inside the product: long context, document analysis, chat and assistants. For B2B cases that need accuracy and safety.Gemini APIAI toolsGemini APIGoogle Gemini API — multimodal scenarios: text, images, documents. Convenient when the client already lives in Google Cloud.DeepSeek APIAI toolsDeepSeek APIDeepSeek API — an alternative to ChatGPT: code, reasoning, an affordable price. For chat and generation when quality and budget must balance.GigaChat APIAI toolsGigaChat APIGigaChat API — a Russian LLM by Sber: chat, text generation, documents. For Russian-hosted products and Sber ecosystem integrations.YandexGPT APIAI toolsYandexGPT APIYandexGPT API — a Russian alternative for chat and text generation. When the client needs data stored and processed in Russia.RedisDevOpsRedisCache, sessions, queues and pub/sub in memory. Takes load off the database and speeds up API responses at peak moments — without changing the architecture.DockerDevOpsDockerEvery environment runs in containers: dev, stage and prod match. No more "it worked on my machine"; deployment and moving between servers get simpler.GitLab CIDevOpsGitLab CIAutomatic pipelines: build, tests, deploy on push. No manual releases; errors are caught before they reach production.S3DevOpsS3Object storage for media, backups and static files. Served through a CDN — fast downloads without load on the main server.NginxDevOpsNginxOur standard for proxying and serving static files. Load balancing, SSL and cache — the first line in front of the application on every project.CloudflareDevOpsCloudflareCDN, WAF and DNS for all projects. DDoS protection, fast static delivery worldwide and domain management — in one place.PrometheusDevOpsPrometheusPrometheus — metrics from services and containers: CPU, memory, latency, errors. The base of monitoring for dashboards and alerts.LokiDevOpsLokiGrafana Loki — storage and search for application logs. Logs linked with metrics in Grafana: the cause of a production incident is found faster.GrafanaDevOpsGrafanaGrafana — dashboards and alerts on metrics and logs. Prometheus and Loki in one place — we see production before the client complains.SentryDevOpsSentryReal-time error monitoring: stack traces, user context, alerts. We learn about a production bug before the client notices it.

How we work

We were doing custom development long before neural networks, and the process took shape back then. AI helps us ship and maintain the product faster. Stability and security are still on us.

Brief and estimate

01

We discuss the task and estimate it. Then we write a specification: features, technical decisions, roles, rules and edge cases. We develop against it (SDD) and accept the result against it too.

Clickable prototype

02

We build a prototype from your design or with neural networks. The scenarios can be walked through by hand before the main development starts.

Development and integration

03

After the prototype demo we adjust the specification. Simple code is written with Codex and Claude Code: routine work goes faster and the budget goes further. We know where AI can go wrong, so every change is checked by a developer in code review. We connect the product to your systems and external services: CRM, payments and others. Everything built during the stage is available in the demo environment at the project link.

Testing and release

04

Once the functionality is ready, we cover it with tests and prepare the launch on a staging environment: a copy of the production environment where the product is checked in real conditions. After the final testing we move it to production and set up monitoring.

You always know what is going on

  • Reports

    Every 1–2 weeks we send a report: what was done, what we take on next and where an overrun is possible if the tasks change. You learn about extra costs before they happen, not after.

  • Demo link

    The current version of the product is always open. Come in at any moment, try everything and send the link to colleagues.

  • Direct line to the team

    A shared chat with the developers, no chain of managers. Questions are answered by the people who write the code.

Alfa-BankRostelecom HRSelectel AcademySplat BiohackSber EducationRaiffeisen LifeLevelUpperNeboSystemsVTRPomoschAlternativaVirtuozyLuzhniki Tennis ClubHeritagePraktikaCareer.ioConstant Delight
“Together with Spot we moved our internal CRM to Vue.js. The online schedule and the key modules run reliably across every branch of our music school chain.”
Dmitry BidulyaDmitry BidulyaCEO, Virtuozy
We already have a system, but the contractor disappeared. Will you take it over?

Yes. First we study the code and write down in a specification the rules the system follows today. Then we decide together what to improve and what to rewrite.

Can we start with a small part?

Yes, and most of the time that is the right way. We launch one scenario and expand once the first real users appear.

How much does it cost and how long does it take?

We give an estimate after the brief: the price and timeline depend on the number of roles, integrations and scenarios. To make the scope clear earlier, the first stage is a clickable prototype — you can walk through it before the main development and adjust the specification.

How does the work go?

Four stages: brief and estimate, clickable prototype, development with integrations, testing and release. At the first stage we write a specification — roles, rules and edge cases — and develop against it. Before launch we test in a staging environment and connect monitoring.

How do you use AI, and will quality suffer?

AI writes boilerplate code and speeds up routine work, but every change goes through code review and tests. We know where neural networks make mistakes, so business logic and integrations are checked by hand. The code lives in git and is backed up.

Do you integrate with 1C, payments and external services?

Yes. Customer accounts and CRMs are usually connected to 1C, payment acquiring, telephony and analytics: we sync data both ways and fix the exchange rules in the specification. An example is the Luzhniki Tennis Club account with 1C:Fitness, payments and membership.

What happens to the project after launch?

We stay on for support and development: we watch the monitoring, ship improvements and scale for growing load. The stack is proven and the code is documented — a new team can join the project easily if needed.

Let's discuss your project

We reply the same day. The first step is a 30-minute call or a brief in Telegram.

Discuss a project