This Website - Full-Stack Portfolio Platform
Software • Entrepreneurship
A full-stack SvelteKit portfolio platform built to production standards - featuring a server-side RBAC security model, Drizzle ORM with a self-hosted PostgreSQL database, Docker-containerised deployment, session-based authentication, and multilingual i18n support across five languages.
Overview
A full-stack personal portfolio and project management platform developed with SvelteKit, TypeScript, and Tailwind CSS. The application is hosted in a Docker-containerised environment backed by a self-managed PostgreSQL database, providing full control over the data layer and deployment pipeline without reliance on third-party managed services. Security is implemented through a custom RBAC (Role-Based Access Control) system built with Drizzle ORM, structuring permissions at the role level and enforcing access server-side via SvelteKit hooks and server load functions - for example, gating admin pages and unpublished content behind authentication guards. Session management is handled server-side using signed cookies, with validation and renewal occurring in the request hook chain on every request. The frontend uses Flowbite-Svelte for accessible, consistent UI components, with full dark/light mode support and responsive layouts throughout. Internationalisation is powered by Paraglide JS, supporting five languages: English, German, Spanish, French, and Mandarin. Per-route SEO meta tags are applied across all public pages. Project content is structured to support progressive expansion into full engineering case studies, with fields for problem definition, approach, outcomes, and reflections.
Tasks
- Frontend DevelopmentIn Progress
Build the full frontend using SvelteKit, Tailwind CSS, and Flowbite-Svelte, including responsive layouts, dark mode, and component architecture.
- Backend & API LayerIn Progress
Develop server-side load functions, form actions, and API endpoints using SvelteKit's server-side capabilities and Drizzle ORM.
- Authentication SystemCompleted
Implement session-based authentication with server-side cookie management via SvelteKit hooks, including login, logout, and session renewal.
- RBAC Security ModelCompleted
Build a role-based access control system using Drizzle ORM, enabling fine-grained permission management and server-side access guards.
- PostgreSQL & Drizzle ORMCompleted
Design and manage the database schema using Drizzle ORM with a self-hosted PostgreSQL instance on the production server.
- Docker DeploymentCompleted
Containerise the application using Docker and deploy to a self-managed server, with environment-based configuration for development and production.
- Internationalisation (i18n)Completed
Integrate Paraglide JS to support five languages: English, German, Spanish, French, and Mandarin, with per-route message files.
- SEO & Meta TagsIn Progress
Apply structured per-route SEO meta tags across all public-facing pages to improve search engine discoverability.
- Project Case StudiesIn Progress
Expand project entries into full engineering case studies with structured problem, approach, outcome, and reflection sections.