{"slug": "a-dead-simple-personal-website-engine-for-developers-focused-on-simplicity", "title": "A dead simple personal website engine for developers focused on simplicity", "summary": "Koji, a self-hostable personal website engine for developers, has been released. It uses FastAPI, Markdown on disk, and a minimalist layout with no database, offering features like HTMX-based live search, SEO support, and AI-friendly llms.txt exports. The project is open-source under MIT license.", "body_md": "**Koji** is a self-hostable dead simple personal website for developers. No database, markdown on disk, and a fast, text-first minimalist layout.\n\n**FastAPI**— server-rendered HTML, minimal JavaScript** Markdown + YAML**— pages and posts in`content/`\n\n**HTMX**— live blog search (progressive enhancement)** SEO**— meta tags, Open Graph, JSON-LD, sitemap, robots** llms.txt**— AI-friendly markdown exports ([spec](https://llmstxt.org/))** Docker**— single-container deploy\n\n```\npython -m venv .venv && source .venv/bin/activate\npip install -r requirements.txt\nuvicorn app.main:app --reload\n```\n\nOpen [http://localhost:8000](http://localhost:8000).\n\nIn development, saving files under `content/`\n\nreloads markdown and `site.yaml`\n\non the next request — refresh the browser. Set `KOJI_ENV=production`\n\nin production to cache content in memory.\n\n```\ndocker compose up --build   # or Docker\npytest                      # after pip install -r requirements-dev.txt\n```\n\nSee Koji in production: [muhammadhaseeb.me](https://muhammadhaseeb.me)\n\nFull guides for using and extending Koji:\n\n| Guide | Description |\n|---|---|\nDocumentation index |\n\n[Getting started](/iam-mhaseeb/Koji/blob/main/docs/getting-started.md)[Configuration](/iam-mhaseeb/Koji/blob/main/docs/configuration.md)`site.yaml`\n\noption[Content guide](/iam-mhaseeb/Koji/blob/main/docs/content.md)[Theming](/iam-mhaseeb/Koji/blob/main/docs/theming.md)[Deployment](/iam-mhaseeb/Koji/blob/main/docs/deployment.md)[SEO](/iam-mhaseeb/Koji/blob/main/docs/seo.md)[llms.txt](/iam-mhaseeb/Koji/blob/main/docs/llms-txt.md)[Extending Koji](/iam-mhaseeb/Koji/blob/main/docs/extending.md)[Architecture](/iam-mhaseeb/Koji/blob/main/docs/architecture.md)Edit `content/site.yaml`\n\n:\n\n```\ntitle: \"Your Name's blog\"\nauthor: Your Name\nemail: you@example.com\nurl: https://yourdomain.com\n```\n\nAdd a post at `content/posts/hello.md`\n\n:\n\n```\n---\ntitle: Hello\nslug: hello\ndate: 2026-06-02\ndescription: My first post.\n---\n\nHello, world.\n```\n\nMIT — see [LICENSE](/iam-mhaseeb/Koji/blob/main/LICENSE).", "url": "https://wpnews.pro/news/a-dead-simple-personal-website-engine-for-developers-focused-on-simplicity", "canonical_source": "https://github.com/iam-mhaseeb/koji", "published_at": "2026-06-21 23:44:02+00:00", "updated_at": "2026-06-21 23:55:51.631766+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["Koji", "FastAPI", "HTMX", "Docker", "Markdown", "YAML", "JSON-LD", "llms.txt"], "alternates": {"html": "https://wpnews.pro/news/a-dead-simple-personal-website-engine-for-developers-focused-on-simplicity", "markdown": "https://wpnews.pro/news/a-dead-simple-personal-website-engine-for-developers-focused-on-simplicity.md", "text": "https://wpnews.pro/news/a-dead-simple-personal-website-engine-for-developers-focused-on-simplicity.txt", "jsonld": "https://wpnews.pro/news/a-dead-simple-personal-website-engine-for-developers-focused-on-simplicity.jsonld"}}