Condensed Consolidated Statements of Changes in Stockholders' Equity (Deficit) - USD ($) shares in Thousands, $ in Thousands | Total | Additional Paid-in Capital | Accumulated Deficit | Accumulated Other Comprehensive Income (Loss) | Common Class A | Common Class A Common Stock | Common Class B | Common Class B Common Stock | Common Class B Class B Treasury Stock |
Beginning balance (in shares) at Dec. 31, 2022 | | | | | | 74,320 | | 30,379 | |
Beginning balance at Dec. 31, 2022 | $ 28,620 | $ 35,926 | $ (6,290) | $ (373) | | $ 1 | | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2022 | | | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | | |
Conversion of Class B common stock to Class A common stock (in shares) | | | | | | 4,568 | | (4,568) | |
Issuance of common stock upon exercise of options (in shares) | | | | | | 6 | | 658 | |
Issuance of common stock upon exercise of options | 1,298 | 1,298 | | | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | | 525 | | 269 | |
Stock-based compensation | 22,088 | 22,088 | | | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | | (191) | | (109) | |
Shares withheld related to net share settlement | (4,511) | (4,511) | | | | | | | |
Shares issued under employee stock purchase plan (in shares) | | | | | | 237 | | | |
Shares issued under employee stock purchase plan | 4,221 | 4,221 | | | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | | (3,806) | | | |
Repurchase and retirement of common stock | (60,292) | (59,022) | (1,270) | | | | | | |
Net income | 5,011 | | 5,011 | | | | | | |
Other comprehensive income (loss) | 161 | | | 161 | | | | | |
Share repurchase excise tax | (459) | | (459) | | | | | | |
Ending balance (in shares) at Mar. 31, 2023 | | | | | | 75,659 | | 26,629 | |
Ending balance at Mar. 31, 2023 | (3,863) | 0 | (3,008) | (212) | | $ 1 | | $ 0 | $ (644) |
Ending balance (in shares) at Mar. 31, 2023 | | | | | | | | | (195) |
Beginning balance (in shares) at Dec. 31, 2022 | | | | | | 74,320 | | 30,379 | |
Beginning balance at Dec. 31, 2022 | 28,620 | 35,926 | (6,290) | (373) | | $ 1 | | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2022 | | | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | | |
Net income | 19,391 | | | | | | | | |
Other comprehensive income (loss) | 97 | | | | | | | | |
Ending balance (in shares) at Jun. 30, 2023 | | | | | | 73,418 | | 26,629 | |
Ending balance at Jun. 30, 2023 | (25,852) | 0 | (24,933) | (276) | | $ 1 | | $ 0 | $ (644) |
Ending balance (in shares) at Jun. 30, 2023 | | | | | | | | | (195) |
Beginning balance (in shares) at Mar. 31, 2023 | | | | | | 75,659 | | 26,629 | |
Beginning balance at Mar. 31, 2023 | (3,863) | 0 | (3,008) | (212) | | $ 1 | | $ 0 | $ (644) |
Beginning balance (in shares) at Mar. 31, 2023 | | | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | | |
Conversion of Class B common stock to Class A common stock (in shares) | | | | | | 558 | | (558) | |
Issuance of common stock upon exercise of options (in shares) | | | | | | 6 | | 449 | |
Issuance of common stock upon exercise of options | 1,224 | 1,224 | | | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | | 570 | | 198 | |
Stock-based compensation | 18,040 | 18,040 | | | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | | (187) | | (89) | |
Shares withheld related to net share settlement | (4,585) | (4,585) | | | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | | (3,188) | | | |
Repurchase and retirement of common stock | (50,592) | (14,679) | (35,913) | | | | | | |
Net income | 14,380 | | 14,380 | | | | | | |
Other comprehensive income (loss) | (64) | | | (64) | | | | | |
Share repurchase excise tax | (392) | | (392) | | | | | | |
Ending balance (in shares) at Jun. 30, 2023 | | | | | | 73,418 | | 26,629 | |
Ending balance at Jun. 30, 2023 | (25,852) | 0 | (24,933) | (276) | | $ 1 | | $ 0 | $ (644) |
Ending balance (in shares) at Jun. 30, 2023 | | | | | | | | | (195) |
Beginning balance (in shares) at Dec. 31, 2023 | | | | | 76,173 | 76,173 | 22,634 | 22,829 | |
Beginning balance at Dec. 31, 2023 | $ 8,365 | 14,526 | (5,531) | 13 | | $ 1 | | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2023 | (195) | | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | | |
Conversion of Class B common stock to Class A common stock (in shares) | | | | | | 232 | | (232) | |
Issuance of common stock upon exercise of options (in shares) | | | | | | 5 | | 165 | |
Issuance of common stock upon exercise of options | $ 309 | 309 | | | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | | 870 | | 118 | |
Stock-based compensation | 19,147 | 19,147 | | | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | | (331) | | (51) | |
Shares withheld related to net share settlement | (4,795) | (4,795) | | | | | | | |
Shares issued under employee stock purchase plan (in shares) | | | | | | 210 | | | |
Shares issued under employee stock purchase plan | 2,582 | 2,582 | | | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | | (512) | | | |
Repurchase and retirement of common stock | (6,373) | (6,373) | | | | | | | |
Net income | (6,505) | | (6,505) | | | | | | |
Other comprehensive income (loss) | (80) | | | (80) | | | | | |
Ending balance (in shares) at Mar. 31, 2024 | | | | | | 76,647 | | 22,829 | |
Ending balance at Mar. 31, 2024 | 12,650 | 25,396 | (12,036) | (67) | | $ 1 | | $ 0 | $ (644) |
Ending balance (in shares) at Mar. 31, 2024 | | | | | | | | | (195) |
Beginning balance (in shares) at Dec. 31, 2023 | | | | | 76,173 | 76,173 | 22,634 | 22,829 | |
Beginning balance at Dec. 31, 2023 | $ 8,365 | 14,526 | (5,531) | 13 | | $ 1 | | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2023 | (195) | | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | | |
Net income | $ 509 | | | | | | | | |
Other comprehensive income (loss) | (64) | | | | | | | | |
Ending balance (in shares) at Jun. 30, 2024 | | | | | 76,544 | 76,544 | 22,634 | 22,829 | |
Ending balance at Jun. 30, 2024 | $ 24,431 | 30,147 | (5,022) | (51) | | $ 1 | | $ 0 | $ (644) |
Ending balance (in shares) at Jun. 30, 2024 | (195) | | | | | | | | (195) |
Beginning balance (in shares) at Mar. 31, 2024 | | | | | | 76,647 | | 22,829 | |
Beginning balance at Mar. 31, 2024 | $ 12,650 | 25,396 | (12,036) | (67) | | $ 1 | | $ 0 | $ (644) |
Beginning balance (in shares) at Mar. 31, 2024 | | | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | | |
Conversion of Class B common stock to Class A common stock (in shares) | | | | | | 211 | | (211) | |
Issuance of common stock upon exercise of options (in shares) | | | | | | 5 | | 162 | |
Issuance of common stock upon exercise of options | 372 | 372 | | | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | | 861 | | 105 | |
Stock-based compensation | 16,325 | 16,325 | | | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | | (294) | | (53) | |
Shares withheld related to net share settlement | (3,286) | (3,286) | | | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | | (886) | | (3) | |
Repurchase and retirement of common stock | (8,660) | (8,660) | | | | | | | |
Net income | 7,014 | | 7,014 | | | | | | |
Other comprehensive income (loss) | 16 | | | 16 | | | | | |
Ending balance (in shares) at Jun. 30, 2024 | | | | | 76,544 | 76,544 | 22,634 | 22,829 | |
Ending balance at Jun. 30, 2024 | $ 24,431 | $ 30,147 | $ (5,022) | $ (51) | | $ 1 | | $ 0 | $ (644) |
Ending balance (in shares) at Jun. 30, 2024 | (195) | | | | | | | | (195) |