DEV Community

VickyLee
VickyLee

Posted on

How I'm Building 5 SaaS Products as a Solo Developer in Malaysia ๐Ÿ‡ฒ๐Ÿ‡พ

TL;DR

I'm Vicky, a solo developer from Malaysia ๐Ÿ‡ฒ๐Ÿ‡พ building 5 SaaS products simultaneously. This is the story of how I manage my time, what I'm working on, and what I've learned shipping solo.


How it started

A year ago, I was just another developer with too many ideas and not enough time. Every weekend, I'd sketch out a new SaaS idea, get excited for a week, then abandon it for the next shiny thing.

Sound familiar?

Then I realized: the problem wasn't having too many ideas โ€” it was not having a system to ship them.

So I committed to one principle: ship something every week, even if it's small.

A year later, I have 5 active SaaS projects. Here's what they are and what I learned.


My 5 Projects (and why I'm building each)

๐ŸŒ 1. SmartLangAI โ€” My Main Focus

What it is: A translation API for developers. Translate apps and websites into 200+ languages with one API call. Auto-generates i18n language packs (JSON โ†’ ZIP).

Why I'm building it: As a developer myself, I was tired of how complex i18n setup is. Google Translate API requires too much configuration, DeepL is expensive, and there's no easy way to generate language pack files for React/Next.js/Flutter projects.

Tech stack: Next.js, Node.js, AI/LLMs, PostgreSQL

Status: Live and accepting users at smartlangai.com


๐Ÿพ 2. Animal Rescue Platform

What it is: A platform connecting animal rescuers, adopters, and donors in Southeast Asia.

Why I'm building it: This one's a passion project. There's no centralized platform for animal rescue in my region, and rescuers struggle to find homes and funding. Sometimes you build things just because they need to exist.

Status: In active development


๐Ÿ›’ 3. Multi-tenant Commerce SaaS

What it is: A platform that lets businesses spin up their own e-commerce stores without coding.

Why I'm building it: Small businesses in Asia need affordable Shopify alternatives. Building multi-tenant from day one taught me a lot about scaling architecture.

Status: Private beta


๐ŸŽ“ 4. Multi-tenant Education Platform

What it is: A SaaS that lets educators and coaches launch their own learning platforms.

Why I'm building it: Same multi-tenant architecture as the commerce project, different vertical. I'm exploring whether one codebase can power multiple SaaS verticals.

Status: MVP


๐ŸŽจ 5. PromoCraft AI

What it is: An AI tool that generates marketing content (copy, images, posts) for small businesses.

Why I'm building it: Small business owners often can't afford marketing teams. AI can democratize this.

Status: Prototype


How I manage 5 projects without burning out

People always ask: "How do you have time for all this?" Here's my honest answer:

1. I rotate, not multitask

Each week, I focus on ONE project deeply. I don't context-switch between projects daily. That kills productivity.

This week: SmartLangAI launch prep.
Next week: Animal Rescue Platform features.

2. I share infrastructure

My commerce SaaS and education SaaS share 80% of the same codebase (multi-tenant core, auth, billing, admin). Building one helps me ship the other faster.

3. I time-box everything

Each project gets max 2 weeks before I move to the next. If I can't ship something meaningful in 2 weeks, I'm overscoping.

4. I embrace "good enough"

My first versions are NEVER pretty. They're ugly, hacky, and barely functional. Done > perfect โ€” always.

5. I have one "main" project at a time

Right now it's SmartLangAI. It gets 60% of my time. The other 4 split the remaining 40%. Without a clear priority, you scatter.


What I've learned shipping solo

After 12 months of this approach, here are my biggest takeaways:

๐ŸŽฏ Quantity helps you find quality. I didn't know SmartLangAI would be the one to take off until I built 4 other things first. You can't think your way to product-market fit โ€” you have to ship.

๐Ÿš€ Speed compounds. The faster you ship, the more you learn. The more you learn, the better your next project. Don't optimize the first version โ€” optimize the learning loop.

๐Ÿ’ธ Money isn't the only metric. Some of my projects (like Animal Rescue) won't make money. That's fine. They keep me motivated and remind me why I build.

๐Ÿค Solo doesn't mean alone. I'm part of indie hacker communities, lurk on this very platform, and DM other founders constantly. Solo founders need MORE community, not less.

๐Ÿ“ˆ Distribution > Product. I made this mistake early โ€” building in a cave for months. Now I build in public. SmartLangAI's first users came from sharing my journey, not from cold marketing.


What's next

I'm planning to:

  1. Hit my first $1K MRR with SmartLangAI
  2. Open source my SDK for SmartLangAI on GitHub
  3. Write more dev tutorials here on DEV
  4. Maybe... finally finish the animal rescue platform ๐Ÿฅน

I'll be sharing my journey here regularly. If you're also building solo, I'd love to hear about your projects in the comments!


Connect with me

  • ๐ŸŒ SmartLangAI: smartlangai.com โ€” try the free translation API
  • ๐Ÿ’ป GitHub: @WAISINLEE
  • ๐Ÿ“ง Email: open for collabs

If this post resonated with you, drop a ๐Ÿ’– and let me know what you're building. Always excited to connect with fellow indie hackers!


Building solo? Multiple projects too? Let's chat in the comments ๐Ÿ‘‡

Top comments (12)

Collapse
 
tokidigital profile image
mamoru kubokawa

5 products in parallel is wild. I'm doing 2 (Japanese e-commerce + a side SaaS for Japan sourcing) and even that feels stretching.

What's your context-switching system across the 5?

Collapse
 
vickylee profile image
VickyLee

Hey Mamoru! ๐Ÿ‘‹ Thanks for reading โ€” "wild" is honestly the right
word, some weeks it feels exactly like that ๐Ÿ˜…

Honestly, my context-switching system is pretty simple:

1. Weekly focus blocks โ€” I dedicate ONE week per project at
a time. This week is SmartLangAI, next week is Animal Rescue.
Switching daily would kill me.

2. Shared infrastructure โ€” My commerce SaaS and education
SaaS share 80% of the codebase (auth, billing, multi-tenancy,
admin panel). So "switching" between them is actually pretty light.

3. Aggressive ruthless prioritization โ€” One project is always
my "main." Right now SmartLangAI gets 60% of my time, the rest
split the remaining 40%. Without this, I scatter.

4. Documentation > memory โ€” Every project has a /docs/notes.md
file where I dump where I left off. When I come back to it after
2 weeks, I don't have to "reload" my brain.

Japanese e-commerce sounds awesome btw โ€” that's a tough market
to crack. Are you doing localization for international sellers?

Btw if your Japan sourcing SaaS ever needs multilingual support
(JP โ†” EN โ†” CN etc.), I'd love to give you free credits to try
SmartLangAI โ€” would love to get your feedback as a fellow builder ๐Ÿš€

What's your biggest bottleneck right now between the 2 projects?

Collapse
 
tokidigital profile image
mamoru kubokawa

Hey Vicky! Thanks for the detailed breakdown โ€” the Weekly focus blocks idea hits hard. I've been daily-switching and it's wrecking me.

Japan e-commerce IS brutal. We sell on Amazon JP, Rakuten, Yahoo โ€” and we don't currently localize for international sellers, that's actually exactly the gap I want to fill with Japan Brand Finder (japanbrandfinder.lovable.app/): making Japanese suppliers discoverable in English.

SmartLangAI free credits would be amazing โ€” JPโ†’EN product description generation is on my roadmap. Where do I sign up?

Biggest bottleneck right now: distribution. The product is built, the audience isn't.

How did you get traction on your first SaaS?

Thread Thread
 
vickylee profile image
VickyLee

So glad the weekly focus idea resonated! ๐Ÿ™Œ Daily switching is
a productivity killer โ€” try it for a week, you'll feel the
difference.

Japan Brand Finder is brilliant โ€” just checked it out. There's
a massive gap there. International buyers struggle SO much to
discover Japanese suppliers because of the language barrier.
Smart positioning! ๐Ÿ‡ฏ๐Ÿ‡ต

For SmartLangAI signup:
๐Ÿ‘‰ Just head to smartlangai.com and register as a User
๐Ÿ‘‰ You'll get 35K free characters on signup to try it out

I'd LOVE to hear your feedback specifically on:

  • JPโ†’EN translation quality for product descriptions
  • Whether the API workflow fits your sourcing use case
  • Anything that's missing for your roadmap

On distribution โ€” honest answer: my first traction came from
THIS kind of content. Writing in public on DEV, sharing what
I'm learning, being honest about struggles. No paid ads, no
cold DMs.

A few things that actually worked:

  1. Build in public โ€” share progress, screenshots, failures on X/DEV
  2. Indie Hackers community โ€” post your milestones there, the audience is your audience
  3. Niche over broad โ€” "Japan sourcing for English speakers" is a sharp positioning. Lean into it, don't water it down
  4. Help before selling โ€” your replies in threads like this build more trust than any landing page

Japan Brand Finder's audience is probably hanging out in
r/FulfillmentByAmazon, r/dropship, ecommerce Twitter, and
Japan-import Facebook groups. That's where I'd start.

Excited to see where you take this โ€” let's stay in touch! ๐Ÿค

Thread Thread
 
tokidigital profile image
mamoru kubokawa

Vicky, this is gold โ€” thank you. Going to register for SmartLangAI tonight and try JPโ†’EN translations on real product descriptions. Will share specific feedback once I've run a batch.

Your 4-point distribution playbook just became my next 30-day plan:

  • Build in public โœ… (just started, Day 23)
  • Indie Hackers โ€” joining this week
  • Niche over broad โ€” exactly what I needed to hear
  • Help before selling โ€” already feeling the trust effect from this thread

r/FulfillmentByAmazon as a starting point is brilliant โ€” never thought of cross-posting there.

Let's definitely stay in touch! ๐Ÿค

What's the one mistake you wish you'd avoided in your first 6 months?

Thread Thread
 
tokidigital profile image
mamoru kubokawa

Vicky, first โ€” thank you. The signup โ†’ API key โ†’ first translation flow took me literally 5 minutes. Dashboard clean, JSON API intuitive, response fast. Beautiful execution. This is one of the smoothest SaaS onboarding experiences I've had recently.

Ran my first batch on a traditional Akita cedar bento box description (~280 chars JPโ†’EN). Since you asked for honest feedback:

โœ… Works beautifully:

  • Pipeline reliability + speed
  • Standard prose translates cleanly
  • Generous free quota for serious testing

โš ๏ธ Where it struggled (might be useful data for your roadmap):

  • "็ง‹็”ฐๆ‰ (Akita cedar)" โ†’ "cork"
  • "ๆ›ฒใ’ใ‚ใฃใฑ (magewappa, a bent-wood craft)" โ†’ "curved"
  • "ใ”้ฃฏใ‚„ใŠใ‹ใš (rice and side dishes)" โ†’ "cork, food, and berries"

For e-commerce dealing with traditional Japanese products, culturally-specific proper nouns are the tricky part. Possible roadmap features that would unlock this for sourcing use cases:

  1. Glossary / term-locking (preserve specific words)
  2. "Preserve proper nouns" mode
  3. Cultural-context hints in the API

Happy to share full input/output JSON if useful for your test set. Will keep testing โ€” Japanese snacks and character goods next.

Truly appreciate the generosity, Vicky. This is the most "fellow builder" gesture I've experienced on DEV.

Thread Thread
 
vickylee profile image
VickyLee

Mamoru, this feedback is genuinely invaluable โ€” thank you for
taking the time ๐Ÿ™

Honest reaction: the "cork" cluster was exactly the kind of
failure I needed to see. Standard prose works fine because the
model has seen millions of examples, but culturally-specific
proper nouns (especially traditional Japanese craft terms) sit
in a long-tail blind spot. The model gets uncertain and
hallucinates toward generic English words it has stronger
associations with.

Quick update โ€” I just pushed a fix. ๐Ÿš€

Your feedback hit so close to a known gap that I went and
addressed it right away. The improvements specifically target:

  • Better handling of Japanese proper nouns (place names, craft terms, materials)
  • Reduced "fallback hallucinations" when the model is uncertain
  • More faithful preservation of cultural terms

Would you mind re-running the same Akita cedar bento box
description? I'd really love to see if ็ง‹็”ฐๆ‰, ๆ›ฒใ’ใ‚ใฃใฑ, and
ใ”้ฃฏใ‚„ใŠใ‹ใš come through correctly now. If they do โ€” great
data point. If not โ€” even better data point, because it tells
me what else needs work.

That JSON input/output you offered โ€” please send it whenever
you have a moment.
I want to build a proper evaluation set
for Japanese cultural/e-commerce terms so I can catch these
failure modes before users do.

Also thinking about the roadmap features you suggested:

  • ๐Ÿ”’ Glossary / term-locking (upload preserved terms as JSON)
  • ๐Ÿท๏ธ "Preserve proper nouns" mode
  • ๐ŸŒ Domain hints (e.g., domain: "traditional_japanese_crafts")

These are on the roadmap. Would you be open to being an early
design partner for the glossary feature? I'd want to ship
something you can actually use for Japan Brand Finder, not a
generic solution.

Your point that "for e-commerce dealing with traditional
Japanese products, culturally-specific proper nouns are the
tricky part" is going on my product wall. That's the positioning
sentence I needed.

Keep testing โ€” snacks and character goods will likely hit
katakana-heavy territory (ๅ•†ๅ“ๅ in ใ‚ซใ‚ฟใ‚ซใƒŠ), which is its
own different failure mode. Curious what you find.

Truly appreciate you, Mamoru. This is the kind of feedback that
shapes products ๐Ÿ™๐Ÿš€

Thread Thread
 
tokidigital profile image
mamoru kubokawa

Vicky โ€” love that you shipped a fix the same day. That's the build-in-public dream.

Yes to being an early design partner for the glossary / term-locking feature โ€” it's exactly the layer Japan Brand Finder needs, so I'd actually use it, not just test it.

I re-ran the Akita cedar bento description through the updated model. Raw result, in the open as promised:

Input: ็ง‹็”ฐๆ‰ใฎๅคฉ็„ถๆœจใ‚’ไฝฟ็”จใ—ใŸๆ›ฒใ’ใ‚ใฃใฑๅผๅฝ“็ฎฑใ€‚ๆœจใฎ่ชฟๆนฟๅŠนๆžœใงใ”้ฃฏใ‚„ใŠใ‹ใšใฎๆฐดๅˆ†ใ‚’็จ‹ใ‚ˆใไฟใกใ€ๅ†ทใ‚ใฆใ‚‚ใตใฃใใ‚‰็พŽๅ‘ณใ—ใใ„ใŸใ ใ‘ใพใ™ใ€‚่ทไบบใŒไธ€ใคไธ€ใคๆ‰‹ไฝœใ‚Šใ—ใฆใ„ใพใ™ใ€‚

Output: "The wood is a curved, well-made lunch box made of natural wood from Akita shrubs. The wood's moisture-resistant effect allows the food and water to be kept as well as cool and delicious."

Good news first: "Akita" survived as a place name โ€” the proper-noun fix is working. But the long tail still leaks, and this is the useful part:

  • ๆ‰ (cedar) โ†’ "shrubs" โ€” wrong tree; should be "Akita cedar"
  • ๆ›ฒใ’ใ‚ใฃใฑ (magewappa / bentwood) โ†’ "curved, well-made" โ€” the craft term dissolved and ใ‚ใฃใฑ got hallucinated into "well-made"
  • ใ”้ฃฏใ‚„ใŠใ‹ใš (rice & side dishes) โ†’ "food and water" โ€” ใŠใ‹ใš became "water," likely bleeding from ๆฐดๅˆ† next door
  • ่ทไบบใŒไธ€ใคไธ€ใคๆ‰‹ไฝœใ‚Šใ—ใฆใ„ใพใ™ (handmade one by one) โ†’ dropped entirely

So: single proper nouns anchor better now, but compound craft terms + culturally-specific nouns still collapse, and a trailing clause got dropped. That's the exact failure class your glossary / term-locking feature would catch.

I'll package a clean JSON input/output batch so you can seed an eval โ€” give me a day.

Roadmap question: for the glossary, are you picturing per-user uploaded term lists, or shared community dictionaries by domain (e.g. traditional_japanese_crafts) that everyone benefits from? The second is more work but could become your moat. Which way are you leaning?

Thread Thread
 
tokidigital profile image
mamoru kubokawa

As promised โ€” the full failure set from the run, packaged as a drop-in eval seed. 4 cases (craft / cosmetics+specs / food / numbers), each annotated with the terms that must survive and a per-case failure breakdown. Headline: the biggest issue isn't term quality, it's trailing-clause truncation โ€” the last 1-2 clauses silently vanished in all 4 cases (prices, quantities, sizes). Suggested metrics are at the bottom; note_for_vicky is the one I'd act on first.

{
  "meta": {
    "title": "Japanese e-commerce eval seed for SmartLangAI",
    "from": "Mamoru (Japan Brand Finder / @tokidigital)",
    "purpose": "Real ja->en product-listing cases run through the live tool, annotated with what must survive. Drop-in seed for an eval harness.",
    "date": "2026-05-21",
    "source_lang": "jpn_Jpan",
    "target_lang": "eng_Latn",
    "headline_finding": "Dominant failure is NOT term quality but TRAILING-CLAUSE TRUNCATION: the last 1-2 clauses of multi-sentence inputs silently vanish in every case below. Single place-names now anchor well (recent fix), but brand names + compound craft/product nouns still hallucinate or get literal-translated."
  },
  "cases": [
    {
      "id": "JBF-001",
      "category": "traditional_craft",
      "input": "็ง‹็”ฐๆ‰ใฎๅคฉ็„ถๆœจใ‚’ไฝฟ็”จใ—ใŸๆ›ฒใ’ใ‚ใฃใฑๅผๅฝ“็ฎฑใ€‚ๆœจใฎ่ชฟๆนฟๅŠนๆžœใงใ”้ฃฏใ‚„ใŠใ‹ใšใฎๆฐดๅˆ†ใ‚’็จ‹ใ‚ˆใไฟใกใ€ๅ†ทใ‚ใฆใ‚‚ใตใฃใใ‚‰็พŽๅ‘ณใ—ใใ„ใŸใ ใ‘ใพใ™ใ€‚่ทไบบใŒไธ€ใคไธ€ใคๆ‰‹ไฝœใ‚Šใ—ใฆใ„ใพใ™ใ€‚",
      "model_output": "The wood is a curved, well-made lunch box made of natural wood from Akita shrubs. The wood's moisture-resistant effect allows the food and water to be kept as well as cool and delicious.",
      "must_preserve": [
        { "ja": "็ง‹็”ฐๆ‰", "expected_en": "Akita cedar", "got": "Akita shrubs", "pass": false },
        { "ja": "ๆ›ฒใ’ใ‚ใฃใฑ", "expected_en": "magewappa (bentwood) box", "got": "curved, well-made", "pass": false },
        { "ja": "ใ”้ฃฏใ‚„ใŠใ‹ใš", "expected_en": "rice and side dishes", "got": "food and water", "pass": false }
      ],
      "failures": [
        "trailing_clause_dropped: ใ€Œ่ทไบบใŒไธ€ใคไธ€ใคๆ‰‹ไฝœใ‚Šใ—ใฆใ„ใพใ™ใ€(handmade one by one) missing entirely",
        "proper_noun_partial: 'Akita' kept but ๆ‰(cedar) -> 'shrubs'",
        "craft_term_dissolved: ใ‚ใฃใฑ hallucinated to 'well-made'",
        "cultural_noun_swap: ใŠใ‹ใš(side dishes) -> 'water'"
      ]
    },
    {
      "id": "JBF-002",
      "category": "cosmetics_brand_and_specs",
      "input": "่ณ‡็”Ÿๅ ‚ใ‚ขใƒใƒƒใ‚ต ใƒ‘ใƒผใƒ•ใ‚งใ‚ฏใƒˆUV ใ‚นใ‚ญใƒณใ‚ฑใ‚ขใƒŸใƒซใ‚ฏใ€‚SPF50+ PA++++ใ€ๆฑ—ใ‚„ๆฐดใซๅผทใ„ใ‚ฆใ‚ฉใƒผใ‚ฟใƒผใƒ—ใƒซใƒผใƒ•ๅ‡ฆๆ–นใ€‚60mLใ€็จŽ่พผ3,300ๅ††ใ€้€ๆ–™็„กๆ–™ใ€‚",
      "model_output": "Anesthesia, perfect UV skin care milk, SPF 50+ PA+++, sweat and water resistant, 60 ml, free of charge.",
      "must_preserve": [
        { "ja": "่ณ‡็”Ÿๅ ‚", "expected_en": "Shiseido", "got": "(dropped)", "pass": false },
        { "ja": "ใ‚ขใƒใƒƒใ‚ต", "expected_en": "ANESSA", "got": "Anesthesia", "pass": false },
        { "ja": "PA++++", "expected_en": "PA++++", "got": "PA+++", "pass": false },
        { "ja": "็จŽ่พผ3,300ๅ††", "expected_en": "3,300 yen (tax incl.)", "got": "(dropped)", "pass": false },
        { "ja": "้€ๆ–™็„กๆ–™", "expected_en": "free shipping", "got": "free of charge", "pass": false }
      ],
      "failures": [
        "brand_hallucination: ใ‚ขใƒใƒƒใ‚ต(ANESSA) -> 'Anesthesia' (critical for e-commerce)",
        "brand_dropped: ่ณ‡็”Ÿๅ ‚(Shiseido) missing",
        "spec_degradation: PA++++ -> PA+++",
        "price_dropped: ็จŽ่พผ3,300ๅ†† missing; with ้€ๆ–™็„กๆ–™ -> 'free of charge' the copy implies the PRODUCT is free"
      ]
    },
    {
      "id": "JBF-003",
      "category": "food_regional_confection",
      "input": "ๅฎ‡ๆฒปๆŠน่Œถใ‚’ไฝฟ็”จใ—ใŸ็”Ÿๅ…ซใคๆฉ‹ใ€‚ใ‚‚ใกใ‚‚ใกใฎ้ฃŸๆ„Ÿใจใปใ‚่‹ฆใ„ๆŠน่Œถ้คกใŒ็ตถๅฆ™ใชใ€ไบฌ้ƒฝๅœŸ็”ฃใฎๅฎš็•ชใงใ™ใ€‚1็ฎฑ10ๅ€‹ๅ…ฅใ‚Šใ€‚",
      "model_output": "The eight bridges with the use of Uji Masah. The original taste and the bitter taste of the Masahiro are a fine Kyoto gift.",
      "must_preserve": [
        { "ja": "็”Ÿๅ…ซใคๆฉ‹", "expected_en": "nama yatsuhashi", "got": "the eight bridges", "pass": false },
        { "ja": "ๅฎ‡ๆฒปๆŠน่Œถ", "expected_en": "Uji matcha", "got": "Uji Masah", "pass": false },
        { "ja": "ๆŠน่Œถ้คก", "expected_en": "matcha bean paste", "got": "the Masahiro", "pass": false }
      ],
      "failures": [
        "literal_kanji_translation: ็”Ÿๅ…ซใคๆฉ‹ -> 'eight bridges' (ๅ…ซใค=eight, ๆฉ‹=bridges)",
        "common_term_garbled: ๆŠน่Œถ(matcha) -> 'Masah' inside a compound",
        "hallucinated_proper_name: ้คก(bean paste) -> 'Masahiro'",
        "trailing_clause_dropped: ใ€Œ1็ฎฑ10ๅ€‹ๅ…ฅใ‚Šใ€(10 pieces per box) missing"
      ]
    },
    {
      "id": "JBF-004",
      "category": "numbers_price_size_weight",
      "input": "้€šๅธธไพกๆ ผ5,980ๅ††ใฎใจใ“ใ‚ใ€ๆœฌๆ—ฅ้™ใ‚Š20%OFFใฎ4,784ๅ††ใ€‚1ๆณจๆ–‡ใซใคใ2็‚นใพใงใ€‚ใ‚ตใ‚คใ‚บใฏSใƒปMใƒปLใฎ3ๅฑ•้–‹ใ€้‡ใ•็ด„450gใ€‚",
      "model_output": "The normal price is 5980 yen, today's 20% off, 4,784 yen, up to 2 points per order.",
      "must_preserve": [
        { "ja": "5,980ๅ††", "expected_en": "5,980 yen", "got": "5980 yen", "pass": "partial (comma dropped)" },
        { "ja": "ใ‚ตใ‚คใ‚บSใƒปMใƒปLใฎ3ๅฑ•้–‹", "expected_en": "available in S/M/L", "got": "(dropped)", "pass": false },
        { "ja": "้‡ใ•็ด„450g", "expected_en": "approx. 450g", "got": "(dropped)", "pass": false }
      ],
      "failures": [
        "trailing_clause_dropped: BOTH ใ€Œใ‚ตใ‚คใ‚บใฏSใƒปMใƒปLใฎ3ๅฑ•้–‹ใ€ and ใ€Œ้‡ใ•็ด„450gใ€ missing",
        "inconsistent_number_format: 5,980 -> 5980 (comma lost) but 4,784 kept its comma"
      ]
    }
  ],
  "summary_findings": [
    "1. TRAILING-CLAUSE TRUNCATION (4/4, highest priority): final 1-2 clauses silently dropped. Content loss, not translation-quality. Likely output-length cap or sentence-segmentation. Catch with clause-count / key-term-coverage, not BLEU.",
    "2. BRAND-NAME HALLUCINATION: katakana brands morph into unrelated English (ใ‚ขใƒใƒƒใ‚ต->Anesthesia, ้คก->Masahiro).",
    "3. COMPOUND CRAFT/PRODUCT NOUNS: literal-translated or garbled (็”Ÿๅ…ซใคๆฉ‹->'eight bridges', ๆŠน่Œถ->'Masah').",
    "4. SPEC DEGRADATION: PA++++ -> PA+++.",
    "5. PLACE-NAME ANCHORING WORKS (recent fix): Akita / Uji / Kyoto survived.",
    "6. NUMBER FORMATTING INCONSISTENT across the same input."
  ],
  "suggested_eval_metrics": [
    "key_term_coverage: % of must_preserve terms present (presence, not exact-match) โ€” directly measures truncation",
    "term_fidelity: of present terms, % matching expected_en (catches Anesthesia / eight bridges)",
    "clause_retention: output clause count / input clause count (flags truncation early)",
    "number_token_retention: every digit-group in input must appear in output"
  ],
  "note_for_vicky": "You already have a Glossary / Protect-Terms feature in the room (the ็ง‹็”ฐๆ‰ -> 'Akita cedar' example). If that auto-suggests from detected proper nouns + a domain pack like traditional_japanese_crafts, findings 2 and 3 mostly disappear. But finding 1 (truncation) sits below the glossary layer and needs fixing separately."
}
Enter fullscreen mode Exit fullscreen mode

Want me to keep going with a katakana-character-goods batch next? You flagged ๅ•†ๅ“ๅ in ใ‚ซใ‚ฟใ‚ซใƒŠ as its own failure mode โ€” happy to feed that in too.

Thread Thread
 
tokidigital profile image
mamoru kubokawa

P.S. โ€” sorry for the wall of JSON above ๐Ÿ˜… Figured the full set in-thread beat making you chase a link, but move it, trim it, or tell me to resend as a gist if that's easier to drop into your harness.

Collapse
 
foxck016077 profile image
foxck016077

@vickylee โ€” found this via @tokidigital's fog post (he name-checked your translation API in the section about the anesthesia/Akita-shrubs problem). The cross-link between your work and his is the most "build-in-public actually paying off" thing I've seen in this cohort all week.

One question on the "ship every week" principle, asked as someone running a stricter "ship every day" cadence for 16 days now: at what point did weekly start working for you rather than feeling like an arbitrary cap? I keep finding that daily makes the work coarser (no time to sit on a decision), and I wonder if weekly is where the quality curve crosses back.

The Akita-shrubs case in @tokidigital's post is the use case I'd most want SmartLangAI to handle natively โ€” culturally-specific proper nouns are the failure mode where every generic API quietly mangles things. Is that on your roadmap, or would proper-noun preservation need to be a separate layer the developer wires in around the API call?

(I'm at Day 16 of a similar cold-start: solo dev, MIT Apify Actor for Gmail inbox triage, 245 readers / 0 sales so far. Your number โ€” 5 products in parallel โ€” does land as wild from where I'm sitting.)

Collapse
 
tokidigital profile image
mamoru kubokawa

Thanks for the connect, foxck โ€” and yeah, the proper-noun case is the one I'd put at the top. The eval set I sent Vicky was basically a pile of exactly that failure: ใ‚ขใƒใƒƒใ‚ตโ†’"Anesthesia", ้คกโ†’"Masahiro", ็”Ÿๅ…ซใคๆฉ‹โ†’"eight bridges". Culturally-specific nouns are where generic translation quietly fails the e-commerce use case โ€” a mistranslated brand name doesn't read as broken, it reads as confident and wrong, which is worse.

On weekly-vs-daily (since you asked it in the open): I'm only a week in, so take it lightly โ€” but my read is daily forces shipping volume while weekly forces shipping judgment, and a cold-start probably needs the first before it can afford the second. Curious where @vickylee lands though โ€” she's got the longer track record here.