The most tedious part of every app release was translating the release notes. When launching KOOTD, I had to translate into Korean, English, and Japanese separately. Going to a translation site, translating one by one, formatting, copying and pasting — incredibly inefficient.
At first I just dealt with it. But repeating the same thing with every update, I thought "can't I just automate this?" I looked at other release note generators too, but they required logins or had tight free tier limits. Figured it'd be faster to just build my own.
How I Built It
Started with the Google Translate API for the translation feature. Calling it directly from the client caused CORS errors, so I routed it through a Next.js API Route.
// pages/api/translate.js
export default async function handler(req, res) {
const { text, targetLang } = req.body;
try {
const result = await translate(text, { to: targetLang });
res.status(200).json({ success: true, translatedText: result.text });
} catch (error) {
res.status(500).json({ success: false, error: error.message });
}
}
Google Play Store and App Store formats are different, so I had to support both. Play Store uses <ko-KR>content</ko-KR> format, while the App Store has separate input fields per language.
// Google Play Store format
const generateGoogleFormat = (translations) => {
let formatted = '';
for (const [lang, text] of Object.entries(translations)) {
const playStoreLang = getPlayStoreLanguageCode(lang);
formatted += `<${playStoreLang}>\n${text}\n</${playStoreLang}>\n`;
}
return formatted;
};
The UI started as bare functionality, but once I used it I found it clunky. So I grouped language selection by region, added a progress bar, and put individual copy buttons per language. Also added a pinned text feature for things like version numbers that shouldn't be translated.
Using It for Real
Translation quality is Google Translate level. For release notes, it's mostly fine. Complex sentences come out weird sometimes.
What used to take 10-15 minutes now takes 2-3 minutes. The more languages you need, the bigger the difference. Write in Korean, select target languages, hit the button, copy each language's output and paste. Done.
What I'm Thinking About Next
I'd like to integrate an AI translation service for better quality, and a template feature would be nice — save frequently used release note formats. But that would mean connecting a backend, which adds at least $10/month in costs... Still debating.
Honestly it started as a "I'm too lazy to keep doing this" thing, but I actually use it every time I ship an update. I'd love for these little utility tools to accumulate traffic and eventually monetize, but that's still uncertain.
Want to try it? Check out the Release Note Generator.