higaindesign.com Transfer Checklist

From: Netfirms
To: Porkbun (domain + email) + Cloudflare (DNS + hosting)


Final Setup Overview

Function Provider Cost
Domain registration Porkbun ~$10/yr
Email hosting Porkbun $24/yr
DNS Cloudflare Free
Website hosting Cloudflare Pages Free
Code repository GitHub Free

Total: ~$34/year


Phase 1: Backup Email (Do This First)

Email will stop working during the transition. Download everything now.

Install Thunderbird

  • Download from https://www.thunderbird.net
  • Install and open

Add Your Netfirms Email Account

  • File → New → Existing Mail Account
  • Enter your name, email address, and password
  • If auto-detect fails, use manual settings:
Setting Incoming (IMAP) Outgoing (SMTP)
Server mail.higaindesign.com mail.higaindesign.com
Port 993 465
Security SSL/TLS SSL/TLS
Username your full email address your full email address

Download All Email

  • Wait for all folders to fully sync (watch status bar at bottom)
  • Verify Inbox, Sent, Drafts, etc. are all synced

Export Backup

  • Tools → Add-ons → Search “ImportExportTools NG” → Install
  • Restart Thunderbird
  • Right-click Inbox → ImportExportTools NG → Export all messages → MBOX format
  • Repeat for Sent, Drafts, and any other folders
  • Save exports somewhere safe

Phase 2: Prepare at Netfirms

Check Domain Eligibility

  • Domain is at least 60 days old
  • Domain has not been transferred in the last 60 days
  • Domain is not expired

Unlock the Domain

  • Log into Netfirms (https://www.netfirms.com)
  • Go to Domain Manager or My Domains
  • Click on higaindesign.com
  • Find Domain Lock / Transfer Lock / Registrar Lock
  • Turn it OFF

Get Authorization Code

  • In the same domain settings area, find Authorization Code / EPP Code / Transfer Key
  • Click to request it
  • Netfirms will either display it or email it to you
  • Save this code – you need it for Porkbun

Verify Contact Email

  • Check that the registrant email on file is accessible
  • You’ll receive confirmation emails there

Authorization Code: _________________________________


Phase 3: Transfer Domain to Porkbun

Start the Transfer

  • Go to https://porkbun.com/transfer
  • Enter: higaindesign.com
  • Click Search / Transfer

Complete the Transfer

  • Paste your Authorization Code when prompted
  • Pay (~$10, includes 1 year renewal)
  • Check email for Porkbun confirmation

Approve at Netfirms

  • Check your registrant email inbox (and spam)
  • Look for email from Netfirms asking to approve/deny transfer
  • Click the link and APPROVE

Note: If you don’t approve manually, transfer auto-completes in 5-7 days

Wait for Completion

  • Wait for completion email from Porkbun (typically 1-7 days)

Transfer completed on: _____________


Phase 4: Set Up Porkbun Email

Purchase Email Hosting

  • Log into Porkbun
  • Go to https://porkbun.com/products/email
  • Or: Domain Management → click email icon next to higaindesign.com
  • Select email hosting plan ($24/year)
  • Complete purchase

Create Your Mailbox

  • In Porkbun dashboard, go to Email Hosting settings
  • Create mailbox: info@higaindesign.com (or preferred address)
  • Set a strong password
  • Note the password somewhere safe

Email address: _______________________@higaindesign.com

Password: _________________________________

Note Email Server Settings

You’ll need these for your email app:

Setting Incoming (IMAP) Outgoing (SMTP)
Server mail.porkbun.com mail.porkbun.com
Port 993 465
Security SSL/TLS SSL/TLS
Username your full email address your full email address

Access Email

Option A: Webmail

  • Go to https://webmail.porkbun.com
  • Log in with your full email address and password

Option B: Email App (Outlook, Thunderbird, phone)

  • Add account using IMAP settings above

Import Old Email (Optional)

  • In Thunderbird, add your new Porkbun email account
  • Drag and drop emails from old account to new account
  • Or: Right-click folder → ImportExportTools NG → Import mbox file

Phase 5: Set Up Cloudflare Account

Create Cloudflare Account

  • Go to https://dash.cloudflare.com/sign-up
  • Create free account

Add Your Domain

  • Click “Add a site”
  • Enter: higaindesign.com
  • Select Free plan
  • Click Continue

Note Your Cloudflare Nameservers

Cloudflare will assign you two nameservers. Write them down:

Nameserver 1: ___________________________________.ns.cloudflare.com

Nameserver 2: ___________________________________.ns.cloudflare.com


Phase 6: Point Porkbun to Cloudflare Nameservers

Change Nameservers at Porkbun

  • Log into Porkbun
  • Go to Domain Management
  • Click on higaindesign.com (or the “DNS” link next to it)
  • Find Nameservers section
  • Click “Edit” or change to custom nameservers
  • Delete existing nameservers
  • Enter Cloudflare Nameserver 1
  • Enter Cloudflare Nameserver 2
  • Save

Verify in Cloudflare

  • Go back to Cloudflare dashboard
  • Wait for Cloudflare to detect the nameserver change (can take a few minutes to 24 hours)
  • Status will change from “Pending” to “Active”

Cloudflare activated on: _____________


Phase 7: Configure DNS in Cloudflare

Access DNS Settings

  • In Cloudflare dashboard, click higaindesign.com
  • Go to DNS → Records

Add Email Records (MX)

Add these MX records for Porkbun email:

Type Name Mail Server Priority Proxy
MX @ mail.porkbun.com 10 DNS only

Add Email Records (TXT for SPF)

Type Name Content
TXT @ v=spf1 include:_spf.porkbun.com ~all

Website Records

You’ll add these after connecting GitHub to Cloudflare Pages (Phase 9).


Phase 8: Create GitHub Repository

Set Up Repository

  • Go to https://github.com
  • Create account if needed
  • Click “+” → New repository
  • Name: higaindesign-website
  • Make it Public (required for free Cloudflare Pages)
  • Check “Add a README file”
  • Click “Create repository”

Add Basic Jekyll Site Files

Create these files in your repository:

_config.yml

title: HiGain Design Services
description: PCB layout and design services
baseurl: ""
url: "https://higaindesign.com"
markdown: kramdown

index.md

---
layout: default
title: Home
---

# HiGain Design Services

PCB layout and design services with over 30 years of experience.

## Services

- Printed circuit board layout
- Symbol library generation and maintenance
- Engineering support and design
- Electronic equipment packaging

## Contact

Phone: (770) 921-3129

Email: info@higaindesign.com

_layouts/default.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>higaindesign.com Transfer Checklist | Actual - Proof of Work</title>
  <style>
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
      line-height: 1.6;
      max-width: 800px;
      margin: 0 auto;
      padding: 2rem;
      color: #333;
    }
    h1, h2 { color: #1a1a1a; }
    a { color: #0066cc; }
  </style>
</head>
<body>
  <article class="post">

  <header class="post-header">
    <h1 class="post-title">Zettelkasten UI (GitHub Pages)</h1>
  </header>

  <div class="post-content">
    <h1 id="zettelkasten-ui-github-pages">Zettelkasten UI (GitHub Pages)</h1>

<p>This repository publishes a browser-only Zettelkasten reader at <code class="language-plaintext highlighter-rouge">/zettelkasten/</code>.
It runs entirely on GitHub Pages and pulls markdown straight from <code class="language-plaintext highlighter-rouge">zettels/&lt;year&gt;/&lt;yyyymm&gt;/&lt;id&gt;.md</code>—no CLI or backend services required.</p>

<h2 id="how-it-works">How it works</h2>
<ul>
  <li>The page <code class="language-plaintext highlighter-rouge">pages/zettelkasten.md</code> loads <code class="language-plaintext highlighter-rouge">/assets/data/zettelkasten-index.json</code> for a fast first pass, then can rebuild the list live from GitHub on demand.</li>
  <li>A small inline markdown renderer in <code class="language-plaintext highlighter-rouge">assets/js/zettelkasten.js</code> handles headings, lists, emphasis, blockquotes, links, and inline code without external dependencies.</li>
  <li>Styling lives in <code class="language-plaintext highlighter-rouge">assets/css/zettelkasten.css</code> to avoid conflicts with the rest of the site.</li>
  <li>Quick authoring hooks are wired directly to GitHub: the <strong>New note</strong> button opens a pre-filled <code class="language-plaintext highlighter-rouge">zettels/&lt;year&gt;/&lt;yyyymm&gt;/&lt;id&gt;.md</code> draft in the repo’s <code class="language-plaintext highlighter-rouge">main</code> branch, and the <strong>Edit selected</strong> link jumps to the GitHub editor for the currently selected note.</li>
</ul>

<p>Use the <strong>Refresh</strong> button after removing, renaming, or adding a note. It will pull a fresh list from GitHub if the static index hasn’t caught up and keep your place while reselecting the closest available entry. The deck controls below the viewer let you step forward/backward through the loaded set without exposing a long list.</p>

<p>Open the <strong>Card Catalog</strong> (button or <kbd>Ctrl/Cmd</kbd>+<kbd>K</kbd>) to search titles, full text, and tags without disturbing the main viewer. Check one or more tags to narrow results, navigate with the arrow keys, and hit <kbd>Enter</kbd> to open the focused card in the existing reader.</p>

<h2 id="zettel-layout">Zettel layout</h2>
<ul>
  <li>Notes live under <code class="language-plaintext highlighter-rouge">zettels/&lt;year&gt;/&lt;yyyymm&gt;/&lt;id&gt;.md</code> (e.g., <code class="language-plaintext highlighter-rouge">zettels/2025/202511/251115_example.md</code>).</li>
  <li>A starter template is available at <code class="language-plaintext highlighter-rouge">templates/zettel_template.md</code>.</li>
  <li>Maps of Content live in <code class="language-plaintext highlighter-rouge">MOCs/</code> and binaries live in <code class="language-plaintext highlighter-rouge">attachments/</code>.</li>
</ul>

<h2 id="updating-the-index">Updating the index</h2>
<p>Run the helper script whenever you add or rename files in <code class="language-plaintext highlighter-rouge">zettels/</code>:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>node scripts/build-zk-index.js
</code></pre></div></div>

<p>The script scans <code class="language-plaintext highlighter-rouge">zettels/**.md</code>, extracts the first heading as the title, captures a short excerpt, and writes the fresh index to
<code class="language-plaintext highlighter-rouge">assets/data/zettelkasten-index.json</code> for the UI to consume.</p>

  </div>

</article>

</body>
</html>
  • Files created in GitHub repository

Phase 9: Set Up Cloudflare Pages

Connect to GitHub

  • In Cloudflare dashboard, go to Workers & Pages
  • Click “Create application”
  • Select “Pages”
  • Click “Connect to Git”
  • Authorize Cloudflare to access your GitHub
  • Select your higaindesign-website repository

Configure Build Settings

  • Framework preset: Jekyll
  • Build command: jekyll build
  • Build output directory: _site
  • Click “Save and Deploy”

Wait for Initial Build

  • Cloudflare builds and deploys your site
  • Note your pages.dev URL: higaindesign-website.pages.dev (or similar)

Pages.dev URL: _________________________________

Add Custom Domain

  • In your Pages project, go to Custom domains
  • Click “Set up a custom domain”
  • Enter: higaindesign.com
  • Click Continue
  • Cloudflare automatically adds DNS records
  • Repeat for: www.higaindesign.com

Verify Site is Live

  • Visit https://higaindesign.com
  • Visit https://www.higaindesign.com
  • Both should show your site with HTTPS

Phase 10: Final Verification Checklist

Domain

  • higaindesign.com is registered at Porkbun
  • Nameservers point to Cloudflare

DNS

  • Cloudflare shows domain as “Active”
  • MX records point to mail.porkbun.com
  • CNAME records point to Cloudflare Pages

Website

  • https://higaindesign.com loads your site
  • https://www.higaindesign.com loads your site
  • HTTPS is working (padlock icon)

Email - Receiving

  • Send test email to info@higaindesign.com
  • Check webmail at https://webmail.porkbun.com
  • Email arrives in inbox

Email - Sending

  • Log into webmail
  • Compose and send test email to a friend
  • Confirm they receive it from @higaindesign.com

Email - App Access (Optional)

  • Add account to phone email app using IMAP settings
  • Verify send and receive works

Ongoing Maintenance

Updating the Website

  1. Edit markdown files in GitHub (or clone locally, edit, push)
  2. Cloudflare automatically rebuilds and deploys
  3. Changes go live in ~1-2 minutes

Checking Email

  • Webmail: https://webmail.porkbun.com
  • Or use any email app with IMAP

Renewals

  • Domain (~$10/yr) – renews at Porkbun
  • Email ($24/yr) – renews at Porkbun
  • Cloudflare – Free, no renewal needed

Troubleshooting

DNS Not Propagating

  • Check at https://www.whatsmydns.net
  • Can take up to 48 hours (usually much faster)
  • Clear browser cache / try incognito

Email Not Working

  • Verify MX records in Cloudflare DNS point to mail.porkbun.com
  • Check SPF TXT record exists
  • Verify mailbox is created in Porkbun

Site Not Loading

  • Check Cloudflare Pages deployment status
  • Verify custom domain is added in Pages settings
  • Check for build errors in Cloudflare dashboard
  • Make sure _config.yml has no syntax errors

Build Failing

  • Check Cloudflare Pages build logs
  • Common issues: missing _config.yml, bad YAML syntax, missing layout files

Quick Reference

Porkbun Login

  • URL: https://porkbun.com
  • For: Domain management, email hosting

Cloudflare Login

  • URL: https://dash.cloudflare.com
  • For: DNS, website hosting

GitHub Login

  • URL: https://github.com
  • For: Website content (markdown files)

Webmail

  • URL: https://webmail.porkbun.com
  • For: Checking email in browser

Email Settings (for apps)

| | Value | |–|——-| | IMAP Server | mail.porkbun.com | | IMAP Port | 993 | | SMTP Server | mail.porkbun.com | | SMTP Port | 465 | | Security | SSL/TLS | | Username | full email address |


Timeline Estimate

Phase Duration
Backup email 30 min - 2 hours
Prepare Netfirms 10 minutes
Porkbun transfer initiation 10 minutes
Transfer completion 1-7 days
Porkbun email setup 15 minutes
Cloudflare setup 15 minutes
DNS propagation 15 min - 48 hours
GitHub + Cloudflare Pages 30 minutes

Total active work: ~2 hours
Total elapsed time: 2-8 days (mostly waiting for transfer)