Three weeks ago, I sat down with a codebase that had grown like a garden left untended. Features worked, but they were duct-taped together. The domain name no longer reflected what we actually did. Dependencies were outdated. The deployment process involved SSHing into a server and hoping.

So I did what every developer secretly wants to do: I burned it down and started fresh.

The Migration: icenitech to PrasutagusAI

The old name served its purpose, but it was generic. PrasutagusAI actually says something — AI, coding, security. It is specific. It is memorable. It is ours.

Renaming a live site is not just find-and-replace. It is database records, SSL certificates, mailserver configs, DNS records, systemd services, nginx blocks, and template variables. Every single reference has to be audited. One missed hardcoded URL and a user hits a broken link.

What We Did Differently This Time

1. Security First, Not Later

On the old site, admin login was a single password with no rate limiting. This time:

  • TOTP two-factor authentication
  • Password reset via secure email tokens
  • Rate limiting on every sensitive endpoint
  • Security headers enforced at the nginx level

2. Own the Infrastructure

Instead of relying on third-party email APIs, we run our own mailserver. DKIM, SPF, DMARC — all configured and verified. Emails to Gmail land in inboxes, not spam folders.

3. Content as Code

Tutorials are stored in the database, but they are written like software: structured HTML, semantic headings, code blocks with language tags, SEO metadata. Every post has a slug, keywords, and a canonical URL. The sitemap is generated dynamically.

4. No Placeholder Pages

I have a rule now: if a page is not ready, it does not get a nav link. Empty pages with "notify me" forms are dishonest. They waste crawl budget and break user trust. We launched with four real tutorials. That is better than twenty promised ones.

The Stack

LayerChoice
FrameworkFlask + Jinja2
DatabaseSQLite (PostgreSQL when warranted)
ServerNginx to Gunicorn on Ubuntu 24.04
SSLLet's Encrypt (auto-renewal)
MailDocker Mailserver
AnalyticsPlausible (privacy-first)

What Is Next

This site is a foundation, not a finished product. The Content Center tools are live. The tutorials are real. The infrastructure is solid. Now the work is content: more tutorials, more tools, more value.

If you are reading this because you are considering a rebuild of your own — do it. The fear of breaking what works is real, but the cost of maintaining technical debt is higher.