Personal Website Resume
Publishedpersonal-website-resume
I built my personal site as a Svelte/SvelteKit app with TypeScript end-to-end so every component, API route, and form has static types and autocomplete. Svelte drives the UI with minimal runtime and fine-grained reactivity, while GSAP handles the motion design—the hex-grid background, section reveals, and subtle hover/scroll animations—kept on a lightweight timeline so animations stay buttery at 60 fps.
For content and data, I use PostgreSQL hosted on NeonDB (serverless Postgres with fast branching). Drizzle ORM gives me a schema-first, type-safe layer on top: I define tables and relations in TypeScript, run migrations from those definitions, and get fully typed queries back in my load functions and server actions. That lets me model projects, experience, skills, and blog content without hand-written SQL, while still producing efficient queries.
Authoring happens directly in the site via TipTap Editor (a rich-text editor built on ProseMirror). I wired TipTap to save clean HTML/JSON to Postgres through my SvelteKit endpoints, so I can draft and update sections like “About Me” and project write-ups in place. Authentication is provided by better-auth, which manages sessions/tokens for my admin area; protected routes gate editing and data-mutation actions. All together, Svelte + TypeScript shape the UX, GSAP brings it to life, better-auth secures it, and Drizzle ORM + NeonDB power a modern, type-safe data layer for a smooth, maintainable personal website.
<script>
console.log("Hello World")
</script>