Every month, individual entrepreneurs in Georgia go through the same routine:
- Look up the official exchange rate for each foreign-currency payment
- Fill in the Revenue Service declaration form on rs.ge
- Double-check cumulative turnover against the 500k GEL threshold
- Submit and hope you didn't mess anything up
I've been doing this for a while and finally got tired of it. So I built Taxocat โ a free web app that handles the entire flow.
What it does
- Multicurrency income tracking โ add income in USD, EUR, GBP, etc. The app fetches the official Revenue Service exchange rate automatically for each transaction date.
- One-click declarations โ generates and submits the monthly declaration in the exact format rs.ge expects.
- AI assistant โ ask questions about Georgian tax rules, registration deadlines, and thresholds in plain language.
- Mobile PWA โ install from the browser, works on any device.
Who it's for
Georgian individual entrepreneurs (PE) registered under Small Business Status โ the 1% flat tax regime on turnover up to 500,000 GEL. Especially useful for freelancers invoicing foreign clients in multiple currencies.
Tech stack
Here's what's under the hood:
| Layer | Tech |
|---|---|
| Frontend | SvelteKit, Tailwind CSS 4, shadcn-svelte, PWA |
| Backend | Go, GraphQL (gqlgen) |
| Database | PostgreSQL |
| AI | Google Gemini |
| Auth | JWT + Google OAuth |
Why SvelteKit?
I wanted something fast, lightweight, and great for SEO (the app has a blog and landing pages that need to rank). SvelteKit's SSR + the compiled output made it a natural fit. Tailwind 4 + shadcn-svelte gave me a polished UI without fighting a component library.
Why Go + GraphQL?
Go gives me a single binary deployment with minimal memory footprint. gqlgen generates type-safe resolvers from the schema, so the API contract stays tight between frontend and backend. The whole API runs comfortably on a small VPS.
The AI assistant
The built-in chat uses Google's Gemini model with a system prompt grounded in Georgian tax context โ registration rules, declaration formats, deadlines, turnover limits. It's not a general-purpose chatbot; it's scoped to answer the specific questions a Georgian PE would ask.
Challenges I ran into
Exchange rates are tricky. The Revenue Service publishes official rates, but the format and availability aren't always consistent. I built a rate provider that caches and falls back gracefully.
Localization ร 3. The app runs in English, Russian, and Georgian. Georgian script (แแฎแแแ แฃแแ) has its own typographic quirks โ line heights, font rendering, and text length all behave differently. Tailwind helped keep things consistent.
PWA on iOS. Safari's PWA support is... improving. Push notifications, app install prompts, and service worker behavior all needed workarounds.
Try it out
๐ taxocat.com
It's free, no credit card required. Available in EN / RU / KA.
If you're a freelancer or PE in Georgia, I'd love to hear what's missing or what could be better. And if you're a dev, I'm happy to answer questions about the stack.
Thanks for reading! ๐ฑ
Top comments (0)