Hugo
Hugo is the most widely used static site generator. It's written in Go, ships as a single binary, and is genuinely fast. SuCoS follows many of Hugo's conventions, so users familiar with Hugo will find SuCoS familiar — with a few deliberate differences.
What SuCoS and Hugo have in common
- Single binary, no runtime required
- Content in
content/as Markdown with YAML front matter - Sections and taxonomies
- Aliases (redirect pages)
- RSS feeds and sitemaps
- Live reload dev server
Where SuCoS differs
Templates: Liquid vs. Go templates
Hugo uses Go's text/template package. The syntax is terse but quirky — pipeline chains, context binding, and the lack of a named page object make non-trivial templates hard to read:
{{ range where .Site.RegularPages "Section" "blog" }}
{{ .Title }}
{{ end }}
SuCoS uses Liquid, the same language as Shopify and Jekyll. It's expressive, readable, and has an explicit page object:
{% assign posts = site.RegularPages | where: 'Section', 'blog' %}
{% for post in posts %}
{{ post.Title }}
{% endfor %}
Configuration: YAML only
Hugo supports YAML, TOML, and JSON config files. SuCoS uses YAML exclusively (sucos.yaml), which eliminates format ambiguity.
Front matter: PascalCase
Hugo front matter keys are typically camelCase or lowercase. SuCoS uses PascalCase (Title, Date, Tags). This is consistent throughout — front matter, template variables, and site config all use the same casing.
Language: .NET vs. Go
SuCoS is built on .NET. If you're a C# developer, you can read and contribute to the source, run the build tools you already know, and integrate SuCoS into .NET-based workflows. It also ships with a C# API documentation generator.
Migration from Hugo
See SuCoS for Hugo Users for a field-by-field migration guide.
See Feature Comparison for a detailed table of which Hugo features are implemented in SuCoS.