Skip to content
/ ansango.template Public template

A modern, content-first personal website built with Astro, designed for technology articles, wikis, projects, and indie web principles. Write in Obsidian, publish with ease.

Notifications You must be signed in to change notification settings

ansango/ansango.template

Repository files navigation

ansango.template

🌐 Personal Blog & Wiki Template

A modern, content-first personal website built with Astro, designed for technology articles, wikis, projects, and indie web principles. Write in Obsidian, publish with ease.

See live demo → | GitHub Based Repository →

✨ Features

Modern template for bloggers, developers, and indie web enthusiasts with:

  • 📝 Content Collections: Blog, Wiki, Projects, and standalone pages
  • 🔍 Full-text Search: Powered by Pagefind with keyboard shortcuts
  • 🎵 Live Integrations: Last.fm music and Raindrop.io bookmarks
  • 🌓 Dark Mode: Theme switching with persistent preference
  • 📄 SEO Optimized: Complete meta tags, structured data, and sitemap
  • ✍️ Obsidian Integration: Write in Obsidian, deploy automatically
  • Fast Performance: Static generation with Lighthouse 95+ scores

See full feature list →

🛠️ Tech Stack

Built with modern, production-ready technologies:

Core

Integrations

Deployment

See architecture details →

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • npm, pnpm, or bun

Installation

# Clone repository
git clone https://github.com/ansango/ansango.dev.git
cd ansango.dev

# Install dependencies
npm install

# Configure environment (optional), 
# Edit .env with your API keys for integrations
cp .env.sample .env

# Start development server and http://localhost:4321 🎉
npm run dev

See installation guide →

✍️ Writing Content with Obsidian

This template is designed to work seamlessly with Obsidian:

  1. Open as Vault: Open this repository in Obsidian
  2. Install Plugins: Enable recommended community plugins:
    • `obsidian-git` - Auto-commit and sync
    • `obsidian-linter` - Auto-format frontmatter
    • `obsidian-local-images-plus` - Optimize images to WebP
  3. Write Content: Create markdown files in `src/content/`
  4. Auto-Deploy: Push to GitHub → Automatic conversion and deployment

Content Structure

src/content/
├── blog/ # Blog posts
├── wiki/ # Hierarchical knowledge base
├── projects/ # Portfolio items
├── about.md # About page
├── uses.md # Tools & setup
└── now.md # Current activities

See Obsidian integration → | Content management →

📦 Available Commands

All commands run from the project root:

Command Action
`npm install` Install dependencies
`npm run dev` Start dev server at `localhost:4321`
`npm run build` Build production site to `./dist/`
`npm run preview` Preview production build locally
`npm run format` Format code with Prettier
`npm run astro` Run Astro CLI commands

📚 Documentation

Complete documentation available in the `/docs` directory:

Getting Started

Development

Optimization & SEO

  • SEO - Search engine optimization
  • Search - Full-text search implementation
  • RSS Feed - RSS configuration and usage

Deployment

Contributing

🔧 Environment Variables

Optional API integrations require environment variables:

## Raindrop.io (for bookmarks and reading)
RAINDROP_ACCESS_TOKEN=your_token

## Last.fm (for music integration)
PUBLIC_LASTFM_API_KEY=your_key
LASTFM_SHARED_SECRET=your_secret

## GoatCounter (optional analytics)
PUBLIC_GOATCOUNTER_CODE=yoursite

Copy .env.sample to .env and add your credentials.

See configuration guide →

Performance

results

📄 License

MIT License - feel free to use this template for your own site!

🙏 Acknowledgments

Built with:

Inspired by the IndieWeb movement.

🤝 Contributing

Contributions welcome! See Contributing Guide for details.


Made with ❤️ using Astro, Svelte 5, and Tailwind CSS v4

About

A modern, content-first personal website built with Astro, designed for technology articles, wikis, projects, and indie web principles. Write in Obsidian, publish with ease.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published