Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What tools are you using to quickly build websites/apps?
21 points by fi_investor 81 days ago | hide | past | favorite | 52 comments
I'm curating a list of tools for quickly building websites, web apps, mobile apps & desktop apps.

Please help by sharing the tools you're using or the tools that you recommend so I can check them out. Thank you!




With SvelteKit I can take an idea for a non-trivial web app to working prototype in less than a day.

For example, I built an experimental beat-aware video player in less than a day. And this was while I was first teaching myself Svelte. (This was before SvelteKit was even a thing.)

My freelance clients are often surprised how fast I can get them results. And I keep getting faster as I gain more experience.

- The SvelteKit starter template is like a collection of best practices for web development.

- The Svelte community is pretty helpful, too. (Both core maintainers and regular users.)

Here's one of the apps I'm currently working on:

- https://weather-sense.leftium.com

- https://github.com/Leftium/weather-sense


This looks lovely. May I ask who your preferred hosting providers are?


Vercel.

- Vercel hired the founder as well as a few core-maintainers to just work on Svelte(Kit) full-time. So Vercel tends to have the best class support for SvelteKit.

- Other platforms like Netlify and Cloudflare have officially maintained adapters too.

- SvelteKit was designed as serverless-first, but Node and even static deployments (like Github pages) are supported, too


Database?


So far, my personal projects haven't used a database. If I need a DB (service), these would be my top candidates:

- https://supabase.com

- https://pockethost.io

- https://fauna.com

- https://www.edgedb.com

They all support serverless and also provide auth (to avoid the user storage/query problem[1])

While SvelteKit does include backend functionality, unfortunately it doesn't have any special DX for databases. I think there are other starter templates built on top of Kit for that...

[1]: https://threadreaderapp.com/thread/1651434348174778370.html


Hadn't heard of pockethost before.

Recently learned about https://www.convex.dev/ which seems worth consideration.


Eh... when the user logs in like via OIDC you get claims, you just store the user the second they login (username, profile pic/avatar, email).


Sure, querying/storing the current logged in user is simple.

Imagine rendering a single Reddit thread that contains comments by 100's of users from a set of millions of users.

The problem is querying (and storing) the usernames, avatars, etc of other users to render the author info for all comments... and updating that information when any user updates their avatar, etc.

That's what the user storage problem is.


I guess I still dont see the problem.

If you store claims when they login, and update when they update their profile you simply join users table to comments table.

That is no different than any other data in your system. You could have a view, or do the join in SQL to join Users + Comments when someone requests a page. Thats not really a problem is it?


> when you look at these auth solutions they typically will handle three things

> 1. handshakes with third party IDPs (login with google, etc)

> 2. session management

> 3. user storage

> 1+2 are boring and i’m 100% down to offload it to someone else

> the problem is #3

I think you are assuming you do #3 (user storage) yourself in your own database, which is possible.

But lots of auth providers want to store the users for you and make it look appealing (user dashboard already made, don't have to store PII, SSO: can share single account across multiple services, etc)

That is exactly what one of my clients decided after I introduced them to UserFront. But then ran into problems just rendering a list of items in the app because only the UserFront id was stored in the local DB. User names, email addresses, were all stored in UserFront.

You can choose to store username, email addresses, etc in your own database, but then you have to be careful about syncing at least the user id + email address(es) between the auth service and your own DB.


HTML, CSS & Javascript.


Hosting and database?


You could try hosting on a cheap VPS and use PocketBase for your backend, or if thats too heavy handed, just use sqlite. If you're building something quick you don't wanna worry about handling a million requests per second.


Netlify works great for prototyping, but becomes expensive af at scale. For classic use, friends recommend KnownHost.


"tool"


Well, depending on your definition of "tool" I'd say its still a proper answer. Unless you're calling me a tool, which would just be funny :)


Sometimes you need a hammer. Sometimes you just need a large rock.


I recently used NextJS by way of a TailwindUI.com template to relaunch my personal website https://wjgilmore.com. NextJS was actually pretty fun and surprisingly easy considering I never used it prior to this project. Hosted on Netlify free tier.

For everything else I use Laravel.


Mostly a bunch of non-scalable, half baked solutions with JS ;)


Not the solution we deserve, but the solution we need :D


I use only Astro for websites / blog sites, and host with Cloudflare Pages.

For web apps, I still use Astro/Cloudflare for the frontend. For the backend, I use Django Ninja, hosted as one of the many services I run on a Hetzner instance using CapRover.


Recently learned bout CapRover... Curious if you would ever consider the "bare VPS" route after having used it or if it (or something like it) has become essential.


CapRover is very interesting... I actually just use Linode + Treafik + Portainer and self host all my own stuff using Docker Compose. If I have a new app, I just use GitHub Actions to build and push a container to GitHub Packages (GHCR) and then on my server I create a docker-compose.yaml and I fire it up, the labels link it all up to Traefik.

Obviously deploying is manual right now since I have to SSH in and then pull and `docker compose up -d` but I could probably find something to bridge that gap.

Id be interested in seeing how CapRover can simplify all that for me...


I just deploy straight from my machine with a single command "caprover deploy". No container registry involved.


So I spun up a Linode, installed CapRover, bought ultra cheap DNS from NameCheap using their guide to get cheap domain name and did a few deploys. Its really cool. Much easier than my approach.


You'll end up wanting to self-host everything in no time :) I've switched from Namecheap to Cloudflare because it's cheaper, and it's very easy to integrate with Google Search Console and Cloudflare Pages.


What are the reasons you use both a self-hosted VPS running CapRover and Cloudflare Pages?


Because VPS is cheaper than any managed service offering out there when you start to add up the features. For example Azure App Services can host: .NET, PHP, Python, and Node WITHOUT a container, but the second you want a custom DNS name its incredibly expensive.

A $5 VPS + CapRover instantly gives you your own app host + CICD server which you fully own, none of your data is owned by AWS or Azure either.

Most people dont self host because they dont want to worry about updating the OS and Database servers and clustering and HA/DR. Which is far. But for the average dude like me spinning up fun side projects and random stuff, why wouldn't I self-host it for next to nothing?


I tend to separate my frontend (Cloudflare Pages) from my backend (VPS/CapRover).


I'm trying to decide whether to do this same thing or try and keep all of the "backend" parts in Cloudflare Workers (Pages Functions) and other "serverless" options (such as Turso for the DB).


While looking for similar projects I also learned about https://coolify.io/ (from https://www.youtube.com/watch?v=SCIfWhAheVw).

Coming from Netlify/Vercel/etc this seems like it could be a better option.


No, I wouldn't consider. It's so much easier to Dockerize every application. And I'm running about 10 services on the single instance, so it's a lot cheaper too.


How do you prevent issues with potential traffic spikes and such (with running 10 services on a single instance) (this is probably a dumb question... most of my experience is on the frontend)?


I don't :) I've just delayed thinking about it until I have a service that actually does have that spike, which hasn't happened yet.

It looks like the CapRover devs have a solution https://caprover.com/docs/app-scaling-and-cluster.html but I haven't tested it.


Django + Postgres + Redis (only when necessary) + Unpoly + Bootstrap


Fantastic. I was stunned at how quickly and easily Unpoly transformed my small Django app from "dusty" to snappy and SPA-like.


Yeah. I love the productivity that comes with this stack.


This might be a weird one but if you already know rust loco-rs is pretty great.

I've been using it on a nights/weekends project. It's axum + some rails-esque QOL features.

Because it's rust the time to make a given feature might be slightly slower (10-20%?) than in python/js, but I've found you gain that time back almost immediately from things just working nicely the first time. Also refactors/feature rework are super easy.


Next.js (even backend /api) + React. TailwindCSS. Next Auth.js. Prisma ORM (drizzle or kysely work too). Supabase Postgres DB.

The UI <-> DB flow for almost anything is very intuitive and quick to implement.


This is slightly orthogonal to the point of this post but I've been looking at Webflow again for some potential client work and I was curious what people's thoughts on it were.


Not sure if this counts, but my toolkit is: tsc -w + vite, tsc -w + tsx and vim + ale. The stack is bootstrap, mithril, express, postgres.

It’s not “quickly”, and I’d like to learn about faster ways too.


Its not too bad. You could take a look at something like "BunJS + HTMX", its pretty killer.


htmx looks very useful! Can you share your personal experience in using it? Pros and cons?


I had this thread https://news.ycombinator.com/item?id=40710782

But the thing gp suggested looks much better, at least here: https://github.com/danawoodman/bun-htmx (see src/components, they use react-dom/server renderer to template-render tsx (also note that “tsx” I’m using is not a file format, but `npm i -d tsx`)). I guess I can try that in node too.

That said, I don’t see the “quicker” part here tbh, imagining my mithril code in htmx templating code doesn’t make a big difference, unless I am missing something. It’s the same parametrized html but on server. Not even a glimpse of RAD-like paradigm shift.

I guess htmx looks better if you’re using react but never allowed yourself a thought that it’s a useless esoteric bullshit everyone agrees to out of fear of being ostracized, which htmx removes silently (and it’s server-side). Mithril is just a vdom-based templater with simple autoredraw and doesn’t implement esoteric bs already.

I somewhat agree with gp’s “unpack json” part, although it’s not a big deal with types shared across ends. I just re-new Date’s after fetch and that’s it.


I haven't used it much. (don't use it for work) But I'll say its different. Very "backend first", so there's a bit of setup required server-side, setting up end-points and such. But not having to manage state or unpack json in the frontend is probably the best thing about HTMX.

You send a request to a server from frontend, the backend responds with html and places it on the page where specified. Its much more intuitive and lower mental load than something like react or vue.


Call me old fashioned and simplistic: JS, HTML, CSS, NodeJS, pm2, nginx, AWS server, S3, github.


If you really want to develop and deploy something fast, try filament php.


Dotnet Blazor when it needs a Website, Kotlin if it doesn't.


import ( _ “embed” )

// go:embed frontend/*

Just plain HTML/CSS/JS. I’ve been trying out templ but I still prefer having static files I can host separately.


Supabase is excellent


Rails, SQLite


WIX.com LOL




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

Search: