1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Hugoifier
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Convert any website to a production-ready [Hugo](https://gohugo.io/) site with [Decap CMS](https://decapcms.org/) — pixel-perfect, no content loss.
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## How it works
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Hugoifier takes three types of input and produces a deployable Hugo site with CMS:
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Input | Method | AI needed? |
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|-------|--------|-----------|
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| **Hugo theme** | Assembles, patches deprecated APIs, adds CMS | No |
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| **Next.js app** | Captures rendered HTML from dev server | No |
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| **Raw HTML** | Extracts head/body directly into Hugo templates | No |
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
AI is only used as a fallback (Next.js without a running dev server) or for lightweight structural analysis.
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Quick start
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
pip install hugoifier
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Convert a Hugo theme
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
hugoifier complete themes/my-theme
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Convert a Next.js app (start your dev server first)
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
hugoifier complete path/to/nextjs-app
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Convert a raw HTML site
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
hugoifier complete path/to/html-site
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Output goes to `output/{name}/` — a complete Hugo site ready to serve:
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
cd output/my-site && hugo serve
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## What you get
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Hugo site with all content, styles, and assets preserved
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Decap CMS at `/admin/` with GitHub OAuth (Cloudflare Pages Functions)
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- `functions/api/auth.js` + `callback.js` for OAuth flow
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Whitelabel CMS branding (`--cms-name`, `--cms-logo`, `--cms-color`)
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Deploy to Cloudflare Pages
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
48
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
hugo --minify
49
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
npx wrangler pages deploy public --project-name my-site
50
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
51
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
52
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Set `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` as environment variables for CMS auth.
53
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
54
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Configuration
55
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
56
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
57
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Choose AI backend (only needed for fallback conversion)
58
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
HUGOIFIER_BACKEND=anthropic # or openai, google
59
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
ANTHROPIC_API_KEY=sk-...
60
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
61
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Whitelabel CMS
62
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
hugoifier complete my-site --cms-name "My CMS" --cms-logo https://... --cms-color "#515be3"
63
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
64
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
65
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Development
66
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
67
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
68
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
git clone https://github.com/ConflictHQ/hugoifier.git
69
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
cd hugoifier
70
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
pip install -e ".[dev]"
71
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
pytest
72
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
73
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
74
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Built with
75
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
76
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Hugoifier is built on top of two excellent open-source projects:
77
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
78
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **[Hugo](https://gohugo.io/)** — The world's fastest static site generator. Apache 2.0 licensed. Created by [Steve Francia](https://github.com/spf13) and [Bjarne Pedersen](https://github.com/bep) and [contributors](https://github.com/gohugoio/hugo/graphs/contributors).
79
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **[Decap CMS](https://decapcms.org/)** (formerly Netlify CMS) — Open-source content management for Git workflows. MIT licensed. Maintained by the [Decap community](https://github.com/decaporg/decap-cms/graphs/contributors).
80
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
81
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
We're grateful to both communities for building the tools that make this project possible.
82
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
83
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## License
84
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
85
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
MIT — see [LICENSE](LICENSE) for details.
86
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
87
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Made by [Conflict](https://weareconflict.com).
88
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!