Hard problems, honest answers, software that ships.
Straight advice, careful engineering, and a real interest in what you’re trying to achieve. That’s how we deliver software that pays off.
What we do, and how we do it.
We give straight advice, and then we stay to build it with you, from the first conversation to production. Each of the four services below is shaped by projects we’ve delivered.
AI systems
- Claude
- Gemini
- Mistral
- Node.js
We build workflows and agents on large language models that turn emails, PDFs and scanned documents into decisions and ERP records. We choose Claude, Gemini or Mistral per task, and we measure reliability and cost per document. A system you can’t price isn’t finished. We’ve built this for order emails in the German dental industry, from the inbox to the ERP record.
Web platforms
- Next.js
- PayloadCMS
- PostgreSQL
- Stripe
We work on web platforms already in production, where the application, CMS, hosting and payments came from different people at different times. Most of the trouble sits in the seams between those parts, and that’s where we start. For a German logistics SaaS we moved the platform from Ruby on Rails to Next.js and Supabase. We also isolated each customer’s data in the database and added ZUGFeRD e-invoicing.
Product development
- TypeScript
- React
- Supabase
- Kubernetes
Our engineers join your team and work on your project, to your plan. When you need a technical lead before the permanent hire, we step in as interim CTO. We hand over when your hire arrives. In both cases the plan stays yours and the decisions stay with you.
Identity and access
- Keycloak
- Auth0
- OIDC
- Terraform
We work with Keycloak and Auth0, migrate between the two, write Keycloak extensions, and add single sign-on for enterprise customers with their own directories. When roles and permissions have outgrown the product, we redesign them rather than patch them. One migration moved more than three million users and over thirty microservices from Keycloak to Auth0 for an optical retailer in Germany.
What we built.
Orders written as plain emails become records the ERP accepts.
Dental industry, Germany
Orders arrive as emails written by people, in no fixed format. A large language model reads each one and writes a record the client’s ERP accepts. When it cannot, it writes nothing instead of a wrong record.
- Claude, Gemini or Mistral, chosen per task
- Built in Node.js
- Delivered through GitHub Actions
The platform left Rails, and access control moved into the database.
Logistics and transportation SaaS, Germany
We moved the platform from Ruby on Rails to Next.js on Supabase. Access control now lives in the database, not in the application, so each customer only ever sees its own data. The platform also issues ZUGFeRD invoices, the German e-invoicing standard.
- Ruby on Rails to Next.js
- Row Level Security in Supabase
- ZUGFeRD invoices
- users moved
- 3M+
- microservices
- 30+
Three million users moved from Keycloak to Auth0 across thirty microservices.
Optical retail, online and in store, Germany
We moved the users from Keycloak to Auth0 together with the client’s own engineers. More than thirty microservices came along. On the way, Keycloak on Kubernetes went from version 15 to version 24, and Auth0 events now reach AWS EventBridge through Lambda.
- Keycloak 15 to 24 on Kubernetes
- Auth0 events to EventBridge via Lambda
- Datadog, Pulumi, Terraform
“We rely on Zone2 for their exceptional technical skills and strategic insights. Their ability to align with our long-term goals has made them an indispensable partner.”

When to bring us in.
Earlier than you’d think. Most of what a project costs gets decided in the first few weeks, while it’s being scoped. If any of this sounds like you, that’s the moment to call.
AI systems
- You’ve got a demo that works, and you need to know what it’ll cost and how often it’ll be wrong once it runs for real.
- The data you need is in emails, PDFs and scans, and someone types it into a system by hand.
- A wrong answer would cost you money or a customer, so something has to check the model’s work.
Web platforms
- Your framework is several major versions behind, and nobody dares to start the upgrade.
- You need to start charging customers, and there’s no billing yet.
- Your marketing site and your application have become two codebases that keep drifting apart.
Product development
- You’re deciding whether to hire, promote someone, or bring in outside help.
- Your CTO or technical lead has left, and the decisions are piling up.
- Your team has grown, and the way it used to work doesn’t work anymore.
Identity and access
- You’re planning a move to or from Keycloak or Auth0, and nothing has moved yet.
- Your Keycloak is several major versions behind.
- A big customer’s contract requires single sign-on, and you don’t have it.

We don’t just build software and hand it over. We work with you from the first idea to the finished product. Along the way you know where things stand. You hear from us about progress, and about problems while they’re still small.
I care about the result. I also care about how you get there. When you talk, we listen. When something is unclear, we ask. You should never wonder what’s happening with your project, or whether anyone understood what you meant.
That’s how we work, on every project. If it sounds like what you need, write to us below.
Spas Poptchev, founder
Tell us what you’re building.
Send a note or book a call, whichever you prefer. You’ll hear from us within one business day.
Or call +359 877 277 640.
A message commits you to nothing. By sending it you confirm you’ve read the privacy policy.
