Browser-based US tax form filler for 2025 single filers. Enter your financial data, compute your taxes, and download filled IRS PDF forms — all client-side, nothing leaves your browser.
https://frenchcommando.github.io/do-my-taxes/
- You enter your W-2, 1099 (including trades), 1098, estimated tax payments, charitable contributions, and other deduction info
- Click Compute Taxes to run the full federal + NY state tax computation
- Review the summary (income, deductions, tax, refund/owed, NY state/city taxes) and marginal tax rates
- Download filled PDF forms (1040, Schedules A/B/D, Forms 8949, 6251, 6781, 1116, 8959, 8960, NY IT-201, IT-196) and/or JSON output
All computation runs in your browser. No server, no API calls, no data transmission. Your financial data stays on your machine. Input is auto-saved to localStorage so it survives page reloads.
This tool is not tax advice. Results may contain errors. Consult a qualified tax professional before filing.
- Dark/Light mode (top bar) — Toggle theme, defaults to system preference
- GitHub (top bar) — Link to source code
- Import (top bar) — Load a JSON input file (your own export or a taxes1040
input.json) - Export (top bar) — Save your current input as
tax-input-2025.json - Reset (top bar) — Clear everything and reload the sample data
- Add / Delete (each section) — Add or remove entries (W-2s, 1099s, trades, mortgage payments, etc.)
- Compute Taxes (right panel) — Run the full tax computation and show the summary
- Download PDF Forms (right panel, after compute) — Download a single merged PDF with all filled IRS and NY forms
- JSON downloads (right panel, after compute) — data.json, summary.json, worksheet.json, carryover.json, marginal_rates.json
The page opens pre-filled with sample data. Edit or clear each section as needed.
Employer info, wages, federal/state/local tax withheld, Social Security and Medicare wages and taxes.
Interest, dividends (ordinary and qualified), foreign tax paid, capital gain distributions, Section 1256 contracts (realized/unrealized), other income. Each 1099 has a collapsible Trades sub-section for Form 8949 entries (description, shares, dates, proceeds, cost, wash sale, short/long term, form code A-F).
Lender info, principal balance, and individual mortgage payments (date, interest amount, principal amount). Mortgage interest is prorated if the balance exceeds $750k (federal) or $1M (NY).
Federal and state estimated payments with dates and amounts.
Cash contributions (entity name and amount). Flows to Schedule A line 11.
Property tax, co-op state taxes, days in NYC. Property tax flows to SALT deduction.
Only needed if you had capital losses or excess foreign tax credit from the prior year. Accepts values from last year's carryover.json output.
After computing, the right panel shows every key figure from the computation grouped by form: total income, AGI, taxable income, tax, payments, refund/owed, NY state and city taxes, AMT, NIIT, foreign tax credit, and more.
Shows the marginal tax rate on your next dollar for each income category (W2 wages, short/long-term capital gains, qualified dividends, interest, 1256 contracts, HSA, charitable, mortgage, property tax, foreign tax credit). Each category shows federal, NY state, NYC, and combined rates, with all thresholds where rates change.
- PDF Forms — A single merged PDF with all filled IRS and NY forms. Only forms relevant to your situation are included.
- data.json — Every field of every computed form (the full
forms_state). This is what gets mapped onto the PDF annotations. - summary.json — Key figures with human-readable labels.
- worksheet.json — Intermediate worksheet computations (SALT, mortgage interest, qualified dividends, capital loss carryover, etc.).
- carryover.json — Values to carry forward to next year (taxable income, Schedule D net short/long-term, loss deduction, foreign tax credit carryforward).
- marginal_rates.json — Analytical marginal rates with segment breakpoints for every income category.
- Federal — E-file for free at Free File Fillable Forms (IRS). Upload or manually enter values from the downloaded PDF.
- NY State — Use the enhanced fill-in forms from the NY Tax Department. Print, sign, and mail.
- Export — Downloads your current input as
tax-input-2025.json - Import — Load a previously exported JSON file. Also accepts the
input.jsonformat from taxes1040.
The tax engine is a TypeScript port of taxes1040, which has battle-tested computation for 2018-2025. Currently supports:
- Federal Form 1040 (single filer, no dependents)
- Schedule A (itemized deductions with SALT worksheet — $40k cap with phaseout for 2025)
- Schedule B (interest and dividends)
- Schedule D (capital gains/losses with carryover)
- Form 8949 (trades, multiple pages)
- Form 6781 (Section 1256 contracts, 60/40 split)
- Form 6251 (AMT with qualified dividend/capital gain preferential rates)
- Form 1116 (foreign tax credit)
- Form 8889 (HSA deduction)
- Form 8959 (Additional Medicare Tax)
- Form 8960 (Net Investment Income Tax, 3.8%)
- NY IT-201 (NY state tax with recapture)
- NY IT-196 (NY itemized deductions with high-income adjustment)
- Qualified Dividends and Capital Gain Tax Worksheet
- Capital Loss Carryover Worksheet
- Analytical marginal rate computation with segment breakpoints
npm install
npm run build
npm run previewThen open http://localhost:4173/do-my-taxes/
React, TypeScript, Vite, Zustand (state + localStorage persistence), MUI v6, pdf-lib (PDF generation in browser).
LGPL-3.0 — see LICENSE.