We’re technology pragmatists

We choose technology based on your product's needs, constraints, and goals—not on habit. That means balancing delivery speed with long-term maintainability, and making trade-offs explicit around scalability, security, performance, and team setup.

Together with our clients, we define a stack that fits today's roadmap and still holds up as the product grows.

Have a closer look!

Ruby & Ruby on Rails

Ruby on Rails is our workhorse for product backends and full-stack web apps. It's a mature, convention-driven framework that lets us move fast without sacrificing maintainability: clear architecture, strong testing culture, and a huge ecosystem. Great fit for complex domains, integrations, and long-lived products.

Elixir & Phoenix / Ash

Elixir and Phoenix are built for concurrency, resilience, and predictable performance under load. We use them when reliability and scalability are core requirements (real-time features, high throughput, background processing). With Ash, we can model business domains explicitly (resources, policies, workflows), which speeds up delivery while keeping the codebase consistent and evolvable.

JavaScript

JavaScript remains the default language for the web, and we use it where it makes sense: browser features, tooling, lightweight services, and integration work. We focus on pragmatic setups, strong test coverage, and sustainable build pipelines.

Svelte

Svelte is our choice for highly interactive frontends that should stay lean and fast. Its compilation model reduces runtime overhead and can simplify complex UI work—great for user-facing products where performance and developer velocity both matter.

React & Angular

React is our go-to for rich UI applications: component-driven architecture, strong ecosystem, and flexibility for product teams that iterate quickly. Angular is a great match for larger enterprise frontends that benefit from a more opinionated framework, consistent structure, and long-term maintainability. We pick based on your product constraints, team setup, and expected lifespan.

React Native

React Native lets us build high-quality iOS and Android apps from a single codebase, without giving up a native feel. We use it for product teams that want fast iteration, shared UI and business logic across platforms, and a pragmatic path from prototype to production. Typical use cases include companion apps for web platforms, internal tools, and consumer-facing apps that need reliable performance and smooth UX.

Turbo Native

Turbo Native (Hotwire Native) is a pragmatic way to ship iOS and Android apps by combining a single Rails backend with native shell apps that render most screens via Turbo. We use it when you want a mobile app experience without duplicating the entire UI in separate native codebases. It's a strong fit for Rails products that need mobile distribution, push notifications, deep linking, and selected native screens, while keeping development fast and consistent across web and mobile.

Artificial Intelligence

We build AI-enabled products in two complementary ways. For features like copilots, semantic search, summarization, automation, and natural-language interfaces, we integrate state-of-the-art foundation models (for example via OpenAI). When requirements call for stricter control—privacy constraints, on-prem deployments, regulated environments, or highly specialized behavior—we implement custom machine-learning solutions instead. That can include classical ML as well as deep learning, with a strong focus on evaluation, reproducibility, and reliability in production.

Bulletproof Cyber Security

Leveraging leading open source technology in close contact with our UX/UI designers, we are able to deliver robust and easy to use security solutions with seamless integration into your infrastructure.

Visit 9elements Cyber Security