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.

In Progress
Ongoing
SvelteKit
TypeScript
PostgreSQL
Docker
RBAC
Drizzle ORM
Tailwind CSS
Node.js
Paraglide JS
Flowbite-Svelte
This Website - Full-Stack Portfolio Platform

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 Development
    In Progress

    Build the full frontend using SvelteKit, Tailwind CSS, and Flowbite-Svelte, including responsive layouts, dark mode, and component architecture.

  • Backend & API Layer
    In Progress

    Develop server-side load functions, form actions, and API endpoints using SvelteKit's server-side capabilities and Drizzle ORM.

  • Authentication System
    Completed

    Implement session-based authentication with server-side cookie management via SvelteKit hooks, including login, logout, and session renewal.

  • RBAC Security Model
    Completed

    Build a role-based access control system using Drizzle ORM, enabling fine-grained permission management and server-side access guards.

  • PostgreSQL & Drizzle ORM
    Completed

    Design and manage the database schema using Drizzle ORM with a self-hosted PostgreSQL instance on the production server.

  • Docker Deployment
    Completed

    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 Tags
    In Progress

    Apply structured per-route SEO meta tags across all public-facing pages to improve search engine discoverability.

  • Project Case Studies
    In Progress

    Expand project entries into full engineering case studies with structured problem, approach, outcome, and reflection sections.

Details

Status:
In Progress
Duration: Ongoing
Categories:
Software
Entrepreneurship
Technologies:
SvelteKit
TypeScript
PostgreSQL
Docker
RBAC
Drizzle ORM
Tailwind CSS
Node.js
Paraglide JS
Flowbite-Svelte

Related Projects

Industry 4.0 Automated Machinery Programme - PLC & HMI Engineering
Completed

Industry 4.0 Automated Machinery Programme - PLC & HMI Engineering

Python & C++ Industrial Automation & Data Acquisition
Completed

Python & C++ Industrial Automation & Data Acquisition

Nicholas Consultancy
In Progress

Nicholas Consultancy