Settings

Theme

Ask HN: Tech stack advice for a new website

11 points by thookipodu 2 years ago · 20 comments · 1 min read


Hello HN,

I have a budding idea to build a website in edtech space. my daughter will be the first user. If it works, I want to make it public. I have these questions

1) Should I have the website running in cloud from day one ? If yes, any thoughts/recommendations ? If no, what I can do now, make that change (which I think is eventual) seamless?

2) What is the recommended tech stack ? I am looking for an option that I can stick with (mostly) and not make and future drastic changes

Context

I am not trying to learn any new technology/framework. I am quite comfortable with Python/Java/Clojure/Javascript stack

If you have read so far, thank you !

EDIT (1)

Below are considerations in decreasing order

1. Running cost of the setup

2. My time - I want to spend time on value creation.

romanhn 2 years ago

First off, I don't think anyone can answer these questions for you. There are a ton of considerations that could influence the end result, and you haven't provided any context really, so any answers you get will reflect this. That said I'll give it a shot.

1. You'll likely get a bunch of opposing opinions here on HN, it's a divisive topic (which probably means you can go with either and be fine). That said, my recommendation would be to start with the cloud - tons of managed services out of the box, good default security, lots of resources, ease of experimentation and rolling back infra that didn't work out, etc. Look into serverless tech like Lambda to control costs.

2. Whatever you already know best. Unless you're looking to learn some specific tech. But if you're focused on delivery, underlying languages/frameworks matter vanishingly little.

matt_s 2 years ago

The approach here to answering your questions is to give you the easiest path towards making something.

1. Cloud hosting? No - buy the cheapest linux virtual server you can - like $5/month hosting. Cloud is most appropriate for variable compute needs (which edtech has) but you're not there yet. When you have scaling problems, solve scaling problems. Since you have a trial user at home you could build it out locally or use VPN tools to allow access to a server inside for the short term. Once you have a solid product, then figure out longer term hosting.

2. Tech Stack? Regarding your context - pick the tech stack you are quite comfortable with, its probably easiest to go with Python of the ones you listed since there is likely to be lots of docs on setting that up for a small hosting company once you get to that point.

  • omniglottal 2 years ago

    When you say "no" to cloud hosting in the same sentence as you recommend buying a VPS in the cloud... it's odd.

    • 1_1xdev1 2 years ago

      A VPS paid monthly isn’t “cloud”. It’s just a server.

      “Cloud” tends to assume elasticity, pay by minute, managed software services, etc.

      “On the internet” isn’t cloud automatically

      • kohanz 2 years ago

        I think that's a subjective interpretation.

        Others would define a cloud server as any server that someone else owns and you don't have physical access to it.

        • matt_s 2 years ago

          VPS have been around for longer than “cloud” computing. In layman’s terms, yes cloud means someone else’s computer, but here and in other tech focused circles it usually means some kind of software defined compute services. A VPS where you login and install your stack and patch it I wouldn’t consider as cloud.

          The main point I was making was figure out hosting later after figuring out the product/market fit.

joshxyz 2 years ago

1. yes, maybee you can share it to others who might have interest in using it

2. hn mantra, any tech stack you are comftable using as long as you can ship your product to your users fast

2cents

aregsar 2 years ago

Since you mentioned Python then you might consider Django with the DigitalOcean app platform https://docs.digitalocean.com/tutorials/app-deploy-django-ap...

Jugurtha 2 years ago

>I am not trying to learn any new technology/framework. I am quite comfortable with Python/Java/Clojure/Javascript stack

And

>2. My time - I want to spend time on value creation.

You already have your answer: stick with the stack you know and focus on value creation and serving your VIP user.

shortrounddev2 2 years ago

1. Write your application with a Dockerfile for running it. Will make it dead simple to deploy remotely if you start locally. Services like DigitalOcean let you just point them to a repo with a dockerfile and it will automatically deploy

2. Whatever you're comfortable with, but I personally believe C# is the best language for backend development. But there are web frameworks in literally any language (see: COBOL on Cogs)

solardev 2 years ago

What exactly are you trying to run? The ideal stack really depends on your app, it's not a one size fits all question. Often there is a tradeoff between complexity and power, for example. Or ease of use vs ease of migration.

It might also be a good idea to investigate some of the existing edtech offerings (canvas, moodle, blackboard etc.) and see if it makes sense to either use a similar stack (if you want to run alongside them) or do something totally different (if you want heavy AJAX interactions, for example).

  • thookipoduOP 2 years ago

    I am thinking of an adaptive assessment and grading system. Not planning for learning content as of now (though it can come in later).

nprateem 2 years ago

The biggest time saver will be not creating an SPA or creating an API. Just submit forms and return rendered HTML fragments if you need front end interactivity, and even then keep them to a minimum.

I've found alpineJS easy to learn but a good fit for this kind of approach.

Also, use a design system. I'm finding daisy UI a good mix between ease of use without a mess of tailwind classes, but you may prefer material etc.

jarl-ragnar 2 years ago

Elixir and Phoenix Liveview. It really is the most productive framework I’ve found.

reducesuffering 2 years ago

Loved using Next.js.

Did not like using Django, needing to learn two DSL for templates and htmx, and a cumbersome React frontend integration.

meowtimemania 2 years ago

I like SST.

I would do SST/node/htmx since that’s where I feel most comfortable/productive.

viginti_tres 2 years ago

htmx and flask/django

  • mixmastamyk 2 years ago

    Time is critical before you give up and python is a great prototyping language. htmx, yes and Django specifically will be the most productive by the second day when you go to implement the login page.

    Use postgres, no excuses. Managed when you go for hosting.

    Finally, don't worry about cloud for months. Put it in a container at some point, and cloud can happen naturally after that.

    Use linters and formatters from the beginning to keep tech debt manageable. Don't worry about most typing and tests until the design finalizes however. Wait for version 1.1, 2.0.

    If performance becomes a problem at that time, rewrite hot paths in cython, or split off microservices in java, golang etc.

dylanhassinger 2 years ago

next.js or php

  • Woshiwuja 2 years ago

    laravel more than basic php. Sanctum comes with 2FA, Users, Groups and other good stuff. But its also php

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection