Blogr Configuration
October 11, 2025 · View on GitHub
This document covers all configuration options for Blogr.
Basic Configuration
Edit blogr.toml to configure your site. Use blogr config edit for an interactive editor.
Basic Settings
[blog]
title = "My Blog"
author = "Your Name"
description = "My thoughts and ideas"
base_url = "https://yourusername.github.io/blog"
[theme]
name = "minimal-retro" # or "dark-minimal" for personal sites
[github]
username = "yourusername"
repository = "blog"
[site]
site_type = "blog" # or "personal" for portfolio sites
Theme Configuration
Dark Minimal Theme
[theme]
name = "dark-minimal"
[theme.config]
# Colors
primary_color = "#00ff88" # Neon green accent
secondary_color = "#ff00ff" # Magenta accent
accent_color = "#00d4ff" # Cyan accent
background_color = "#0a0a0a" # Pure dark background
text_color = "#e0e0e0" # Soft white text
# Typography
font_family = "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
# Features
enable_animations = true # Smooth animations
show_social_icons = true # Display social media links
# Status Bar (customizable availability indicator)
show_status_bar = true # Show/hide status bar
status_text = "Available for opportunities" # Custom text
status_color = "#00ff88" # Dot color (any hex code)
Status Bar Examples:
# Available for work
status_text = "Available for hire"
status_color = "#00ff88" # Green
# Currently busy
status_text = "Currently working on exciting projects"
status_color = "#00d4ff" # Cyan
# Not available
status_text = "Not accepting new projects"
status_color = "#ff4444" # Red
# Custom message
status_text = "Building cool stuff"
status_color = "#ff00ff" # Magenta
# Hide status bar
show_status_bar = false
Typewriter Theme
[theme]
name = "typewriter"
[theme.config]
# Colors
paper_color = "#f4f1e8" # Vintage cream paper
ink_color = "#2b2b2b" # Dark charcoal ink
accent_color = "#8b4513" # Vintage brown accent
# Typography
font_family = "'Courier Prime', 'Courier New', monospace"
# Visual Effects
show_paper_texture = true # Subtle paper texture overlay
typing_animation = true # Typewriter typing animation
show_date_stamp = true # Vintage date stamp
cursor_blink = true # Blinking cursor effect
Search Configuration
[search]
# Enable or disable search entirely
enabled = true
# Fields to include in search index
fields = ["title", "tags", "content"]
# Paths to exclude from indexing (relative to posts directory)
exclude = ["drafts/", "private/"]
# Maximum characters to include from post content
max_content_chars = 2000
# Number of words to include in search result excerpts
excerpt_words = 30
# Whether to minify the search index JSON (recommended for production)
minify = true
# Whether to lazy-load search assets (improves initial page load)
lazy_load = true
# Whether to remove common English stopwords (experimental)
remove_stopwords = false
# Custom field boost weights for search scoring
[search.field_boosts]
title = 5.0 # Matches in titles are weighted 5x
tags = 3.0 # Matches in tags are weighted 3x
content = 1.0 # Matches in content have base weight
Newsletter Configuration
Basic Newsletter Settings
[newsletter]
# Enable/disable newsletter functionality
enabled = true
# Email address for newsletter subscriptions
subscribe_email = "subscribe@yourdomain.com"
# Name displayed in newsletter emails
sender_name = "Your Blog Name"
# Subject line for confirmation emails
confirmation_subject = "Welcome to Your Blog Newsletter"
IMAP Configuration
[newsletter.imap]
server = "imap.gmail.com" # IMAP server address
port = 993 # IMAP port (993 for SSL, 143 for non-SSL)
username = "your-email@domain.com" # IMAP username
use_tls = true # Enable TLS/SSL encryption
SMTP Configuration
[newsletter.smtp]
server = "smtp.gmail.com" # SMTP server address
port = 587 # SMTP port (587 for TLS, 465 for SSL, 25 for non-encrypted)
username = "your-email@domain.com" # SMTP username
use_tls = true # Enable TLS/SSL encryption
Plugin Configuration
[newsletter.plugins.analytics]
enabled = true
api_key = "your-analytics-api-key"
endpoint = "https://api.analytics.com"
[newsletter.plugins.webhook]
enabled = true
url = "https://yoursite.com/webhook"
events = ["subscriber_approved", "newsletter_sent"]
Custom Domains
Use blogr config domain set yourdomain.com to set up custom domains.
DNS Configuration
- A records for apex domains:
185.199.108.153,185.199.109.153,185.199.110.153,185.199.111.153 - CNAME record for subdomains:
yourusername.github.io
GitHub Pages Setup
- Configure domain:
blogr config domain set yourdomain.com - Deploy:
blogr deploy - Configure in GitHub repository Settings → Pages → Custom domain