Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
A single-page personal portfolio built with Svelte, running on Val Town.
Val Town has no build step, so the Svelte component is compiled in the
browser at runtime: app.js fetches Portfolio.svelte, runs it through the
Svelte compiler (loaded from a CDN), and mounts the result into the page.
- Header with a sticky nav (About · Projects · Contact)
- Hero banner with an inline-SVG dusk landscape and intro text
- About section for writing about yourself
- Projects grid (rendered from a list with
{#each}) - Contact section with email and social links
| File | What to change |
|---|---|
Portfolio.svelte | Everything — your bio, project list, contact info, and all styling (in the <style> block). Theme colors live in the :root variables. |
index.html | The mount shell (fonts + <div id="app">). Rarely needs changes. |
app.js | The runtime Svelte compiler/loader. No need to touch it. |
favicon.svg | The browser-tab icon. |
main.tsx | The HTTP server. Serves the static files and the /source redirect. |
To add a project, edit the projects array in Portfolio.svelte. Every save
deploys instantly.
Rendering mermaid diagram...