turtledev.io Svelte Themes

Turtledev.io

Personal software development blog built with SvelteKit, DaisyUI, and MDsveX

TurtleDev.io

Personal software development blog built with SvelteKit, DaisyUI, and MDsveX.

Features

  • šŸ“ Markdown-based blog posts with MDsveX
  • šŸŽØ PaperMod-inspired theme with DaisyUI
  • šŸŒ“ Dark/light mode toggle with system preference detection
  • ⚔ Static site generation with adapter-static
  • šŸŽÆ Syntax highlighting with Shiki
  • šŸ“Š Vercel Analytics integration
  • šŸš€ Automated deployments via GitHub Actions

Tech Stack

  • SvelteKit 5 - Modern Svelte framework with runes
  • TypeScript - Type-safe development
  • TailwindCSS v4 - Utility-first CSS
  • DaisyUI - Component library
  • MDsveX - Markdown processing for Svelte
  • Shiki - Beautiful syntax highlighting

Development

Install dependencies:

npm install

Start development server:

npm run dev

# or open in browser
npm run dev -- --open

Building

Build for production:

npm run build

Preview production build:

npm run preview

Deployment

This project uses automated deployments via GitHub Actions:

  • Pull Requests: Automatically deploy preview on Vercel
  • Main Branch: Automatically deploy to production on merge

Setup GitHub Secrets

Add these secrets to your GitHub repository (Settings → Secrets and variables → Actions):

  1. VERCEL_TOKEN: Get from https://vercel.com/account/tokens
  2. VERCEL_ORG_ID: Found in .vercel/project.json (orgId)
  3. VERCEL_PROJECT_ID: Found in .vercel/project.json (projectId)

Git Workflow

āš ļø Never push directly to main branch

  1. Create a feature branch
  2. Make your changes
  3. Create a pull request
  4. Review and merge

Project Structure

src/
ā”œā”€ā”€ lib/
│   ā”œā”€ā”€ components/     # Reusable components
│   ā”œā”€ā”€ utils/          # Utility functions
│   ā”œā”€ā”€ config.ts       # Site configuration
│   └── types.ts        # TypeScript types
ā”œā”€ā”€ posts/              # Blog posts (markdown)
ā”œā”€ā”€ routes/
│   ā”œā”€ā”€ blog/           # Blog routes
│   └── api/            # API endpoints
└── app.css             # Global styles

Writing Blog Posts

Create a new markdown file in src/posts/:

---
title: "Your Post Title"
description: "Brief description"
date: "2025-01-15"
categories: ["category1", "category2"]
published: true
---

# Your Content Here

Documentation

Top categories

Loading Svelte Themes