-
Traditional server rendered applications
-
Applications with "islands of richness"
-
Single Page Applications (SPA)
-
Server rendered interactive web applications
- LiveView (Phoenix - Elixir)
- Livewire (Laravel - PHP)
- Hotwire (Ruby on Rails - Ruby)
-
Things to consider when choosing technologies for an application
- SEO
- What kind of UX does the application require? Are page refreshes ok?
- Timeline and development complexity
- Team member experience
- Team interest
- Technology stability vs. "shiny new toy"
- Documentation
- Community activity
-
CSS Technologies
- Utility based frameworks (e.g. Tailwind) vs. Bootstrap
- Bootstrap pros: Easy to use
- Bootstrap cons: Difficult to cutomize except for colors
- Utility based framwork pros: Fewer class names, Less code, Safe refactoring, No zombie CSS
- Utility based framework cons: HTML can be "uglier", Learning curve, Non standard, Requires tooling
-
Frontend JavaScript framework technologies
- Frontend JavaScript frameworks: React, Ember, Vue, Angular, Svelte
- Extended frameworks: Next.js (React), Remix (React), Nuxt (Vue), Astro (React, Vue, Svelte), SvelteKit (Svelte)
-
Backend technologies
- Batteries included vs. "build your own" framework
- Laravel, Ruby on Rails, Node.js