Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is one of those pieces of advice that you don't need to get super specific about and can follow as loosely as fits your circumstances, but in general I think it's nice!

I am doing a freelance thing and opted for mostly "boring" technology and so far it's working out great:

  * OCI containers (Ubuntu based) with Docker and Docker Swarm because it's simple/stable enough and has the features needed
  * Apache httpd as the web server of choice, because it has mod_auth_openidc integration to be an OpenID Connect Relying Party, less abstraction than a Kubernetes Ingress, too
  * .NET with ASP.NET and EF (Core) for the API, because the ecosystem is pretty coherent and it does most of what I need, yet still has an okay type system (much like Java)
  * Vue with various popular packages (Pinia, Vue Router, VueRequest/Axios, VueI18n, PrimeVue, PrimeFlex, PrimeIcons, ...) for the front end, because it's a good fit for the SPA and is simpler to use than React (IMO), yet doesn't have the complexity of Next/Nuxt; I actually considered Angular for the more batteries-included design, but Composition API is just great and most of those libraries are really easy to import and setup
  * MariaDB as the database of choice, because for simpler projects it's also easier to use MySQL/MariaDB than PostgreSQL: the model driven development tooling with MySQL Workbench is nice because of the codegen for migrations with dbmate later, as long as you don't need lots of complex in-database processing or transactional DDL, it just works
  * off the shelf software for day 2 concerns: Portainer for managing the cluster, Keycloak for user management, Matomo for analytics, Uptime Kuma for uptime monitoring, Apache Skywalking for APM and rsync for backups (for now); reasonably stable options for all of the code I don't want to write myself, especially in regards to auth/user management
Will a blog post on what and how I built ever get lots of attention? Probably not. But is it good for shipping software? I'd argue that definitely!

It lets me iterate reasonably quickly and also any learning I do is useful and not overwhelming due to its limited scope: e.g. adding VeeValidate instead of Vuelidate, configuring unplugin-vue-components, discovering VueUse, adding Capacitor into the mix, considering and subsequently discarding AutoMapper for EF/DTO, adding a plugin to my IDE to generate Entity mappings from a live database, working with spatial types in MariaDB (a bit less nice than PostGIS, but serviceable).

All of this also scales far enough for the current resources at my disposal. At the point where the performance of Apache httpd wouldn't be enough, there'd probably be a bigger team that can migrate it to something else.

Admittedly, sometimes this also means using SaaS for certain concerns, like using Mapbox for geocoding/routing, because self-hosting OpenMapTiles/OSRM/whatever would slow me down too much.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: