- Services
- Our service portfolio
We bring your digital product vision to life, from crafting real-world testable prototypes to delivering comprehensive product solutions.
- Collaboration models
Explore collaboration models customized to your specific needs: Complete nearshoring teams, Local heroes from partners with the nearshoring team, or Mixed tech teams with partners.
- Way of working
Through close collaboration with your business, we create customized solutions aligned with your specific requirements, resulting in sustainable outcomes.
- Our service portfolio
- Industries
- Finance
Nearshore software development for finance—secure, scalable, and compliant solutions for banking, payments, and APIs.
- Retail
Retail software development services—e-commerce, POS, logistics, and AI-driven personalization from nearshore engineering teams.
- Manufacturing
Nearshore manufacturing software development—ERP systems, IoT platforms, and automation tools to optimize industrial operations.
- Finance
- About Us
- Who we are
We are a full-service nearshoring provider for digital software products, uniquely positioned as a high-quality partner with native-speaking local experts, perfectly aligned with your business needs.
- Meet our team
ProductDock’s experienced team proficient in modern technologies and tools, boasts 15 years of successful projects, collaborating with prominent companies.
- Our locations
We are ProductDock, a full-service nearshoring provider for digital software products, headquartered in Berlin, with engineering hubs in Lisbon, Novi Sad, Banja Luka, and Doboj.
- Why nearshoring
Elevate your business efficiently with our premium full-service software development services that blend nearshore and local expertise to support you throughout your digital product journey.
- Who we are
- Our work
- Career
- Life at ProductDock
We’re all about fostering teamwork, creativity, and empowerment within our team of over 120 incredibly talented experts in modern technologies.
- Open positions
Do you enjoy working on exciting projects and feel rewarded when those efforts are successful? If so, we’d like you to join our team.
- Candidate info guide
How we choose our crew members? We think of you as a member of our crew. We are happy to share our process with you!
- Life at ProductDock
- Newsroom
- News
Stay engaged with our most recent updates and releases, ensuring you are always up-to-date with the latest developments in the dynamic world of ProductDock.
- Events
Expand your expertise through networking with like-minded individuals and engaging in knowledge-sharing sessions at our upcoming events.
- News
- Blog
- Get in touch

16. May 2025 •1 minute read
Tailoring Keycloak: How to customise the authentication flow
Nina Romanić
Software Engineer
At our Friday Talk, Nina Romanić, our software engineer, explored what happens when the default Keycloak authentication flow is insufficient for your unique requirements.
Nina demonstrated how to implement a customised authentication flow tailored to our specific needs.
Simplifying identity management with Keycloak
Keycloak is an open-source Identity and Access Management (IAM) tool that helps manage user authentication and access control for applications. It simplifies the process of logging users in and managing their identities by handling things like usernames, passwords, and sessions across multiple apps.
Keycloak fully supports OIDC and OAuth 2.0 as protocols for authentication and authorization. In short, Keycloak handles all the heavy lifting of login and identity management for our applications, so we don’t have to build our own implementations of OIDC and OAuth 2.0.
Keycloak provides built-in authentication flows that cover common user scenarios like registration, login, password recovery, and more.
Going beyond defaults: Custom SPI implementation
Keycloak’s built-in implementations are usually sufficient for our needs, as they already cover most common authentication scenarios. However, when specific requirements arise, Keycloak’s extensibility comes into play.
What is the SPI (Service Provider Interface) pattern, and how does it enable us to customize Keycloak extensively?
How can we implement a desired SPI, register it as a service provider, and tell Keycloak to use it?
If you are interested in this topic and would like to learn more about tailoring Keycloak, check out the materials of this insightful Friday Talk.
Also, follow our blog section for exciting upcoming topics that we’ll share soon.
Tags:
Nina Romanić
Software EngineerNina is a versatile full-stack developer with over nine years of experience. She is always eager to explore new technologies and expand her skill set. Avid, but not dogmatic, clean coder who is a big fan of proper code reviews and a true believer in knowledge sharing. She values trusting, healthy, and highly motivated teams and loves contributing to such an environment.