Skip to content



Digital storefront & Content Management Platform ​

Cho-cweet is a customizable chocolate brand from Bandung, their main product is customizable chocolate.

Cho Cweet

cho-cweet is a customizable chocolate brand crafted to turn every moment into something memorable. With smooth, melt-in-your-mouth indulgence, each bite tells a story—perfect as a unique gift or a delightful companion for your daily treats. Blending creativity, quality, and a touch of emotion, Cho Cweet delivers sweetness made just for you.

-- chocweet.com

Background ​

In today's digital era, having a dedicated website is a standard requirement for any product-based business. A centralized site is essential for hosting product details, brand information, and ordering instructions. For this project, the business owner wanted a platform that contained comprehensive information about the company, its products, its content, and its core values.

Requirement ​

  1. Business owner targeting the page must be able to handle billion of traffics a day.
  2. Business owner required the page to be responsive and could be access instantly.

Solution & Development ​

First thing first, business owner required the application is run in a dedicated server. Second the application must be run 24/7 and must be able to self recovery when something goes wrong, the application must be able to self restart.

Since the application need to be run 24/7 and it will run in a dedicated server, I choose Java for the server side application. Why ? Simply as Java has been proved by a large company to serve their business for a decade, so no doubt about the ability of Java. Secondly, I have strong knowledge and experience in Java. So that is the main reason why I choose Java.

When I started building the frontend, I used Vue.js. I chose it because it is much simpler and more lightweight compared to other frameworks like Angular or React. I continued building with Vue.js until I hit a major pain point: Search Engine Optimization (SEO).

The common problem of SPA (Single Page Application) is this isn't SEO friendly by default. At that time I don't have much experience of how to improve the Vue.js app to be SEO friendly. So I googling first, and during googling and searching I found something really good until it made me feels like "why didn't I found this sooner" 😄. That was when I discovered Nuxt.js. Nuxt.js is highly compatible with Vue.js and the biggest advantage is that it is SEO-friendly out of the box. Because of this shared ecosystem, I didn't have to rewrite much code to migrate from Vue.js to Nuxt.js.

For somebody who's doesn't know about SEO. The simplest explanation is, at the first time we search through a search engine, Google for example, Google will scrap the information to the entire Internet with a system called web crawler, and this is the critical point, If our page is contain "nothing" then our page will not scraped by the web crawler, so that is why our page doesn't appear on the search result. Why our page contain "nothing" ? Because basically Single Page Application (SPA) is rendered in client side (user browser), when the user visit our page like example.com then the browser will download the html and javascript file and another component such us image and do the rendering in the user browser. So that's why the web crawler sees "nothing" in our page.

Why did I choose incorrect framework ? My honest answer is, In a short time period, I just blindly consider that Vue.js is simple, and it has a lot of community support along with the open source component.

Lesson ​

First time I think about client/web app development is just one. It has to be simple and the learning curve must be sloping. However, this project taught me that it is much better to spend extra time researching and finding the most suitable tools and frameworks before starting development, ensuring they actually solve the specific problems and user requirements at hand.

Conclusion ​

Business owner can now run the business and enhance their branding through a fit and simple Digital storefront & Content Management Platform.