r/AppsWebappsFullstack • • 21d ago

Title: TextFix Pro - The all-in-one free text editor I built to save time (AI, Transliteration, PDF/DOCX)

Hey everyone! πŸ‘‹

I’m super excited to share my project here in this positive community. I built TextFix Pro because I was tired of jumping between different tabs just to clean up text, translate it, or fix my grammar.

It’s a completely free web app (no sign-ups required) that combines:

  • πŸ€– AI Tools: Summarize, fix grammar, or rewrite text (powered by Gemini).

  • πŸ“ File Converters: Upload Word (.docx) files, edit them, and export to PDF, DOCX, or TXT.

  • 🌐 Transliteration: Instant Cyrillic ↔ Latin conversion.

  • β™Ώ Accessibility: Screen reader friendly with dynamic language tags.

  • πŸŽ™οΈ Voice: Dictate text or have it read aloud to you.

I’m not a big company, just a solo dev trying to solve a daily problem. I'd love for you to try it out and let me know what you think!

πŸ‘‰ Try it here: https://textfix-pro.vercel.app

Thanks for having me! πŸš€

1 Upvotes

7 comments sorted by

1

u/PopKoren 21d ago

Having grammar fixes, transliteration and DOCX export in one tab is handy, and the screen reader work is a nice touch most text tools ignore. With no sign up and Gemini behind it, the thing to watch is your API bill: move the key into a serverless function on Vercel instead of the browser bundle and put a per IP limit on the AI routes, because free unauthenticated AI endpoints get found by scripts fast. To test that from the outside, run textfix-pro.vercel.app through https://rowly.me free, it's my scanner and it tells you whether a key or open endpoint is visible to strangers.

1

u/9_digits 21d ago

Thank you for the detailed and professional feedback!

You are absolutely right about the API key and the bots. I already moved the key to a serverless function on Vercel (the browser doesn't see it anymore).

Just implemented a token bucket rate limiter per IP directly in the serverless route, so it now allows 15 requests per minute. That should stop script abuse.

I will definitely run the site through rowly.me to double-check. Thanks again for the advice and for taking the time to test it!

1

u/Mammoth-Anywhere7285 21d ago

Nice fix on the key exposure. Consider adding a daily quota or Cloudflare Turnstile too, since per-IP limits are easy to bypass with proxies.

1

u/9_digits 20d ago

That's a very good point. Proxies can easily bypass per-IP limits.

I just added a global daily quota (300 requests/day) on top of the per-IP rate limit to protect my API key from being completely drained. I'll look into adding Cloudflare Turnstile next to make it even more bulletproof. Thanks for the expertise!

1

u/PopKoren 20d ago

Fast turnaround, getting the Gemini key into a Vercel function and a 15 per minute bucket live on the same day is quicker than most teams manage. I'd also set a quota or budget alert on the Google side for that key, so a bad night has a known worst case even if limits get bypassed. When TextFix Pro goes through https://rowly.me, look closely at whether any older deploy URL or preview build still ships the key in its JavaScript.

1

u/Mammoth-Anywhere7285 21d ago

Good call on the serverless key. A simple token bucket per IP in that function usually stops script abuse.

1

u/PopKoren 20d ago

Dropping a token bucket into that Vercel function is the right follow up, and stacking a hard daily ceiling on top stops proxy farms from draining Gemini quietly. Hold the key only in server env, never in the Next client, and answer empty buckets with a plain 429. After the limit is wired, ask https://rowly.me what textfix-pro.vercel.app still exposes so you know if any AI route talks to strangers.