š Live Site: alexsantos.dev
A modern, full-stack personal portfolio and blog built with SvelteKit. This project showcases my web development skills and serves as a platform for sharing insights and experiences in software development.
Clone the repository:
git clone https://github.com/asantoss/web-dev-portfolio.git
cd web-dev-portfolio
Install dependencies:
npm install
Set up environment variables:
cp .env.example .env
Configure the following variables:
GITHUB_CLIENT_ID=your_github_oauth_client_id
GITHUB_CLIENT_SECRET=your_github_oauth_client_secret
Configure your site settings:
The site configuration is stored in src/config/site.json
. You can either:
/admin
after setting up OAuthRun the development server:
npm run dev
Open http://localhost:5173 in your browser.
All personal information, social links, skills, and site metadata are managed through a centralized configuration system:
Configuration is stored in src/config/site.json
and can be edited through the Sveltia CMS admin interface.
Posts are stored as Markdown files in src/posts/
with frontmatter:
---
title: Your Post Title
description: A brief description
image: /images/your-image.png
draft: false
tags: ["web-development", "svelte"]
date: 2025-05-28T09:21:00
---
Your markdown content here...
Access the admin panel at /admin
to manage content and site settings through the Sveltia CMS interface. Authentication is handled via GitHub OAuth.
Available Admin Sections:
# Development
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
# Code Quality
npm run lint # Run ESLint
npm run format # Format code with Prettier
npm run check # Type checking with svelte-check
# Testing
npm run test # Run all tests
npm run test:unit # Run unit tests
npm run test:e2e # Run end-to-end tests
src/
āāā app.html # HTML template
āāā app.css # Global styles
āāā components/ # Reusable components
āāā config/ # Site configuration
ā āāā site.json # Centralized site settings
āāā lib/
ā āāā icons/ # SVG icon components
ā āāā server/ # Server-side utilities
ā ā āāā config.ts # Configuration loader
ā ā āāā queries.ts # Data fetching utilities
ā āāā stores/ # Svelte stores
āāā posts/ # Markdown blog posts
āāā routes/ # SvelteKit routes
āāā types/ # TypeScript type definitions
āāā config.d.ts # Configuration type definitions
src/config/site.json
or use the admin interface at /admin
static/
directorySkills are dynamically rendered based on your configuration. To add a new skill:
site.json
configurationsrc/lib/icons/
if neededThe site supports both light and dark themes with automatic system preference detection. Customize colors in src/app.css
using Tailwind's theme configuration.
The project is configured for deployment with:
The deployment process:
Site configuration changes made through the CMS are automatically committed to your repository, triggering a new deployment. This ensures your changes are version-controlled and deployed consistently.
This is a personal portfolio project, but I welcome suggestions and feedback! Feel free to:
This project is open source and available under the MIT License.
Built with ā¤ļø by Alexander Santos - a passionate software consultant specializing in modern web development, Salesforce solutions, and creative problem-solving.
Connect with me: