Stack-wise, I like React and relational databases.
I suppose there are at least two possible solutions: 1) templates, like themeforest, 2) starter kits, like create-react-app.
Is there anything else? How would one start a web app today?
Thanks
1–10 of 20 posts
Stack-wise, I like React and relational databases.
I suppose there are at least two possible solutions: 1) templates, like themeforest, 2) starter kits, like create-react-app.
Is there anything else? How would one start a web app today?
Thanks
For the frontend side of things, especially when using React, NextJS is the first tool in the toolbox. You get a lot more than CRA provides out of the box (SSR, routing, API routes, and server-side only code for dealing with database access). Vercel or Netlify are both amazing dev experiences to get setup with (including Git push deploys).
For the frontend side of things, especially when using React, NextJS is the first tool in the toolbox. You get a lot more than CRA provides out of the box (SSR, routing, API routes, and server-side only code for dealing with database access). Vercel or Netlify are both amazing dev experiences to get setup with (including Git push deploys).
Thanks for the help! And what do you prefer for deployment Vercel or Netlify?
- Flask + sqlite3 for the backend
- Svelte for the frontend
- nginx
- Hosted on my VPS
I am currently developing my company's MVP with
- FastAPI + Postgres for the backend
- Firebase/Firestore for the {front, back}end
- React + TypeScript for the frontend
- Vercel
My takeaways:
- Svelte clicks with me because it feels like I'm basically writing vanilla JS/HTML/CS. I can get a lot more done in Svelte than React because I don't have to learn so much React-specific syntax
- The downside to Svelte is unit tests are gnarlier
- TypeScript makes me sane
- FastAPI is awesome, very similar to CherryPy. Doesn't try to force you to render server-side HTML like Flask tends to
- Vercel is cool, but I don't like {S,P}AAS deployment when I know I can write my own CI/CD config and just deploy my app where I want
99% of the time I don't need a backend, and just directly use firebase / supabase or an equivalent.
Can't beat 2 dependencies :).
Deployment gets either done on firebase or Netlify
Regarding React, you should give Svelte a try. As someone who did some projects in React, I regret not finding it (svelte) earlier, its a joy to work with it compared to React.
Back-end, just pick any popular framework from your language of you choice, things you'd want are mostly covered in most of them, without much differences.
Earlier quoted context omitted.
Thanks for the help! And what do you prefer for deployment Vercel or Netlify?
Vercel is the main developer behind NextJS so I use them, you can do the same with Netlify but it's not as plug and play, there's a bit more setup involved although still not much.
I can see why those would be a reasonable choice when a team is working on a project, but it's just me working on my stuff and all of those tools require a pretty huge investment, and once you're using one you're vested in it and there's no turning back without a significant loss.
I've never been a fan of using SQL DBs for web apps. I'm sure they're great for some apps and if you're well versed is using those it's probably the tool to use, but I wasn't.
So I decided to use what was familiar and easy for me. I use jQuery, Bootstrap, mustache.js, accounting.js. For the DB I started with PouchDB.js, and added Apache's CouchDB and web server running on DigitalOcean VPS when I was ready to move the app to the web.
With this approach I can start off without using any web server or DB at all, or using my Mac's built-in web server and CouchDB installed on my Mac.
And when you move to a web server you can use one that's much smaller. I added a service worker to my app so it stores the app on the client side. Since the app resides and is running almost entirely on the client side the server can handle many more users and you can use a much less costly server with no degradation of performance.
I have a demo with some pre-loaded data you can check out at https://cherrypc.com/app/demo.html, and a free version of the app at https://cherrypc.com/app/web.html. Both of those use your web browser's built-in IndexedDB and run entirely on the client side.
The main point is, for me, these tools were so much easier to get going with than those frameworks and I spent quite a bit of time working with those to find that out. PouchDB.js is, in my opinion, one of the best and most overlooked JS tools we have right now. And CouchDB is right there with it. No other DB makes it so easy to implement Offline-First, Local-First design goals.