Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($) $ in Thousands | Total | Common Stock | Additional Paid-in Capital | Accumulated Deficit | Accumulated Other Comprehensive Income (Loss) |
Beginning balance at Dec. 31, 2022 | $ 60,945 | $ 62 | $ 153,573 | $ (92,400) | $ (290) |
Beginning balance, Shares at Dec. 31, 2022 | | 12,243,929 | | | |
Exercise of stock options | 127 | | 127 | | |
Exercise of stock options, Shares | | 10,063 | | | |
Repurchase of common stock | (1,256) | | (1,256) | | |
Repurchase of common stock, Shares | | (35,369) | | | |
Issuance of common stock from RSUs vested, Shares | | 25,157 | | | |
Stock-based compensation | 2,220 | | 2,220 | | |
Foreign currency translation income (loss) | (17) | | | | (17) |
Net loss | (1,790) | | | (1,790) | |
Ending balance at Mar. 31, 2023 | 60,229 | $ 62 | 154,664 | (94,190) | (307) |
Ending balance, Shares at Mar. 31, 2023 | | 12,243,780 | | | |
Beginning balance at Dec. 31, 2022 | 60,945 | $ 62 | 153,573 | (92,400) | (290) |
Beginning balance, Shares at Dec. 31, 2022 | | 12,243,929 | | | |
Foreign currency translation income (loss) | (72) | | | | |
Net loss | (6,361) | | | | |
Ending balance at Sep. 30, 2023 | 68,110 | $ 64 | 167,169 | (98,761) | (362) |
Ending balance, Shares at Sep. 30, 2023 | | 12,720,608 | | | |
Beginning balance at Mar. 31, 2023 | 60,229 | $ 62 | 154,664 | (94,190) | (307) |
Beginning balance, Shares at Mar. 31, 2023 | | 12,243,780 | | | |
Exercise of stock options | 17 | | 17 | | |
Exercise of stock options, Shares | | 4,097 | | | |
Repurchase of common stock | (2,392) | | (2,392) | | |
Repurchase of common stock, Shares | | (100,401) | | | |
Issuance of common stock from ESPP purchases | 483 | | 483 | | |
Issuance of common stock from ESPP purchase, Shares | | 25,193 | | | |
Issuance of common stock from RSUs vested, Shares | | 56,666 | | | |
Stock-based compensation | 2,479 | | 2,479 | | |
Foreign currency translation income (loss) | (56) | | | | (56) |
Net loss | (2,697) | | | (2,697) | |
Ending balance at Jun. 30, 2023 | 58,063 | $ 62 | 155,251 | (96,887) | (363) |
Ending balance, Shares at Jun. 30, 2023 | | 12,229,335 | | | |
Exercise of stock options | 3 | | 3 | | |
Exercise of stock options, Shares | | 3,054 | | | |
Repurchase of common stock | (1,947) | | (1,947) | | |
Repurchase of common stock, Shares | | (93,012) | | | |
Issuance of common stock from RSUs vested, Shares | | 27,014 | | | |
Issuance of common stock from acquisitions | 11,291 | $ 2 | 11,289 | | |
Issuance of common stock from acquisitions, Shares | | 554,217 | | | |
Stock-based compensation | 2,573 | | 2,573 | | |
Foreign currency translation income (loss) | 1 | | | | 1 |
Net loss | (1,874) | | | (1,874) | |
Ending balance at Sep. 30, 2023 | 68,110 | $ 64 | 167,169 | (98,761) | (362) |
Ending balance, Shares at Sep. 30, 2023 | | 12,720,608 | | | |
Beginning balance at Dec. 31, 2023 | 74,757 | $ 64 | 170,139 | (95,118) | (328) |
Beginning balance, Shares at Dec. 31, 2023 | | 12,761,448 | | | |
Issuance of common stock from RSUs vested, Shares | | 31,720 | | | |
Stock-based compensation | 2,927 | | 2,927 | | |
Foreign currency translation income (loss) | (16) | | | | (16) |
Net loss | (2,909) | | | (2,909) | |
Ending balance at Mar. 31, 2024 | 74,759 | $ 64 | 173,066 | (98,027) | (344) |
Ending balance, Shares at Mar. 31, 2024 | | 12,793,168 | | | |
Beginning balance at Dec. 31, 2023 | $ 74,757 | $ 64 | 170,139 | (95,118) | (328) |
Beginning balance, Shares at Dec. 31, 2023 | | 12,761,448 | | | |
Exercise of stock options, Shares | 19,765 | | | | |
Foreign currency translation income (loss) | $ 39 | | | | |
Net loss | (5,101) | | | | |
Ending balance at Sep. 30, 2024 | 73,326 | $ 63 | 173,771 | (100,219) | (289) |
Ending balance, Shares at Sep. 30, 2024 | | 12,558,536 | | | |
Beginning balance at Mar. 31, 2024 | 74,759 | $ 64 | 173,066 | (98,027) | (344) |
Beginning balance, Shares at Mar. 31, 2024 | | 12,793,168 | | | |
Exercise of stock options | 5 | | 5 | | |
Exercise of stock options, Shares | | 5,640 | | | |
Repurchase of common stock | (1,999) | | (1,999) | | |
Repurchase of common stock, Shares | | (134,150) | | | |
Issuance of common stock from ESPP purchases | 444 | | 444 | | |
Issuance of common stock from ESPP purchase, Shares | | 36,586 | | | |
Issuance of common stock from RSUs vested, Shares | | 81,684 | | | |
Stock-based compensation | 3,146 | | 3,146 | | |
Foreign currency translation income (loss) | 12 | | | | 12 |
Net loss | (752) | | | (752) | |
Ending balance at Jun. 30, 2024 | 75,615 | $ 64 | 174,662 | (98,779) | (332) |
Ending balance, Shares at Jun. 30, 2024 | | 12,782,928 | | | |
Exercise of stock options | 54 | | 54 | | |
Exercise of stock options, Shares | | 14,125 | | | |
Repurchase of common stock | (4,000) | $ (1) | (3,999) | | |
Repurchase of common stock, Shares | | (284,790) | | | |
Issuance of common stock from RSUs vested, Shares | | 46,273 | | | |
Stock-based compensation | 3,054 | | 3,054 | | |
Foreign currency translation income (loss) | 43 | | | | 43 |
Net loss | (1,440) | | | (1,440) | |
Ending balance at Sep. 30, 2024 | $ 73,326 | $ 63 | $ 173,771 | $ (100,219) | $ (289) |
Ending balance, Shares at Sep. 30, 2024 | | 12,558,536 | | | |