You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
See profiles and differences in `docs/PROFILES.md`.
22
22
23
+
## The Reality of Debugging AI-Generated Code
24
+
25
+
### Without Ubon
26
+
27
+
User: "The payment button doesn't work"
28
+
29
+
AI: "You're absolutely right! Let me fix that for you..."
30
+
31
+
*regenerates the component*
32
+
33
+
User: "Still broken"
34
+
35
+
AI: "I apologize! Let me try a different approach..."
36
+
37
+
*adds more event handlers*
38
+
39
+
User: "Nothing happens when I click"
40
+
41
+
AI: "I see the issue now! Let me update the onClick handler..."
42
+
43
+
*rewrites the same broken logic*
44
+
45
+
[3 hours later...]
46
+
47
+
User: "PLEASE JUST MAKE IT WORK"
48
+
49
+
AI: "I understand your frustration! Let me completely refactor..."
50
+
51
+
### With Ubon
52
+
53
+
```bash
54
+
$ ubon check
55
+
56
+
❌ Stripe key hardcoded in components/Payment.tsx:12
57
+
→ Your 'pk_live_...' key is exposed in client code
58
+
💡 Use NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY environment variable
59
+
60
+
❌ Button div has onClick but no keyboard handlers
61
+
→ components/Payment.tsx:45
62
+
💡 Use <button> element or add onKeyDown for accessibility
63
+
64
+
✓ Fixed in 30 seconds
65
+
```
66
+
23
67
## About me and Ubon
24
68
25
69
Hi, I'm Luisfer Romero Calero, an experienced software engineer passionate about building products and being creative. You can find more about me at https://lfrc.me. I created Ubon in six days, obsessed with solving a problem I kept seeing everywhere: the current wave of AI-generated "vibe-coded" apps that, while incredibly quick to build, are frustrating to deploy and use because AI overlooks so many essential details.
@@ -334,4 +378,8 @@ Photo credit: [Fallsonata on Unsplash](https://unsplash.com/es/@fallsonata)
334
378
335
379
Design notes:
336
380
- Primary accent color: `#c99cb3`
337
-
- Typography in banner: Martini Thai Neue Slab
381
+
- Typography in banner: Martini Thai Neue Slab
382
+
383
+
## Release policy
384
+
385
+
Ubon follows Semantic Versioning. Patch and minor releases are incremental and non-disruptive. Breaking changes only land in a new major version and include upgrade notes. See `docs/RELEASE-POLICY.md`.
Ubon follows Semantic Versioning. Our guiding principle: releases are incremental and non-disruptive. Upgrading within the same major version should be safe by default.
4
+
5
+
- Stability guarantees
6
+
- Patch (x.y.z) and minor (x.Y.z) releases are backward compatible
7
+
- Breaking changes only happen in a new major (X.y.z) with clear upgrade notes
8
+
- Rules and signal
9
+
- New rules default to warning or are opt-in; they will not fail builds unless you set --fail-on
0 commit comments