Astro is amazing, but managing src/content can be friction-heavy.
You have to deal with strict YAML Frontmatter, complex folder structures, and manual date formatting.
When you have a sudden idea, you don't want to wrestle with syntax—you just want to write.
Friction kills creativity. Aether removes the syntax barrier between your brain and your blog.
Aether is a lightning-fast content generator written in Lua.
It watches a folder of "raw" drafts (simple text files) and transmutes them into fully valid, type-safe Astro Content Collections (.md / .mdx).
It acts as a pre-processor for your Astro build pipeline.
Input (Draft) _drafts/lua-idea.txt:
@slug: magic-of-lua
@tags: dev, minimalism
@status: draft
# Why Lua?
Because it is fast, small, and beautiful...
Output (Astro) src/content/blog/magic-of-lua.md:
---
slug: "magic-of-lua"
title: "Why Lua?"
date: 2026-02-19T10:00:00Z
tags:
- "dev"
- "minimalism"
draft: true
---
Because it is fast, small, and beautiful...- 🎯 Zero-Friction Writing: Use a minimalist syntax (
@key: value) instead of YAML. - 🎯 Astro-First: Specifically designed to populate Astro Content Collections.
- 🎯 Blazing Fast: Written in Lua. Parses hundreds of files in milliseconds.
- 🎯 Smart Defaults: Automatically infers titles (from first H1) and dates (from file creation) if missing.
- 🎯 Dependency-Free: No heavy
node_modules. Just a single Lua script.
| Audience | Use Case |
|---|---|
| Minimalists | Keep your writing folder clean, separate from code |
| Astro Developers | Automate the boring parts of content management |
| Obsidian Users | Easily adapt raw vault notes for the web |
- Core Logic: Lua 5.5 / LuaJIT (for raw speed and pattern matching).
- FileSystem:
LuaFileSystem(lfs) for directory traversal. - Target: Generates Markdown/MDX compatible with Astro Content Layer.
- Install Lua (if you are on Linux/Mac, you likely already have it).
- Clone Aether into your Astro project root (or as a submodule).
- Run the transmutation:
# In your package.json
"scripts": {
"transmute": "lua aether/src/main.lua",
"dev": "npm run transmute && astro dev"
}- Core Parser: Implement regex-like patterns in Lua to parse
@headers. - Smart Inference: Auto-detect Title from the first
# Header. - Draft Management: Automatically exclude files marked
@draftfrom production builds. - Obsidian Mode: Support
[[WikiLinks]]to standard Markdown link conversion. - Watch Mode: Re-run transmutation instantly when a draft file changes.
This project is currently a personal prototype ("Pet Project").
MIT © 2026 - see LICENSE for details.