DEV Community

James Don
James Don

Posted on • Originally published at jamesdon.hashnode.dev

I Built a Social Media Downloader and Got 169 Keywords Indexed in 7 Days

Last week I launched SaveKit — a free tool to download videos and images from Pinterest, Instagram, Facebook, and TikTok (first MVP).

savekit home page

No login. No watermark. Just paste a link and save.
I wasn't sure if anyone would care. Turns out, they did.

The numbers after 7 days

  • 157 → 668 daily visitors (4x growth)
  • 169 organic keywords indexed on Google
  • Position 1 for "download video from facebook"
  • Ranking in 5 languages already (English, Spanish, Portuguese, Turkish, Vietnamese)

I didn't run a single ad. Here's what I did instead.

cloudflare analytics

Why I built this

I kept running into the same problem — wanting to save a Pinterest image or a TikTok video, and every tool out there was either full of ads, required an account, or tried to install something sketchy.

So I built my own. The goal was simple: paste a URL, get your content. Nothing else.

The tech stack

I went with what I know and what ships fast:

  • SvelteKit 2 with Svelte 5 (runes) for the frontend
  • Cloudflare Workers / Pages for hosting (edge-rendered, fast globally)
  • Tailwind CSS v4 + shadcn-svelte for UI
  • TypeScript in strict mode everywhere
  • pnpm monorepo — shared packages for config, UI components, utils, i18n

The whole thing is a monorepo with the downloader app, a blog (Astro), and shared packages. Each package owns its own types, tests, and build — no global build step needed.

The SEO approach that actually worked

This is where it gets interesting. Instead of launching in English only and "going international later," I launched with 10 locales from day one:

English, Spanish, Portuguese, Indonesian, Turkish, Vietnamese, Japanese, Korean, German, and French.

Why these? I looked at what competitors like ssstik.io and snaptik.app were doing. They all have multi-language support, and they all rank for native-language keywords.

Some things I learned:

Native verbs beat English everywhere. In Portuguese, "baixar" (download) gets way more searches than "download." Same for Spanish ("descargar"), Turkish ("indir"), and Vietnamese ("tải"). Sounds obvious, but most tools just translate the UI and keep English SEO keywords.

"Without watermark" is the #1 keyword modifier globally. Every locale, every platform. People searching for downloaders almost always add "without watermark" or "no watermark" to their query.

Short forms beat full names in CJK languages. Japanese users search "インスタ" not "インスタグラム". Korean users search "인스타" not "인스타그램". Matching how people actually type matters more than being formally correct.

Vanity words are worthless. Nobody searches "safe video downloader" or "best free downloader." I checked autocomplete for every locale — "safe," "secure," and "best" never appear. Don't waste title characters on them.

What I'd do differently

Honestly, not much. Launching with multi-locale SEO from day one was the right call. The keywords are already diversified across languages, which means I'm not competing for the same 10 English keywords as everyone else.

If anything, I'd start building backlinks earlier. Right now I only have one (from Product Hunt). Content marketing and community posts like this one are the next step.

What's next

  • More platforms (X support is the most requested)
  • More sub-pages per platform (Instagram Reels, Stories, etc.)
  • Better caching and CDN optimization
  • Writing more about the technical side (structured data, JSON-LD schemas, Core Web Vitals optimization)

If you want to try it: savekit.io

If you're building something similar and want to chat about multi-locale SEO or SvelteKit on Cloudflare, drop a comment — happy to share what I've learned.

Top comments (2)

Collapse
 
eoinmcg profile image
Eoin McGrath

Great write up, thanks for sharing! Curious how you handled the translations; was it just a case of passing everything through google translate?

Also, do you plan to monetize?

Collapse
 
jamesdon68 profile image
James Don

Thanks for your question, Eoin!

Not just Google Translate. I researched keywords per locale using Google Autocomplete to find what people actually search in their language. For example, Portuguese users search "baixar," not "download." Machine
translation misses those patterns. I'll write a deeper post about the i18n approach soon.

For monetization, it's free for now. Maybe freemium later (batch downloads, higher quality). No ads though; that's the whole reason I built this.