What is UsTaxes?
UsTaxes is a free, open-source tax filing application that can be used to file the Federal 1040 form. It is available in both web and desktop versions. It is provided free of charge and requires no sharing of personal data.
Interested in contributing? Get Started
Supported Income data
Most income and deduction information from the following forms are supported for tax years 2020 and 2021.
- 1099-R: support for normal distributions from IRA and pension accounts.
So far, this project can attach the following schedules to form 1040:
- Schedule 1 (as to Schedule E and 1098-E data only)
- Schedule 2
- Schedule 3 (as to excess FICA tax only)
- Schedule 8812
- Schedule B
- Schedule D
- Schedule E
- F8949 (Uncovered Investment Transactions)
- F8889 (Health Savings Accounts)
- F8959 (Additional Medicare Tax)
- F8960 (Net Investment Income Tax)
- Credit for children and other dependents
- Earned income credit
Implemented State returns
The states below have been implemented partially. See the
/src/stateForms/<state>/<relevant form> file for details on unimplemented portions.
Users who only have wage income and live in the states below should be able to file taxes using this site, since they do not have state level income tax.
- New Hampshire
- South Dakota
Note on using this project
This project is built by a growing community. If you notice an error in the outputted PDF or any other error, please submit an issue on the Github issues tab. We appreciate your feedback!
The project is available strictly via client side. Data is persisted to the site's localstorage so no personal information ever leaves the user's computer. For those who want extra security, the codebase can also be built as a desktop application.
Thank you for taking the time to contribute; let's make tax filing free for everyone! 🎉
To ensure the project is fun for every contributor, please review:
This application can be run as either a web application or a standalone desktop application
This project runs on Node 16. To ensure you're on the proper version, we recommend nvm.
nvm installed, you may select a version 16 node using:
nvm install 16 nvm use 16
npm ci # install package dependencies npm run start # run app
Note: To avoid having to set your node versions, we suggest using a tool like direnv. With the following configuration file as
.envrc in project root:
export NVM_DIR="$HOME/.nvm" . "$NVM_DIR/nvm.sh" # This loads nvm #. "$NVM_DIR/bash_completion" # Optional, nvm bash completion nvm install 16 nvm use 16
your environment will be set up every time you enter the project directory.
If preferred, a Docker alternative is available:
docker-compose build docker-compose up
Open a browser to
To stop and remove running containers, run
The desktop application is built with Tauri. In addition to the above steps, please follow this reference for setting up your environment for Tauri.
Once your environment is set up for Tauri, run,
npm run desktop. To avoid a browser window being spawned in addition to the desktop window, just set the BROWSER environment variable as in:
BROWSER=none npm run desktop.
To build executables, run
npm run desktop-release.