I used ServerPress to design my blog theme. It setups a fake server on your desktop so your browser essentially thinks it’s a live site. Once I’m happy with how the theme looks and works, I can upload that theme to any WordPress site.
Next, I would upload the new theme on the new live site and import the old site’s contents including the media files. It’s a PIA to do, but that’s how I’d go about it.