⬅ writing

Hello World 👋

Cool, you made it! Welcome to my website, I hope you like what you've seen so far. Continue reading if you'd like to kow more about it.

Of course, I'm most excited about trying out (and loving) svelte. I highly recommend checking it out - the interactive tutorial is perfect to get your feet wet, with no setup whatsoever.

Enter Svelte

SvelteKit is a framework on top of svelte like next.js is a framework based on react - to put it simply. It comes "batteries included" and still manages to come across as something with a very small surface area.

If you want to try it out yourself, this is how you get started:

# in your terminal
npm init svelte@next my-app
cd my-app
npm install
npm run dev -- --open

Goodies

One of the best parts about working with svelte is it's ease of use. After years of working with nuxt/vue.js, I always valued the fact that state-management and routing were "first-party" - unlike in react-land, where you can find, mix and match packages however you choose. And there is a lot to chose from.

Svelte takes things a bit further. Because everything gets "compiled away", they even provide first-party animation classes. No additional dependencies required, this is how my name gets animated on the homepage:

import { onMount } from 'svelte' // lifecycle
import { fly } from 'svelte/transition' // transition
import { spring } from 'svelte/motion' // spring-animation

const sizeSpring = spring(0)

onMount(() => {
    mounted = true

    setTimeout(() => {
        sizeSpring.set(13)
    }, 700)
})

The mounted variable will make sure that our letters get appended to the DOM after the component has mounted. Within the markup, we can now setup events on the svg element similar to a lot of other current frameworks.

<svg
    on:mousedown={() => size.set(64)}
    on:mouseup={() => size.set(32)}
  >
    <g class="firstname">
      {#if mounted}
        <path
          in:fly={{ y: -20, delay: 0 }}
          d="M14.36 68.4C14.36 61.52 15.6..."
        />
      {/if}
    </g>
</svg>

As you can see - it's pretty simple to understand if you know basic javascript and a few concepts from single page applications. Plus, I didn't even have to install anything, and I can trust the compiler, that only the code that is "needed", actually gets send to the client.

So far, I'm having a blast trying out svelte - I even made a "full app" with it - it's called BackyTracky and you can check it out here.

Further Information

If you want to know more about svelte, I highly recommend watching this talk by Richard Harris, the creator of svelte himself.