No description
  • Svelte 50.6%
  • TypeScript 26.6%
  • CSS 13.8%
  • TeX 5%
  • JavaScript 2.1%
  • Other 1.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Satya Benson 0e5b7f8f9d Add MIT license
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 15:37:13 -04:00
cv Add condensation post, update CV and about, fix markdown rendering 2026-07-30 21:04:40 +00:00
scripts update and com 2025-11-18 18:02:04 -05:00
src Add prose image and caption styling 2026-09-02 11:47:31 +00:00
static Add condensation post, update CV and about, fix markdown rendering 2026-07-30 21:04:40 +00:00
.gitignore Add condensation post, update CV and about, fix markdown rendering 2026-07-30 21:04:40 +00:00
.npmrc initial commit 2025-10-16 14:53:03 -04:00
.prettierignore initial commit 2025-10-16 14:53:03 -04:00
.prettierrc initial commit 2025-10-16 14:53:03 -04:00
CLAUDE.md Serve raw markdown at extensionless /md/<slug> 2026-08-12 14:30:30 +00:00
eslint.config.js initial commit 2025-10-16 14:53:03 -04:00
LICENSE Add MIT license 2026-10-05 15:37:13 -04:00
package-lock.json Add condensation post, update CV and about, fix markdown rendering 2026-07-30 21:04:40 +00:00
package.json update posts 2026-07-31 10:20:46 +00:00
pnpm-lock.yaml pnpm stuff 2026-09-02 13:07:00 +00:00
pnpm-workspace.yaml pnpm stuff 2026-09-02 13:07:00 +00:00
README.md Add MIT license 2026-10-05 15:37:13 -04:00
svelte.config.js initial commit 2025-10-16 14:53:03 -04:00
tsconfig.json initial commit 2025-10-16 14:53:03 -04:00
vite.config.ts initial commit 2025-10-16 14:53:03 -04:00

Satya Benson Portfolio

A clean, professional portfolio site built with SvelteKit, TypeScript, and Tailwind CSS. Features a tabbed interface and static markdown-based blog.

Features

  • Static Site Generation: Built with SvelteKit's static adapter for fast loading
  • Markdown Blog: Write posts in markdown with frontmatter support
  • TypeScript: Full type safety throughout the application
  • Responsive Design: Works on desktop and mobile devices
  • Tab Interface: Browser-like tabbed navigation (planned feature)
  • SEO Optimized: Proper meta tags and semantic HTML

Development

Setup

# Install dependencies
npm install

# Start development server
npm run dev

Adding Blog Posts

Create new markdown files in src/content/posts/ with frontmatter:

---
title: "Your Post Title"
date: "2024-01-15"
summary: "Brief description"
tags: ["tag1", "tag2"]
featured: true
draft: false
---

# Your Post Title

Content goes here...

Or use the helper script:

npm run new-post "Your Post Title"

Building for Production

# Build static site
npm run build

# Preview built site
npm run preview

Project Structure

src/
├── content/
│   └── posts/              # Markdown blog posts
├── lib/
│   ├── content/           # Content processing logic
│   ├── stores/            # Svelte stores (tabs, etc.)
│   └── types/             # TypeScript interfaces
├── routes/
│   ├── +page.svelte       # Homepage (blog index)
│   ├── cv/                # CV page
│   ├── about/             # About page
│   └── writing/
│       └── [slug]/        # Individual blog posts
└── app.html               # HTML template

Deployment

The site generates completely static files. Deploy the build/ directory to any static hosting service:

  • Netlify
  • Vercel
  • GitHub Pages
  • Your own nginx server

Custom Deployment

Update scripts/deploy.sh with your server details and run:

npm run deploy

Technologies

  • SvelteKit - Full-stack framework
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • Marked - Markdown processing
  • Prism.js - Syntax highlighting
  • Gray Matter - Frontmatter parsing

License

MIT for the code. Site content (posts, CV, images) is all rights reserved.