# Extensibility as a headless Hugo CMS

**URL:** <https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981>\
**Category:** feature\
**Created:** [November 26, 2019, 7:54am UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981 "2019-11-26T07:54:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![panakour](https://avatars.discourse-cdn.com/v4/letter/p/4da419/32.png) [@panakour](https://discourse.gohugo.io/u/panakour)\
**Post date:** [November 26, 2019, 7:54am UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981/1 "2019-11-26T07:54:46Z")

</div>

How difficult could be for Hugo to extend its strength via rest API services ;

---

<div class="post-metadata">

**Author:** ![davidsneighbour](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/davidsneighbour/32/24507_2.png) [@davidsneighbour](https://discourse.gohugo.io/u/davidsneighbour)\
**Post date:** [November 27, 2019, 2:52pm UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981/2 "2019-11-27T14:52:25Z")

</div>

I hope you understand the common silence in reaction to your post. First of all it’s not very explanatory. From what I understand you want to use a Go-Kart to offer a limousine service.

A REST API requires an authorization system. A static website has nothing like that, except for the server software it is hosted on. A REST API requires some kind of search/filterability. A static website has no dynamic filtering. Both features you can have in connection with Hugo in the form of Netlify Identity Services and Algolia indexing services.

But.

You are trying to abuse a system you love and know and make it into something it is not. It surely is possible to offer a REST API with a Hugo generated website. But like I said… your Go-Kart is an inadequate Limousine. Where is the champaigne?

I could offer a REST API using only Algolia. Why would I try to do it with Hugo, a static (again… static…) Website generator?

---

<div class="post-metadata">

**Author:** ![Simran-B](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/simran-b/32/10055_2.png) [@Simran-B](https://discourse.gohugo.io/u/Simran-B)\
**Post date:** [November 28, 2019, 11:57pm UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981/3 "2019-11-28T23:57:30Z")

</div>

It would help if you described the problem you want to solve and what your requirements and goals are.

---

<div class="post-metadata">

**Author:** ![panakour](https://avatars.discourse-cdn.com/v4/letter/p/4da419/32.png) [@panakour](https://discourse.gohugo.io/u/panakour)\
**Post date:** [November 29, 2019, 8:32am UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981/4 "2019-11-29T08:32:41Z")

</div>

First sorry for my poor question. I will try to clarify with my not very good english.

What I want is pretty simple in my opinion. Just a server to handle some endpoints, take a look at an example:

| /Path | Method | Description |
| --- | --- | --- |
| /content/:section | GET | List content from section :section |
| /content/:section | POST | Create a new content into section :section (also create the section if not exists) |
| /content/:section/:slug | GET | Get content :slug from section :section |
| /content/:section/:slug | PUT | Update content |
| /content/:section/:slug | DELETE | Remove content |
| /content/:section/:slug/attach | POST | Add resource to content |
| /content/:section/:slug/:attach | GET | Get resource |

I think is self explanatory.

Now the questions is how difficult could be for someone who know Golang to just extend the library itself to achieve this.

\*I am new to golang and I’ve been working with go for last weeks.

For example hugo core handle all of these stuff:

- parsing various format of files
- various functions: e.g.: ` where .Pages "Section" "foo"`
- pagination
- search
- related
- taxonomies
- and much more
- …

thank you for your time

---

<div class="post-metadata">

**Author:** ![sunwei](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/sunwei/32/18028_2.png) [@sunwei](https://discourse.gohugo.io/u/sunwei)\
**Post date:** [September 14, 2023, 2:07am UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981/5 "2023-09-14T02:07:51Z")

</div>

> [@panakour](#):
>
> i

Is there any updates?

---

<div class="post-metadata">

**Author:** ![chrillek](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/chrillek/32/19797_2.png) [@chrillek](https://discourse.gohugo.io/u/chrillek)\
**Post date:** [September 14, 2023, 12:13pm UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981/6 "2023-09-14T12:13:17Z")

</div>

Why would there be? Hugo is still a static site generator. You can use code to write the API implementation, I guess. But that’s not Hugo’s task.

---

<div class="post-metadata">

**Author:** ![sunwei](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/sunwei/32/18028_2.png) [@sunwei](https://discourse.gohugo.io/u/sunwei)\
**Post date:** [September 14, 2023, 12:32pm UTC](https://discourse.gohugo.io/t/extensibility-as-a-headless-hugo-cms/21981/7 "2023-09-14T12:32:58Z")

</div>

Thanks for reply. Hugo definitely should focus on it’s motto, I just wondering headless Hugo CMS could be one interesting use case, at least for me. It’s open source, anyway, we can try with ourselves and contribute back the community.
