Choosing Aurelia: Why I Spent 6+ Hours Wrestling When Everyone Said "Just Use React"

Choosing Aurelia: Why I Spent 6+ Hours Wrestling When Everyone Said "Just Use React"

The Breaking Point

It was hour four of day two. My terminal was a graveyard of failed builds. Stack Overflow had no answers. ChatGPT kept suggesting React solutions…

Two days. Six hours. Countless documentation tabs. One stubborn refusal to quit.

📝 Quick context: I'm a 2nd-year BTech student stepping out of my comfort zone.

Why Aurelia? (Or: "Are You Crazy?")

1. Separation of Concerns That Actually Makes Sense

button-ts.ts

@customElement('button-ts')
export class ButtonTs {
  @bindable() type: string = 'button';
  @bindable() className: string = '';
  
  bound() {
    // Clean TypeScript logic
  }
}

button-ts.html

<button type.bind="type" class.bind="className">
  <au-slot></au-slot>
</button>

2. Batteries Actually Included

✅ Built-in router(no react-router needed)
✅ State management(no Redux/Zustand)
✅ Dependency injection(first-class!)
✅ Custom elements(@bindable + au-slot)
✅ SSR(no Next.js required)

The Dark Hours: Where Aurelia Almost Lost Me

Documentation Issues

API references without real examples. The pieces are explained, but not the full puzzle.

// @bindable or @observable?
// How do I emit events?
// Where do components talk?
// Documentation was not helping 😭

The Community Gap

React error? 50 solutions. Aurelia error? One GitHub thread from 2018.

Why I Didn't Quit

The “MPA That Feels Like SPA” Moment

@route({
  routes: [
    {
      path: [''],
      component: import('./routes/home-page'),
      title: 'Home'
    },
  ],
  fallback: import('./missing-page'),
})

Theme Engine W That Just Worked

themeEngine.applyThemeStyles("IBMCarbon-Dark");
document.documentElement.style
  .setProperty('--primary-color', theme.primaryColor);

Who Should (and Shouldn't) Use Aurelia

✅ Use Aurelia If:

  • Separation of HTML/TS matters to you
  • You want enterprise-grade architecture
  • You value conventions
  • You hate React's hook-based chaos

❌ Avoid Aurelia If:

  • You're new to JS/TS
  • You want step-by-step tutorials
  • You want a huge npm ecosystem
  • You need fast prototypes

My Hard-Won Advice

  1. Be patient — the first 6 hours are the worst.
  2. Read the source.
  3. Use TypeScript seriously.
  4. npx makes aurelia is your best friend.
  5. The Discord server is gold.

Bonus: Debugging Hack

1. Copy your failing component
2. Include related docs section
3. Paste into a fresh AI chat
4. 80% chance of a working fix

The Verdict: Was It Worth It?

Yes.

  • Reusable components
  • A full theme engine
  • MPA routing with code splitting
  • No external state/routing deps

About the Author

Debaditya Malakar is a 2nd-year BTech student who picks frameworks out of curiosity and sticks to them out of spite.

GitHub: @DebadityaMalakar

Comments