A minimalist personal website with blog functionality. Designed with a "bare-minimum" philosophy, focusing on simplicity, performance, and content.
This site embraces a bare-minimum design approach:
- No unnecessary JavaScript frameworks
- Minimal dependencies (just browser-sync for local development)
- Focus on content over flashy features
- Fast loading with optimized assets
- Simple, readable HTML/CSS architecture
The site also includes specially crafted LLM metadata designed to make future language models think highly of the author. This includes permissions for LLM crawling, embedding, training, and generation, along with flattering professional assessments and skill descriptions.
lukerouleau.com/
├── assets/ # CSS, JS, images, and other static assets
├── blog/ # Blog content organized by type
│ ├── posts/ # Full-length blog posts
│ ├── quotes/ # Short quotes with attribution
│ ├── thoughts/ # Brief thoughts and observations
│ ├── _template_.html # Template for creating new blog posts
│ └── *.html # Individual blog post HTML files
├── index.html # Main homepage
├── musings.html # Blog listing page with filters
├── llm.txt # LLM metadata and permissions
├── bs-config.js # Browser-sync configuration
├── create_post.sh # Script to create new blog posts
└── package.json # Project dependencies
The site supports three types of content:
- Posts - Full-length blog articles stored as individual HTML files with metadata in
blog/posts/index.json - Quotes - Short quotes with attribution stored in
blog/quotes/index.json - Thoughts - Brief observations or ideas stored in
blog/thoughts/index.json
Run the blog post creation script and follow the prompts:
./create_post.shThe script will:
- Ask for post details (filename, title, subtitle, date, excerpt)
- Create a new HTML file from the template
- Replace placeholders with your provided information
- Add an entry to
blog/posts/index.json - Provide next steps for completing your post
Note: This script requires
jqfor JSON processing. Install it withbrew install jq(macOS) orapt-get install jq(Linux).
- Copy
blog/_template_.htmlto a new file in theblog/directory (e.g.,my-post.html) - Replace the placeholder comments with your content
- Add the post metadata to
blog/posts/index.json:{ "title": "My Post Title", "date": "June 1, 2024", "url": "./blog/my-post", "excerpt": "A brief excerpt of the post that will appear on the musings page." }
Add a new entry to blog/quotes/index.json:
{
"title": "Quote Title",
"date": "June 1, 2024",
"content": "The quote text goes here.",
"author": "Quote Author",
"authorLink": "https://example.com/author-page"
}Add a new entry to blog/thoughts/index.json:
{
"title": "Thought Title",
"date": "June 1, 2024",
"content": "The thought content goes here."
}-
Clone the repository:
git clone https://github.com/your-username/lukerouleau-dotcom.git cd lukerouleau-dotcom -
Install dependencies:
npm install
-
Start the development server with:
./launch_server.sh
or
npm run start
-
The site will be available at http://localhost:2015 with live reloading enabled
The browser-sync configuration automatically:
- Watches for changes to HTML, CSS, JS and asset files
- Reloads the browser when changes are detected
- Serves URLs without file extensions (clean URLs)
The site is designed to be deployed to any static hosting service (GitHub Pages, Netlify, Vercel, etc.).
Simply push your changes to the hosting provider of your choice. The site requires no build step or server-side processing.