HNHacker News
TopNewBestAskShowJobs

ciaovietnam

26 karma · joined April 3, 2023

Lead Developer of SiteGui - https://sitegui.com, a unified e-commerce platform that includes automation and app builder/marketplace to help companies build successful E-commerce and Business operations.

Lead Developer of LiteGui - https://litegui.com, an open sourced CMS system.

submissionscomments
ciaovietnam··on Ask HN: Who is building solo with AI?
I've been building this CMS, e-commerce and app builder platform - https://sitegui.app - solo in order to keep the cost down before it gains enough growth momentum. It is built by one to be extended by other developers/freelancers. Now AI also is a part of the platform too (AI App Builder & Integrated AI Agents for chatbot, reporting and automation).
ciaovietnam··on Ask HN: Conversational AI to Learn a Language
I just tried it and it works perfectly. The color scheme and font size could be touched up to look better. Just out of curiosity, is $10/month enough to cover the (unlimited) API cost? Do you estimate how many percentage of your users will use more than $10 API fee each month?
ciaovietnam··on Documentation Generator
I was able to generate documentation for LiteGUi (https://deepwiki.com/SiteGUI-platform/litegui) and the result is quite promising. It captures all the core concepts and visualizes them beautifully.
ciaovietnam··on Open-sourcing OpenPubkey SSH (OPKSSH): integrating single sign-on with SSH
Now I have to trust OpenPubkey, hoping it wont get hacked. No way will I add this to my servers, I will keep using the long live public key.
ciaovietnam··on Ask HN: Old Unix technologies like cron and SSE in modern workflows?
I use SSE to send web users to another page (redirection header) while still processing other long running stuff for them. The result: non-blocking web access, users dont have to wait for all stuff processed to see a confirmation message e.g: a user signs up, you can show them their account has been created instantly while still creating relevant services (e.g: a virtual server) for their account.
ciaovietnam··on Handling Database Failures in a Distributed System with RabbitMQ Workers
I'm not familiar with RabbitMQ but this is how I built a queue for LiteGUI using Redis.

Firstly, every job gets stored in an activity table with a retry and result column.

If the job should be run instantly without queueing, no queue entry is needed, the retry column is 0 and the result column is filled.

If the job fails for whatever reason, a queue entry containing the activity ID is added to let the queue worker process it later on. When the worker processes the job, the retry column will be incremented no matter of the outcome. If the worker succeeds, the activity will be updated with the result.

If the worker fails to process it and the retry number is less than 5, another queue entry will be added (as the current one is already removed from the queue). When to process that queue entry depends on the retry number, they can be 1m, 5m, 25m, 2.1h, 10.4h, 2.2 days using the following formula:

$interval = 300 * pow(5, ($retry - 1));

This approach also helps in case of queue failure, you can just rebuild the queue from the activity table for entries with no result (or status) and retry number is less than 5.

To be honest, I don't work with queue regularly but I have to implement it anyway. I'm sharing this approach so we all can improve it.

ciaovietnam··on Ask HN: How did the internet discover my subdomain?
There is a chance that your subdomain is the first/default virtual host in your web server setup (or the subdomain's access log is the default log file) so any requests to the server's IP address get logged to this virtual host. That means they didn't access your subdomain, they accessed via your server IP address but got logged in your subdomain's access log.
ciaovietnam··on Why it still takes days for banks to give you your money
Zelle is quite fast but still has room for improvement especially the user experience. I enjoy much better experience in Vietnam where I can send to anyone at any bank instantly free of charge using official bank apps and can widthraw money from ATMs cardlessly using smart OTP.
ciaovietnam··on Ask HN: What's your blog / portfolio stack?
I built my own CMS system which places WYSIWYG content editor in a sandboxed iframe to avoid XSS. The advantage of this approach is that I can edit HTML directly using the browser's developer console in case the WYSIWYG editor does not support what I want. After all, raw HTML/CSS codes are behind what we see on a website, so I prefer to work with them directly rather than using Markdown. Whatever CMS you use, just make sure it supports changing theme/template and allows custom content to be inserted at different sections on a web page or preferably multiple pages (i.e global content widget). I found these 2 features crucial and make my work a lot easier.
ciaovietnam··on Magento Credit Card Stealer Disguised in an <Img> Tag
This can happen to any shopping cart that lets shop owners add custom codes/plugins to the checkout page. Though that enhances the look and feel, I dont think it is a good idea. The checkout page should use a universal design (like Shopify's checkout page), it will reduce the chance of XSS attacks.
ciaovietnam··on Building a free image CDN with Cloudflare R2 and workers
Thanks for sharing. How fast is this type of CDN from different countries/locations?
ciaovietnam··on Ask HN: Whats the stack you guys use for SaaS home page and blog these days?
There are so many CMSes to choose these days, you just need to choose one that fits your needs. For me, I will choose one that allows me to change theme, menu items and add contents to different sections on the page whenever I want.
ciaovietnam··on Show HN: Qweek – Create a Week's Worth of Social Media Content in Minutes
It looks promising. Is it possible to one-click post to the target platforms instead of copy and paste?
ciaovietnam··on The cross-eyed method of comparing lists
So cool. I was able to spot Hipopotamus and Meeerkat right away as they are floating and blurry while others stay the same.
ciaovietnam··on Elasticsearch Was Great, but Vector Databases Are the Future
Should we use ElasticSearch or vector databases for a catalog search function in 2025?
ciaovietnam··on Show HN: Realtime HTML Rendering with LLMs
Creating something like this is quite trivial with most LLMs but it's fun to tweak the prompt to get what you want. I'd suggest a loading indicator while waiting for the chatbot to response and also do not use via.placeholder.com for image placeholder as it is no longer in service.
ciaovietnam··on Dinner at a North Korean Restaurant in Shanghai (2016)
I visited a similar NK restaurant in Saigon a few times before they closed down decade ago and the experience was the same. What impressed me is that all the NK waitresses can speak the local language (Vietnamese) fluently and can sing or play music instruments. The food is quite authentic, some ingredients are exported from NK. It was a good experience overall.
ciaovietnam··on Ask HN: How Do You Clean and Structure Data at Work?
I don't deal with this kind of job too much but sometimes I have to migrate data from one system to another one. The cleaning is hard and specific to the data but most of the time I was able to deal with it using Regex find and replace and some command-line tools. For mapping, I would take 10 lines out of the CSV for test import, use AI or manually map the fields and then do batch import once the mapping is correct. AI can also help you clean, transform the data but the output may not be consistent.
ciaovietnam··on Ask HN: Solo developer building a product? Show us your work and get feedback
You made great points. Thanks a lot! I should focus on 1 or 2 selling points instead of just showing all the features. Will keep the 5-30-close in check for the next update.
ciaovietnam··on Ask HN: Solo developer building a product? Show us your work and get feedback
Unfortunately most Show HN threads are not shown on Show HN, they are shown in /shownew and /new for a short amount of time before other new threads arrive. To be shown in Show HN they must pass some unknown thresholds (upvotes???). I believe not many HNers visit /shownew and the chance to get upvotes on /new is quite slim due to the amount of new threads coming in. I know there must be some mechanism to prevent spamming but the current one also suppresses the exposure of Show HN threads and they are often buried in /shownew without much exposure/feedback.
ciaovietnam··on Ask HN: Solo developer building a product? Show us your work and get feedback
It seems really hard to get feedback by using ShowHN, I tried a few times but didnt get any. Anyway, I build a cool platform that combines Shopify/Wordpress and Airtable features into one, it is at https://sitegui.com. I'd appreciate some feedbacks as we are new.
ciaovietnam··on Ask HN: What software do you dream about, but do not have time to code yourself?
A network distributed block storage system that is as nearly fast and reliable as local storage. FYI, a block storage device can be used as virtual drives for virtual machines.
ciaovietnam··on Show HN: Qweek – Create a Week's Worth of Social Media Content in Minutes
Sounds promising. Are you going to build this on Wix?
ciaovietnam··on Ask HN: Recommendations for a Linux Distro and Laptop?
I use Macbook Air for the laptop and Debian as the server. Debian is stable and not bloated.
ciaovietnam··on Do you care about the differences this CMS may bring?
Do you think these differences worthy or worthless?
ciaovietnam··on Do you care about the differences this CMS may bring?
LiteGUI/SiteGUI Differences

LiteGUI/SiteGUI is a hybrid CMS that caters for both mobile apps and web apps. Every Model/Class will return one or more ViewBlocks that contain API root variable ($api) and optionally HTML helper root variable ($html) that can be consumed by API clients or utilized by the built-in View layer to render HTML from PHP Smarty templates server side. This means no separated API codebase is needed, Models/Classes are and should be developed using API first principle with additional on-demand HTML helpers. The integrated rate limiting engine is also capable of detecting API/non-API requests and applying thresholds accordingly. With this flexibility, LiteGUI/SiteGUI can be used as a stand-alone web app (server side rendering) or serves as the backend for other client side rendering (front-end) frameworks (NextJS, ReactJS etc) and mobile apps.

LiteGUI/SiteGUI is also the first CMS that employs sub-domains/sandboxing for mitigating XSS attacks. As LiteGUI/SiteGUI supports 3rd-party templates/themes, this mitigation strategy helps protect site owners from all types of XSS attacks (stored, reflected or DOM-based) that may (accidentally) be brought into their sites from 3rd party templates/themes. LiteGUI/SiteGUI uses a dedicated sub-domain for managing/submitting sensitive data and another sub-domain (loaded in a frame) for managing arbitrary contents and widgets (sandboxing). The advantage of sandboxing is that LiteGUI/SiteGUI can accept raw HTML content produced by a WYSIWYG editor or even through the browser's developer console, there is no need to use non-HTML editor like Markdown for editing the content. The main domain can display arbitrary contents (produced by site editors) as sensitive write operations are limited on the main domain. Despite using different sub-domains to avoid sharing cookies/authentication, the transitions/experience are seamless as LiteGUI/SiteGUI employs resource-based time-constraint token to automatically pass authenticated user information between sub-domains.

ciaovietnam··on I still like Sublime Text in 2025
I also use ST and use browser if I need some AI assisted coding. What about you guys? Is using IDEs with native AI coding plugin a good reason to switch away from ST?
ciaovietnam··on Ask HN: What license a SaaS company should use when open-source their software?
Yeah, that's exactly what we have in mind, the core source code is available to anyone to utilize for any commercial purposes except providing mass hosting for the source code without any substantial development/customization. Do you think this restriction will prevent people from using the software?
ciaovietnam··on Ask HN: What license a SaaS company should use when open-source their software?
Yeah, the Common Clause license is pretty close to what I want, I'm just concerned with the SaaS offering in one of the examples in the license:

"Let’s apply the example to Commons Clause licensed software. Commons Clause-licensed Redis Graph is a graph database module for BSD-licensed Redis. Can you create applications with Redis Graph and distribute and/or sell them? Yes. Can you redistribute Redis Graph along with your application? Yes. Can you offer that application as SaaS and charge for it? Yes. Can you take Redis Graph itself, call it ElastiGraph and offer it as SaaS and charge for it. No."

It could be that the application developed with Redis Graph is totally different to Redis Graph so SaaS offering is allowed. I will check this further, thanks for your suggestion.

ciaovietnam··on Ask HN: Alternatives to WordPress for Personal Blogging
Does kit work with Markdown? How about just plain HTML/CSS? I created a very versatile CMS system (https://sitegui.com) that can be extended to cross-post or serve different content types via hooks and automation, it is not newsletter focus by now but it should not be hard to use automation to send out emails to subscribers when a new post is published.
Page 1 of 2Next →