Skip to content
Condictor Studio
Technology stack

Technology stack

We do not lock projects into one stack. We combine engineering experience with intensive AI-assisted work - from TypeScript and Python to Rust, C++, AWS, Google Cloud, and Azure.

Technology stack

Frontend

  • Next.js (App Router)
  • React
  • TypeScript
  • Tailwind CSS
  • Three.js / WebGL

Backend & systems

  • Python / FastAPI
  • Node.js / TypeScript
  • Rust
  • C++
  • APIs & integrations

Data

  • PostgreSQL
  • TimescaleDB
  • Cookieless analytics

Cloud & deployment

  • AWS / Google Cloud / Azure
  • VPS & containers
  • CI/CD, atomic deploy
  • Monitoring & Core Web Vitals

AI in engineering

  • Claude Code
  • Codex
  • LLMs, RAG & knowledge graphs
  • Dedicated multi-agent workflows

A stack is not a list of fashionable names. It is a set of decisions about product speed, data security, infrastructure cost, and who will maintain the system in two years. We begin with project constraints, not with a framework.

Technology follows the problem

We do not assume that every product must be built in JavaScript or Python. We use AI intensively in engineering work: to analyse existing code and documentation, compare approaches, build prototypes and tests, and support controlled migrations. This lets us move between ecosystems more efficiently and work within a client's existing stack.

AI does not remove engineering responsibility or replace technical knowledge. Architecture, security boundaries, performance, tests, and deployment decisions remain under human review. We choose technology for the problem: from TypeScript web applications and Python data services to Rust or C++ components when latency, memory control, concurrency, or low-level integration matter.

How we choose frontend and architecture

Next.js, React, and TypeScript are a frequent choice for web applications and services where a fast interface, server-side rendering, and control over technical SEO matter. They are not the only route. Depending on the product, the existing team, and the operating model, we also work with Vue and Nuxt, Angular, Svelte and SvelteKit, or—in simpler cases—a CMS or a solution without a substantial frontend layer.

For a simple site, we do not add application complexity without reason. The smallest architecture that meets the requirements usually wins on maintenance cost and failure surface.

Where we run the system

An owned VPS gives control over configuration, cost, and monitoring, so we often recommend it. When a project needs managed services, multi-region scaling, built-in security capabilities, or alignment with a client's infrastructure, we also deploy to Amazon Web Services, Google Cloud, Microsoft Azure, or an appropriate managed platform. We design compute, containers, databases, storage, queues, permissions, and observability to the scope the system actually needs. Product requirements, data, and operational responsibility—not loyalty to one provider—determine the environment.

Backend, systems, and data

We use Python and FastAPI for services involving data, language models, collectors, and background jobs. Node.js and TypeScript work well for services close to the web layer. We choose Rust and C++ for components requiring high performance, predictable resource use, safe concurrency, or integration with existing code and devices. We do not add them where a simpler technology delivers the same outcome at lower cost.

PostgreSQL is the default for transactional data; we add TimescaleDB when events and time series are central. This is how our own analytics and prediction platform works.

The boundary between an application and a data service is explicit. That makes testing, replacing one component, and evolving the system without rewriting everything easier.

How we approach language models

Where requirements allow it, we design AI integration independently of a single provider. A model is part of a system, not the whole product. It needs data sources, answer validation, permissions, observability, and a safe path for failures.

We use RAG, knowledge graphs, and multi-agent systems only when they solve a defined problem better than simpler automation. Examples and constraints are in the laboratory; the delivery scope is described in LLM integrations.

What remains after launch

Code, data migrations, configuration, and decision history remain in the project repository. Delivery includes production environment, a controlled publishing process, and monitoring appropriate to the risk. We agree specific quality thresholds and responsibilities in the brief before implementation begins.

If you already have technology and are unsure whether it needs replacing, start by describing the problem. Let's discuss the current system: migration is one option, not an assumption.