Ethan Hurst

Welcome to My Developer Hub

Ethan Hurst 2 min read

A New Beginning

After years of building projects and learning new technologies, I’ve finally created a central hub to share my journey. This site serves as both a polished blog for technical articles and a digital garden for evolving notes and experiments.

What I’m Building With

This site is built with modern web technologies that I’m excited to explore:

interface TechStack {
	framework: 'SvelteKit';
	styling: 'Tailwind CSS v4';
	markdown: 'MDSveX';
	highlighting: 'Shiki';
	hosting: 'Netlify';
}

const myStack: TechStack = {
	framework: 'SvelteKit',
	styling: 'Tailwind CSS v4',
	markdown: 'MDSveX',
	highlighting: 'Shiki',
	hosting: 'Netlify'
};

Why Svelte 5?

Svelte 5 introduces runes, a revolutionary approach to reactivity. Instead of using let/const assignments for reactivity, we now have explicit primitives like $state and $derived. This makes the reactive model more predictable and composable.

// Svelte 5 runes syntax
let count = $state(0);
let doubled = $derived(count * 2); 

function increment() {
	count++;
}

The Power of MDSveX

MDSveX lets me write markdown that compiles to Svelte components. This means I can embed interactive demos directly in blog posts:

  • Full TypeScript support
  • Syntax highlighting with dual light/dark themes
  • GitHub Flavored Markdown (GFM)
  • Auto-linked headings for easy navigation

What’s Next

Here’s what I’m planning to explore and write about:

  1. Advanced SvelteKit patterns - Server-side rendering, streaming, and progressive enhancement
  2. TypeScript best practices - Type-safe APIs, branded types, and advanced inference
  3. Developer tooling - Building CLI tools, editor integrations, and automation
  4. Architecture decisions - Real-world tradeoffs in system design

Deployment Setup

Getting this deployed to Netlify was straightforward:

# Install the Netlify adapter
npm install -D @sveltejs/adapter-netlify

# Build for production
npm run build

# Netlify auto-deploys on git push
git push origin main

The site uses hybrid SPA routing with a fallback to 200.html, which means client-side navigation works while maintaining deep linking support.

Let’s Connect

I’m excited to share this journey. Whether you’re here for technical deep-dives or casual notes from my digital garden, welcome aboard.

More posts coming soon.