Migration Plan: Merge maps-scraper-pro into google-maps-scraper banner
gosom gosom

Migration Plan: Merge maps-scraper-pro into google-maps-scraper

Git community intermediate

Description

Migration Plan: Merge maps-scraper-pro into google-maps-scraper skill

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for gosom/google-maps-scraper, shared by 5 entries in this directory. It describes the repository, not this entry specifically.

Migration Plan: Merge maps-scraper-pro into google-maps-scraper

Context

`maps-scraper-pro` is a SaaS layer built on top of `google-maps-scraper`. It adds a REST API, admin dashboard, River job queue, cloud provisioning, and multi-user auth. Both repos are open source and being merged into a single module (`github.com/gosom/google-maps-scraper`) with one `go.mod`. SaaS packages are merged INTO existing packages where they overlap, and added as new top-level packages where they don't.


Final Directory Layout

google-maps-scraper/
  # Existing packages — extended, not replaced
  gmaps/              ← unchanged
  runner/             ← unchanged
  web/                ← unchanged
  webdata/            ← unchanged
  postgres/           ← extended: SaaS Connect/pgxpool merged in as pool.go
  deduper/            ← unchanged
  exiter/             ← unchanged
  leadsdb/            ← unchanged
  s3uploader/         ← unchanged
  tlmt/               ← unchanged
  main.go             ← unchanged (existing CLI)

  # New packages from SaaS layer (no overlap with existing)
  admin/              ← admin dashboard, templates/, static/ (embedded)
  api/                ← REST API + api/docs/ (swagger, embedded)
  cli/                ← CLI prompt/UI utilities
  cryptoext/          ← encryption utilities
  env/                ← environment variable handling
  httpext/            ← HTTP utilities & middleware
  infra/              ← cloud provisioning (digitalocean, hetzner, planetscale, vps, cloudinit)
  log/                ← structured logging
  migrations/         ← SQL migrations (embedded *.sql files)
  saas/               ← root constants (package saas, env var names)
  ratelimit/          ← rate limiting + ratelimit/postgres
  rqueue/             ← River job queue integration
  scraper/            ← scraper manager (provider, writer, lifecycle)

  # New binary
  cmd/
    gmapssaas/        ← SaaS binary (serve, worker, provision, update, admin subcommands)

  go.mod              ← merged single go.mod
  # go.work + go.work.sum → DELETED

Steps

1. Create a feature branch

git checkout -b feature/merge-saas

2. Delete go.work and go.work.sum

The existing `go.work` only contains `use .` and is no longer needed.

3. Copy packages from maps-scraper-pro

PRO=/home/giorgos/Development/github.com/gosom/maps-scraper-pro
DST=/home/giorgos/Development/github.com/gosom/google-maps-scraper

# Merge SaaS postgres into existing postgres/ (add as a new file, same package)
cp $PRO/postgres/postgres.go $DST/postgres/pool.go

# New packages (no overlap — recursive copy includes embedded assets)
cp -r $PRO/admin       $DST/admin
cp -r $PRO/api         $DST/api
cp -r $PRO/cli         $DST/cli
cp -r $PRO/cryptoext   $DST/cryptoext
cp -r $PRO/env         $DST/env
cp -r $PRO/httpext     $DST/httpext
cp -r $PRO/infra       $DST/infra
cp -r $PRO/log         $DST/log
cp -r $PRO/migrations  $DST/migrations
cp -r $PRO/ratelimit   $