Inspiration

Watching small service businesses handle GST the same way every month: scramble, message a CA, get a number they can't check, pay for the privilege. Existing tools want to file for you or sell you a compliance subscription. The actual job is smaller and more honest: before you file, know what you probably owe and what's missing. That's the product.

What it does

TaxEasy runs a monthly GST payment-readiness check. You confirm your output GST and input credit, say whether you file monthly or quarterly, and answer a short list of period questions: credit notes? exports? reverse charge? checked GSTR-2B? You get an estimate, the due dates that actually apply to your frequency, and flags for anything that could change the number. Then you file yourself on gst.gov.in with your own OTP. TaxEasy never submits and never stores portal passwords or OTPs.

How we built it

Node 24, zero runtime dependencies, hexagonal architecture. A hard-coded tax engine owns every rupee; the AI handles conversation only and never computes a number. Consent is enforced server-side per data category (DPDP), so partial consent means financial data never reaches the model. 492 tests, all green, run on every change. The whole close flow is deterministic: figures, frequency, exceptions, pack.

Challenges we ran into

  • The consent parser matched the word "gst" inside normal messages, so typing "close my GST" silently granted GST data consent. A privacy bug hiding inside onboarding. Fixed fail-closed: a tax request is never a consent answer.
  • The profession step stored whatever you typed. "close my GST" briefly became a user's job title.
  • Everyone repeats "the 11th and the 20th" for due dates. Wrong for quarterly filers: GSTR-1 is the 13th after quarter end, GSTR-3B is the 22nd or 24th depending on state. We show both rather than guess.
  • The current-FY engine fail-closes on purpose. We will not ship FY2026-27 math from memory.

Accomplishments that we're proud of

The full close runs end to end with no human help: onboarding, consent, figures across multiple messages, frequency, exceptions, pack. And the boundary we kept: a flagged pack refuses to offer a filing handoff until the user resolves the exceptions.

What we learned

Honesty is a feature you have to engineer. Every time the bot sounded more capable than it was ("you're ready to file"), we had to claw it back. The version that says "this is an estimate, you file" is the one that survives a CA reading it.

What's next

Reminders keyed to your real due dates, month-over-month history so regulars see their own trends, and founder-assisted pilots with real service firms before any public channel. ₹199 a month until pilot data says otherwise.

Built With

Share this project:

Updates

Submission history