| Components of contract assets and contract liabilities | 
 The components of contract assets and contract liabilities consisted of the following: 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
June 30, | 
 | 
December 31, | 
 
 | 
2024 | 
 | 
2023 | 
 
 | 
(in thousands) | 
 
| Contract assets - current: | 
 | 
 | 
 | 
 
| Unbilled revenue | 
$ | 
28,166  | 
 | 
 | 
$ | 
15,213  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Total contract assets - current | 
$ | 
28,166  | 
 | 
 | 
$ | 
15,213  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Contract assets - long-term: | 
 | 
 | 
 | 
 
| Unbilled revenue - long-term | 
$ | 
1,332  | 
 | 
 | 
$ | 
8,150  | 
 | 
 
| Other contract assets - long-term | 
1,168  | 
 | 
 | 
610  | 
 | 
 
Total contract assets - long-term(1)
  | 
$ | 
2,500  | 
 | 
 | 
$ | 
8,760  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Contract liabilities - current: | 
 | 
 | 
 | 
 
| Deferred revenue - current | 
$ | 
4,580  | 
 | 
 | 
$ | 
3,670  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Total contract liabilities - current | 
$ | 
4,580  | 
 | 
 | 
$ | 
3,670  | 
 | 
 
 | 
 | 
 | 
 | 
 
| Contract liabilities - long-term: | 
 | 
 | 
 | 
 
 | 
 | 
 | 
 | 
 
| Other contract liabilities - long-term | 
$ | 
1,217  | 
 | 
 | 
$ | 
169  | 
 | 
 
| Total contract liabilities - long-term | 
$ | 
1,217  | 
 | 
 | 
$ | 
169  | 
 | 
 
  
Changes in short-term and long-term contract assets and contract liabilities for the six months ended June 30, 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 | 
(6,162) | 
 | 
 | 
(3,219) | 
 | 
 
| Changes in contract assets or contract liabilities, net of reclassification to receivables | 
11,229  | 
 | 
 | 
4,065  | 
 | 
 
| Cumulative catch-up adjustment arising from changes in estimates to complete | 
1,068  | 
 | 
 | 
(11) | 
 | 
 
| Cumulative catch-up adjustment arising from contract modifications | 
—  | 
 | 
 | 
76  | 
 | 
 
| Changes in costs to fulfill and amortization of commission costs  | 
558  | 
 | 
 | 
—  | 
 | 
 
| Changes in contract commission costs | 
—  | 
 | 
 | 
1,047  | 
 | 
 
| Balance as of June 30, 2024 | 
$ | 
30,666  | 
 | 
 | 
$ | 
5,797  | 
 | 
 
  
 |