blog Svelte Themes

Blog

A personal blog using Svelte and Pullnote

Pullnote + SvelteKit Blog

A modern, full-featured blog powered by Pullnote (headless CMS) and SvelteKit.

Features

  • Tailwind CSS - Modern, responsive design
  • Search - Fuzzy search with Fuse.js
  • RSS Feed - Automatic RSS generation at /rss.xml
  • Static Site Generation - Fast, SEO-friendly pages
  • Pullnote CMS - Easy content management
  • Markdown Support - Write posts in markdown

Quick Start

1. Install Dependencies

Make sure you have Node.js v22.12+ installed:

nvm install 22.12
nvm use 22.12
npm install

2. Configure Pullnote

  1. Create an account at pullnote.com
  2. Get your API key from the dashboard
  3. Add it to your .env file:
PULLNOTE_API_KEY=your-api-key-here

3. Start Development

npm run dev

Visit http://localhost:5173 to see your blog.

4. Create Your First Post

Run the example post creator:

npm run create-post

Or edit create-example-post.js to customize your post.

Development

npm run dev          # Start dev server
npm run build        # Build for production
npm run preview      # Preview production build
npm run create-post  # Create a blog post

Deployment

See DEPLOYMENT.md for detailed deployment instructions.

Quick Deploy

Vercel (Recommended)

npm install -g vercel
vercel --prod

Netlify

npm install -g netlify-cli
npm run build
netlify deploy --prod --dir=build

Important: Set PULLNOTE_API_KEY environment variable in your deployment platform!

Project Structure

.
├── src/
│   ├── lib/
│   │   └── pullnote.js          # Pullnote API utilities
│   ├── routes/
│   │   ├── +layout.svelte       # Global layout
│   │   ├── +layout.js           # Prerender config
│   │   ├── +page.svelte         # Homepage with search
│   │   ├── +page.server.js      # Fetch posts
│   │   ├── blog/
│   │   │   └── [slug]/          # Individual post pages
│   │   └── rss.xml/
│   │       └── +server.js       # RSS feed generator
│   └── app.css                  # Tailwind imports
├── create-example-post.js       # Script to create posts
├── svelte.config.js             # SvelteKit config
├── tailwind.config.js           # Tailwind config
├── vercel.json                  # Vercel deployment config
├── netlify.toml                 # Netlify deployment config
└── DEPLOYMENT.md                # Detailed deployment guide

Environment Variables

PULLNOTE_API_KEY=your-api-key    # Required: Get from pullnote.com

Technologies

  • SvelteKit - Full-stack web framework
  • Tailwind CSS - Utility-first CSS framework
  • Fuse.js - Fuzzy search library
  • Pullnote - Headless CMS
  • @sveltejs/adapter-static - Static site generation

Contributing

This is a personal blog template. Feel free to fork and customize for your own use.

License

MIT

Support

Top categories

Loading Svelte Themes