Live data from Hacker News

Ask HN: What would be your stack if you are building an MVP today?

news.ycombinator.com

671–680 of 736 posts

Re: Ask HN: What would be your stack if you are building an MVP today?

#671

Definitely old schools. I am building a MVP right now(kinda building my parachute while jumping off the plane)and I went with Django. And here is why. 1. Very vibrant community of devs and time-tested open-source libraries.If you want a multi-tenancy there is a library for that. IF you want stripe integration there is one for that. If you want "fully built out" services, then we have a plethora of free and paid templ…

one thing I'd like to see in Django is something similar to InertiaJS [1], just being able to use VueJS for the view layer is amazing and passing data from the backend to the frontend without having to build complex api systems is a godsend. Maybe I haven't done enough research but is there something similar in Django world ? [1] https://inertiajs.com/

Reactivated [1] looks similar in spirit, but using React on the frontend. I haven't tested it yet but the idea is very interesting.

[1] https://www.reactivated.io/

Re: Ask HN: What would be your stack if you are building an MVP today?

#672

Earlier quoted context omitted.

Just a normal create-user/login form. Or Firebase Auth if Google and other sign in's need to be supported.

In the former case, are you managing signups, password resets...?

Yes, I write those parts myself.

Re: Ask HN: What would be your stack if you are building an MVP today?

#673
post #208

Earlier quoted context omitted.

Have you found any good managed places to deploy modern .NET apps other than Azure? My experience is you can either use Azure, in which it's fairly abstracted for you but overpriced, or you can use something like DO where it's more reasonably priced but you have to handle everything yourself.

Looks like you can run containerized .NET apps via GCP Cloud Run https://cloud.google.com/run/docs/fit-for-run

This is what I do.

* CloudRun - .NET in Docker * CloudSQL - Managed Postgres

Re: Ask HN: What would be your stack if you are building an MVP today?

#674

I'm going to buck the (numerous) trends here and keep it simple at the same time. C# REST APIs on Linux with PostgreSQL and the front-end framework of your choice. I generally stick with Angular.

Same (but I use F#)!

I find .NET to be great for backends though maybe not as great for frontends (there's just better stuff out there). So I use the best tool for the job and that typically means using something else for frontend.

Right now I use SvelteKit for frontend.

Re: Ask HN: What would be your stack if you are building an MVP today?

#675

Earlier quoted context omitted.

>I'd almost like to reach for Blazor, but if it's at all public-facing, I don't think I can justify using Blazor at this time. What are your concerns with Blazor for public facing apps?

Try navigating to the site for the Blazor material design library, MudBlazor, on a mobile browser: https://mudblazor.com As much as I want Blazor to work out well, those load times are too abysmal for me to seriously consider Blazor outside of internal apps.

Oh wow - I thought it was broken.

Nope, just loading.

Re: Ask HN: What would be your stack if you are building an MVP today?

#677
I've been building MVPs for the past yearish with this stack. Some of these choices are newish / smallish but it's the simplest, most enjoyable stack I've tried so far.

- Frontend: SvelteKit (Dockerized)

- Backend: F# / .NET running Giraffe (Dockerized)

- Data: Postgres (Managed - currently GCloudSQL)

- Hosting: Serverless Containers (currently GCloudRun)

I built a boilerplate for this to make it easier to improve / spin up: https://cloudseed.xyz

Re: Ask HN: What would be your stack if you are building an MVP today?

#678
post #523

It's obscure and different but I'd be using https://safe-stack.github.io/ I've never felt as confident about my code as I am with F#. It takes a little getting used to and some custom widgets are awkward to get working but I love the stack.

Another F# fan here =)

I really like it for building backends but I haven't found the frontend story as compelling. Currently I use F# for my API and then use a standalone frontend (currently SvelteKit) to try and get the best tool for backend / frontend.

Q: How's your experience been with F# frontends? I'm assuming you're using Fable?

Re: Ask HN: What would be your stack if you are building an MVP today?

#680
Building an MVP right now. My front-ends are primarily native mobile apps, because it's a video chat app. The website is simple React app.

My backend is a custom/hybrid pattern I've been developing over the last few years which is primarily focused around CQRS + Event Sourcing + DDD.

I have a single backend "command interface" (really just a single http endpoint that receives the name of a command + a data payload. think POST the_beam_is_god.com/commands { command: "request_login_link_via_email", data: { email: "snake_case_rulez@aol.com" } }

The command names are arbitrarily named based on the needs of my business. I make no concern for the internal code structure of my app with naming commands. This allows business people, frontend people and backend devs to all communicate in english and focussed on the business domain only. It's up to my handler function for this specific command to do any business logic validation, etc. If all good, an event is written to a stream (or linked to multiple streams) and the command handler function is done. Its concern ends at the point of publishing an event into a stream (or responding back with a rejection). (note: the events go into postgres, but any store would work as long as you can index on the stream names)

The above command example might publish an event called "UserRequestedLoginEmailViaTheApp" into a stream called "LoginActivity:snake_case_rulez@aol.com". I do lots of small streams of related activity. (related in context of the business logic of my domain).

The other half of my system is a series of handler functions that do arbitrary business logic things when events are published. To continue with the example: UserRequestedLoginEmailViaTheApp is mapped to one or more handlers. One obvious handler for this type could queue up the email delivery. I can do anything in these handlers in response to the fact that X activity HAS occurred. Another frequent thing I do in an event handler (I call them Reactors) is play back a domain model stream to get its current state (via a "projection") and update my (R)ead store. Think "UserUpdatedName" event in a stream called "User:id123". Command "update_user_name" -> Event gets published -> Reactor reacts and pushes a new version (current state) of this user into the [mongo] users collection -> then a subscriber process (elixir genserver) to the mongo oplog reacts and pushes the new version of this user down a websocket to provide live data updates to any apps/frontends.

Maybe this sounds complex and bloated at first read, but my codebase boilerplate is ridiculously small, a few dozen lines. What's cool too is that this can be done in any language/runtime environment.

I started doing this in ruby in 2019, but as I was getting up to speed on elixir I realized that the beam mapped perfectly to this strategy. CQRS itself is merely a higher level execution of the actor model (the beam) itself. Upon realizing this, I actually attempted to shoe-horn my pattern here into the GenStage architecture. I did get it to work, but I did not continue down that road.

I could talk about this for days because I love it so much.

bonus: no inheritance, no dependency injection, no interfaces, no wanting to quit and become a farmer because of the insanity of complex OOP

Post reply on HN