Couple of months ago I had a client asking me that they need a system to upload updates on their websites. This is classic use-case of wordpress, but wordpress will not make ends meet because my client wanted their website to be light weight and they wanted control of the code, they just did not want to change code everytime there is some news or updates ready to be announced. I had a deja vu moment and I thought I was transported back to 2012 because this is what I was doing in 2012, but now I am not so naive, now we have better tools to make things happens and tools like Wordpress, however highly relevant, do not make sense for a lot of people.
I started spining ideas in my head and I wanted a quick solution, probably a form which my client can send to some server or some cloud function and it will update the website. There are various ways to achieve this honestly, a lot of people use services like Ghost because it enables exaclty this, where you can use markdown files to update content of your website. You can achieve the same with Astro as well, but most of these methods involve touching code in one way or another.
My Client would not touch the code.
I then started thinking more and I thought I could possibly write a small content management service using something like strapi or directus, just a front-end wrapper on the top of these tools and plug it in the client website using some API calls. Strapi & Directus enable people to do this and a lot of people have these workflows, this is nothing new. People have been doing this for ages. I did not think a lot about it and I started writing code.
I chose Strapi and I really loved it. It provides elegant way to create simple collection and relationships between then and expose an API which you can use. I wrote a front-end wrapper in Solid js and consumed strapi API to give user functionality to do these things.
Then I realized that this was probably not enough, So i created a collection which is exactly a collection of articles, now you could consume that collection using API integration. As can be seen in images below.
I went further and started creating Public Links for those articles, so even if User do not have a website they should be able to share their work with other.
Once I was done creating MVP, I thought I could possibly create tutorials for how people can use it and I was in for a surprise because now I can just create the Tutorial using this MVP and share them on our website, it made creating tutorials so easy for me, I wrote all of our tutorial using Claude and OrangeGas in one hour. https://orangegas.co/documentation/
This was not enough. We wanted to have a Contact Us page on our website and We wanted to see the response in a nice format, So We went ahead and created a Form Feature. Right now we only support 6-7 kind of forms but underlying architecture allows us to eventually create a Form builder which can generate forms from natural language with help of LLM and polymorphism, engineering is really powerful thing when composed together nicely.
I think we will not stop here, and eventually we will end up creating a content management system/workflow management system, which provides you primitives and using those you can build tools. Like Joe Armstrong can be seen saying here (I found this video in discord of Solid JS and it aptly fits everything that we have been doing all along with OrangeGas)
Right now these tools are very primitive, e.g. Creating a List of articles or creating a contact us form, but you should be eventually able to compose these Primitives together more granularly, Future is reallly awesome from where we see it.
This article, just like all the articles on our website were created using OrangeGas. Learn More