| Net Loss Per Share |   
   9. Net Loss Per Share  The Company calculates basic and diluted net loss per share attributable to common stockholders in conformity with the two-class method required for participating securities. As of September 30, 2021 and 2020, the Company had voting and non-voting common stock outstanding. Since the rights of the voting and non-voting common stock are identical, except with respect to voting, the undistributed losses of the Company have been allocated on a proportionate basis to the two classes. Diluted net loss per share is calculated using the if-converted method, which assumes conversion of all non-voting common stock to voting common stock.   
|   |   | Three months ended September 30, 2021 |   |   | Nine months ended September 30, 2021 |   |  
|   |   | Voting common stock |   |   | Non-voting common stock |   |   | Voting common stock |   |   | Non-voting common stock |   |  
| Basic net loss per share: |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Numerator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Allocation of undistributed losses attributable to common stockholders |   | $ | (9,631 | ) |   | $ | (1,929 | ) |   | $ | (26,651 | ) |   | $ | (5,750 | ) |  
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Denominator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Weighted average number of shares used in basic per share computation |   |   | 21,534,342 |   |   |   | 4,312,500 |   |   |   | 20,389,242 |   |   |   | 4,398,437 |   |  
| Net loss per share, basic |   | $ | (0.45 | ) |   | $ | (0.45 | ) |   | $ | (1.31 | ) |   | $ | (1.31 | ) |  
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Diluted net loss per share: |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Numerator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Allocation of undistributed losses for basic computation |   | $ | (9,631 | ) |   | $ | (1,929 | ) |   | $ | (26,651 | ) |   | $ | (5,750 | ) |  
| Reallocation of undistributed losses as a result of conversion of non-voting to voting common shares |   |   | (1,929 | ) |   |   | — |   |   |   | (5,750 | ) |   |   | — |   |  
| Allocation of undistributed losses |   | $ | (11,560 | ) |   | $ | (1,929 | ) |   | $ | (32,401 | ) |   | $ | (5,750 | ) |  
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Denominator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Weighted average number of shares used in basic per share computation |   |   | 21,534,342 |   |   |   | 4,312,500 |   |   |   | 20,389,242 |   |   |   | 4,398,437 |   |  
| Add: conversion of non-voting to voting common shares outstanding |   |   | 4,312,500 |   |   |   | — |   |   |   | 4,398,437 |   |   |   | — |   |  
| Weighted average number of shares used in diluted per share computation |   |   | 25,846,842 |   |   |   | 4,312,500 |   |   |   | 24,787,679 |   |   |   | 4,398,437 |   |  
| Net loss per share, diluted |   | $ | (0.45 | ) |   | $ | (0.45 | ) |   | $ | (1.31 | ) |   | $ | (1.31 | ) |        
|   |   | Three months ended September 30, 2020 |   |   | Nine months ended  September 30, 2020 |   |  
|   |   | Voting common stock |   |   | Non-voting common stock |   |   | Voting common stock |   |   | Non-voting common stock |   |  
| Basic net loss per share: |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Numerator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Allocation of undistributed losses attributable to common stockholders |   | $ | (6,434 | ) |   | $ | (1,959 | ) |   | $ | (18,393 | ) |   | $ | (5,637 | ) |  
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Denominator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Weighted average number of shares used in basic per share computation |   |   | 17,828,169 |   |   |   | 5,429,486 |   |   |   | 16,943,599 |   |   |   | 5,193,114 |   |  
| Net loss per share, basic |   | $ | (0.36 | ) |   | $ | (0.36 | ) |   | $ | (1.09 | ) |   | $ | (1.09 | ) |  
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Diluted net loss per share: |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Numerator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Allocation of undistributed losses for basic computation |   | $ | (6,434 | ) |   | $ | (1,959 | ) |   | $ | (18,393 | ) |   | $ | (5,637 | ) |  
| Reallocation of undistributed losses as a result of conversion of non-voting to voting common shares |   |   | (1,959 | ) |   |   | — |   |   |   | (5,637 | ) |   |   | — |   |  
| Allocation of undistributed losses |   | $ | (8,393 | ) |   | $ | (1,959 | ) |   | $ | (24,030 | ) |   | $ | (5,637 | ) |  
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Denominator |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
| Weighted average number of shares used in basic per share computation |   |   | 17,828,169 |   |   |   | 5,429,486 |   |   |   | 16,943,599 |   |   |   | 5,193,114 |   |  
| Add: conversion of non-voting to voting common shares outstanding |   |   | 5,429,486 |   |   |   | — |   |   |   | 5,193,114 |   |   |   | — |   |  
| Weighted average number of shares used in diluted per share computation |   |   | 23,257,655 |   |   |   | 5,429,486 |   |   |   | 22,136,713 |   |   |   | 5,193,114 |   |  
| Net loss per share, diluted |   | $ | (0.36 | ) |   | $ | (0.36 | ) |   | $ | (1.09 | ) |   | $ | (1.09 | ) |    The following outstanding potentially dilutive shares have been excluded from the calculation of diluted net loss per share, as their effect is anti-dilutive:  
|   |   | As of September 30, |   |  
|   |   | 2021 |   |   | 2020 |   |  
| Stock options to purchase common stock |   |   | 4,038,981 |   |   |   | 2,889,045 |   |  
| Non-vested common stock |   |   | 2,110 |   |   |   | 696,595 |   |  
|   |   |   | 4,041,091 |   |   |   | 3,585,640 |   |  
|   |   |   |   |   |   |   |   |   |    |