v3.25.2
Stock-based compensation - Schedule of option activity (Details) - Stock options
$ / shares in Units, $ in Thousands
6 Months Ended
Jun. 30, 2025
USD ($)
$ / shares
shares
Dec. 31, 2024
USD ($)
Number of Options    
Options exercised (in shares) | shares (38,305)  
Weighted Average Exercise Price    
Options expired (in dollars per share) | $ / shares $ 18.89  
2018 Plan    
Number of Options    
Options outstanding, beginning balance (in shares) | shares 1,285,930  
Options exercised (in shares) | shares (45,405)  
Options outstanding, ending balance (in shares) | shares 1,240,525  
Options vested and exercisable (in shares) | shares 1,240,525  
Weighted Average Exercise Price    
Options outstanding, beginning balance (in dollars per share) | $ / shares $ 3.54  
Options exercised (in dollars per share) | $ / shares 3.54  
Option outstanding, ending balance (in dollars per share) | $ / shares 3.54  
Options vested and exercisable (in dollars per share) | $ / shares $ 3.54  
Aggregate Intrinsic Value and Weighted Average Contractual Term (in years)    
Options outstanding, aggregate intrinsic value | $ $ 9,937 $ 24,047
Options vested and exercisable, aggregate intrinsic value | $ $ 9,937  
Options outstanding, weighted average contractual term (in years) 3 years 7 months 6 days  
Options vested and exercisable, weighted average contractual term (in years) 3 years 7 months 6 days  
2020 Plan    
Number of Options    
Options outstanding, beginning balance (in shares) | shares 2,748,391  
Options exercised (in shares) | shares (45,172)  
Options forfeited (in shares) | shares (39,025)  
Options outstanding, ending balance (in shares) | shares 2,625,889  
Options vested and exercisable (in shares) | shares 2,143,604  
Weighted Average Exercise Price    
Options outstanding, beginning balance (in dollars per share) | $ / shares $ 12.75  
Options exercised (in dollars per share) | $ / shares 10.68  
Options forfeited (in dollars per share) | $ / shares 13.81  
Option outstanding, ending balance (in dollars per share) | $ / shares 12.68  
Options vested and exercisable (in dollars per share) | $ / shares $ 12.46  
Aggregate Intrinsic Value and Weighted Average Contractual Term (in years)    
Options outstanding, aggregate intrinsic value | $ $ 3,368 $ 26,881
Options vested and exercisable, aggregate intrinsic value | $ $ 3,305  
Options outstanding, weighted average contractual term (in years) 6 years 1 month 6 days  
Options vested and exercisable, weighted average contractual term (in years) 5 years 9 months 18 days