Setup and Migration Guide
This guide will walk you through setting up the LaHave website on GitHub Pages and migrating from Squarespace.
Prerequisites
- GitHub Account: Create one at github.com if you don’t have one
- Ruby: Install Ruby 2.7+ from RubyInstaller (Windows) or use your system’s package manager
- Git: Already installed (verified)
Step 1: Create GitHub Repository
- Go to GitHub and sign in
- Click the “+” icon in the top right, then “New repository”
- Name it
lahave-website(orlahave.github.ioif you want the shorter URL) - Make it Public
- Check “Add a README file”
- Click “Create repository”
Step 2: Connect Local Repository to GitHub
After creating the repository on GitHub, run these commands in your terminal (from this project directory):
git add .
git commit -m "Initial Jekyll site setup"
git branch -M main
git remote add origin https://github.com/YOUR_USERNAME/lahave-website.git
git push -u origin main
Replace YOUR_USERNAME with your GitHub username.
Step 3: Install Jekyll Dependencies
- Install Ruby (if not already installed)
- Install Jekyll and Bundler:
gem install jekyll bundler - Install project dependencies:
bundle install
Step 4: Customize Content
Update Site Information
Edit _config.yml to update:
- Site title and description
- Navigation menu items
- Formspree endpoint (after Step 5)
Migrate Content from Squarespace
- Visit your current Squarespace site at lahave.io
- For each page:
- Copy the content
- Update the corresponding file (e.g.,
index.html,about.md) - Add any additional pages as needed
- Update styling in
assets/css/main.scss:- Adjust colors to match your brand
- Update fonts if needed
- Modify layout as necessary
- Add images:
- Place images in
assets/images/ - Reference them in your pages using:
/assets/images/filename.jpg
- Place images in
Step 5: Set Up Formspree
- Go to Formspree.io and create a free account
- Click “New Form”
- Give it a name (e.g., “LaHave Contact Form”)
- Copy the form endpoint URL (looks like
https://formspree.io/f/xxxxx) - Update
_config.yml:formspree_endpoint: "xxxxx" # Just the ID part, not the full URL - Update
contact.html- the form action will automatically use the endpoint from_config.yml
Step 6: Test Locally
Run the Jekyll development server:
bundle exec jekyll serve
Visit http://localhost:4000 to preview your site.
Test:
- All pages load correctly
- Navigation works
- Contact form submits successfully
- Responsive design on mobile
Step 7: Deploy to GitHub Pages
- Push your changes to GitHub:
git add . git commit -m "Update content and styling" git push - Enable GitHub Pages:
- Go to your repository on GitHub
- Click “Settings”
- Scroll to “Pages” in the left sidebar
- Under “Source”, select “Deploy from a branch”
- Choose “main” branch and “/ (root)” folder
- Click “Save”
- Wait a few minutes for GitHub to build your site
- Your site will be available at:
https://YOUR_USERNAME.github.io/lahave-website/
Step 8: Configure Custom Domain (When Ready)
In GitHub:
- The
CNAMEfile is already created withwww.lahave.io - In your repository Settings > Pages, enter your custom domain:
www.lahave.io - GitHub will verify the domain
In Squarespace/DNS Provider:
Update your DNS records:
A Records (for root domain lahave.io):
- Host:
@ - Points to:
185.199.108.153 -
TTL: 3600
- Host:
@ - Points to:
185.199.109.153 -
TTL: 3600
- Host:
@ - Points to:
185.199.110.153 -
TTL: 3600
- Host:
@ - Points to:
185.199.111.153 - TTL: 3600
CNAME Record (for www subdomain):
- Host:
www - Points to:
YOUR_USERNAME.github.io - TTL: 3600
DNS Propagation
- DNS changes can take 24-48 hours to propagate
- Use whatsmydns.net to check propagation status
- Test your site at both
lahave.ioandwww.lahave.io
Step 9: Final Verification
Once DNS has propagated:
- Visit
https://www.lahave.ioand verify all pages load - Test the contact form in production
- Check mobile responsiveness
- Verify all links work correctly
- Test site speed and performance
Troubleshooting
Jekyll won’t start
- Ensure Ruby is installed:
ruby --version - Reinstall dependencies:
bundle install
GitHub Pages build fails
- Check the “Actions” tab in your repository for build errors
- Ensure
_config.ymlis valid YAML - Verify all required files are committed
Form not working
- Verify Formspree endpoint is correct in
_config.yml - Check Formspree dashboard for submission logs
- Ensure form action URL is correct in
contact.html
DNS not working
- Wait 24-48 hours for propagation
- Verify DNS records are correct
- Check that CNAME file is in the repository root
Additional Resources
- Jekyll Documentation
- GitHub Pages Documentation
- Formspree Documentation
- Jekyll Themes (if you want to change the design)