| Components of contract assets and contract liabilities | 
 The components of contract assets and contract liabilities consisted of the following: 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
March 31, | 
 | 
December 31, | 
 
 | 
2024 | 
 | 
2023 | 
 
 | 
(in thousands) | 
 
| Contract assets - current: | 
 | 
 | 
 | 
 
| Unbilled revenue | 
$ | 
24,134  | 
 | 
 | 
$ | 
15,213  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Total contract assets - current | 
$ | 
24,134  | 
 | 
 | 
$ | 
15,213  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Contract assets - long-term: | 
 | 
 | 
 | 
 
| Unbilled revenue - long-term | 
$ | 
2,607  | 
 | 
 | 
$ | 
8,150  | 
 | 
 
| Contract assets - long-term | 
560  | 
 | 
 | 
610  | 
 | 
 
Total contract assets - long-term(1)
  | 
$ | 
3,167  | 
 | 
 | 
$ | 
8,760  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Contract liabilities - current: | 
 | 
 | 
 | 
 
| Deferred revenue - current | 
$ | 
2,157  | 
 | 
 | 
$ | 
3,670  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Total contract liabilities - current | 
$ | 
2,157  | 
 | 
 | 
$ | 
3,670  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Contract liabilities - long-term: | 
 | 
 | 
 | 
 
 | 
 | 
 | 
 | 
 
| Other contract liabilities - long-term | 
$ | 
443  | 
 | 
 | 
$ | 
169  | 
 | 
 
| Total contract liabilities - long-term | 
$ | 
443  | 
 | 
 | 
$ | 
169  | 
 | 
 
  
Changes in short-term and long-term contract assets and contract liabilities for the three months ended March 31, 2024 were as follows: 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
Contract Assets | 
 | 
Contract Liabilities | 
 
 | 
(in thousands) | 
 
| Balance as of January 1, 2024 | 
$ | 
23,973  | 
 | 
 | 
$ | 
3,839  | 
 | 
 
| Billings or revenue recognized that was included in the beginning balance | 
(3,356) | 
 | 
 | 
(2,897) | 
 | 
 
| Changes in contract assets or contract liabilities, net of reclassification to receivables | 
6,930  | 
 | 
 | 
1,319  | 
 | 
 
| Cumulative catch-up adjustment arising from changes in estimates to complete | 
(196) | 
 | 
 | 
65  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Changes in costs to fulfill and amortization of commission costs  | 
(50) | 
 | 
 | 
—  | 
 | 
 
| Changes in contract commission costs | 
—  | 
 | 
 | 
274  | 
 | 
 
| Balance as of March 31, 2024 | 
$ | 
27,301  | 
 | 
 | 
$ | 
2,600  | 
 | 
 
  
 |