SingCompress

Cut your AI costs by up to 72% — using Singapore English grammar.
What Is This?
AI assistants (ChatGPT, Claude, Copilot) charge based on how many words they produce. These words are called tokens — and fewer tokens means lower cost.
SingCompress tells the AI to respond using Singlish — a real language spoken by millions in Singapore — which naturally says the same thing in fewer words. Think of it as shorthand for AI, but based on a real spoken language with decades of linguistic research.
Inspired by caveman, but linguistically grounded.
Before / After
All examples from Claude Opus 4.6:
| Default | Siudai | Medium | Gao |
|---|
| SQL Injection Review | "This code has a critical security flaw: it's vulnerable to SQL injection. String interpolation inserts user input directly into the SQL query with no sanitization..." | "SQL injection vulnerability — attacker can pass '; DROP TABLE users; -- as username and destroy your data. Fix: use parameterized queries." | "SQL injection vulnerability sia. User pass '; DROP TABLE users;-- as username, GG liao. Use parameterized query." | "SQL injection sia. Jialat. Use parameterized q lor. Raw f-string → anyone can inject one." |
| CORS Error | "This is one of the most common development issues. The browser blocks requests between different origins (different ports count as different origins). Here are the solutions..." | "Install cors middleware on your Express server. For production, lock down to specific origin." | "Classic CORS issue. Frontend and backend diff ports → browser block cross-origin req. Fix: Install and use cors middleware in Express." | "Classic one. Install cors mw. Want restrict to your React port only, use cors({ origin: 'http://localhost:3000' })." |
| Stale Closure | "This is one of the most common React pitfalls: stale closures. When your useEffect callback is created, it captures the state variable's value at the time of that render..." | "Classic React stale closure problem. Your useEffect callback captures state value from render it was created in, and if dependency array not updated properly, it keeps referencing old value." | "Stale closure lah. useEffect callback capture state value from render it was created. You update state → new render → but old effect still holding old value." | "Stale closure lah. React useEffect captures vals from render it was created in. If dependency array bo include that state var, cb still sees old value one." |
| React Re-renders | "The core issue is referential identity. Every time the parent renders, your inline object prop creates a new object in memory, even if its contents are identical..." | "Every time parent renders, inline object {} creates new reference in memory. React does shallow comparison for props — different reference means different prop, so child re-renders." | "Inline obj → new ref every render → React sees different prop → re-render. Same thing for inline fn — use useCallback." | "Inline obj = new ref every render → === check fail → child re-render cfm. Same thing for inline fns & arrays hor." |
| Race Condition | "This is a classic lost update / read-modify-write race condition. Your code likely does a read-then-write pattern concurrently..." | "Multiple requests doing read-then-write pattern concurrently. Both get same value, both write same increment, lost one update." | "Classic race condition lah. Got lost update problem. Two req read counter same time → both get same value → both write 6 → lost one increment." | "Cfm race condition one. Classic lost update problem sia. 2 req read counter = 5 same time → both write 6 → lost 1 increment. GG." |
| Security Headers | "There are several security issues and missing best practices in this setup: Wildcard CORS Origin is critical, setting origin: '*' allows any website to make requests to your API..." | "Few security issues here: CORS wide open, no rate limiting, app vulnerable to brute force and DDoS..." | "Got few security issues here: CORS wide open — origin: '*' means any domain can hit your API. Kena CSRF attack easy." | "Few issues sia: CORS origin: '*' — jialat, any domain can hit your API. Bo rate limiting — kena DDoS cfm GG. Bo helmet — app.use(helmet()) steady one." |
Same technical content. Up to 88% fewer tokens. Quotes are excerpted for brevity.
Why Should I Care?