Clojure(script) with re-frame, using the luminus template. https://github.com/Day8/re-frame http://www.luminusweb.net/ edit: Should probably say why... - Clojure and clojurescript give nearly identical experiences on the front and back end, with the ability to actually share some code between the two. - Clojure is dynamic and spec gives some really awesome validation and generative test capabilities - There is a lot…
Ask HN: What stack would you use to build a CRUD web app in 2018?
131–140 of 184 posts
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#132I work with startups, so I make this decision every 2-3 weeks or so. Language: Python. Python is easy to learn for those that don't know it, and all-around liked. It's not hard to find engineers with existing experience if you need to grow. Framework: Django. Django does everything you might want in a framework. It scales with larger teams, and the admin is still one of its killer features. Frontend: SCSS/SASS, and v…
I always had a question I wanted to ask an experienced Django dev. After trying this framework for a couple of hobby projects (I'm a client game developer primarily and never worked on "serious" web project), I kinda got the impression that it's architecture is created for two main user roles: admins who create most of the content and have marvelous admin forms in front of them to input all the data, and users, who m…
> Generating admin sites for your staff or clients to add, change, and delete content is tedious work that doesn’t require much creativity. For that reason, Django entirely automates creation of admin interfaces for models.
> Django was written in a newsroom environment, with a very clear separation between “content publishers” and the “public” site. Site managers use the system to add news stories, events, sports scores, etc., and that content is displayed on the public site. Django solves the problem of creating a unified interface for site administrators to edit content.
> The admin isn’t intended to be used by site visitors. It’s for site managers.
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#133I work with startups, so I make this decision every 2-3 weeks or so. Language: Python. Python is easy to learn for those that don't know it, and all-around liked. It's not hard to find engineers with existing experience if you need to grow. Framework: Django. Django does everything you might want in a framework. It scales with larger teams, and the admin is still one of its killer features. Frontend: SCSS/SASS, and v…
I do prefer React for when a frontend framework is appropriate, but I also think that's not always the case.
I think there's a lot to be said for familiarity. Rails instead of Django? Sure, if you and the folks you're working with know it better.
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#134Tcl/Tk/SQLite, obv
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#135Earlier quoted context omitted.
100% agree - unless you're doing anything especially novel, or know you're getting 10's of millions of connections from day 1, with the ecosystem around it, I wouldn't hesitate choosing Rails + Postgres + Redis + Sidekiq.
Even then. Are you going to be bigger than Shopify on day one?
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#136Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#137Clojure(script) with re-frame, using the luminus template. https://github.com/Day8/re-frame http://www.luminusweb.net/ edit: Should probably say why... - Clojure and clojurescript give nearly identical experiences on the front and back end, with the ability to actually share some code between the two. - Clojure is dynamic and spec gives some really awesome validation and generative test capabilities - There is a lot…
How healthy is the Clojure web development ecosystem - especially library availability - compared to Ruby on Rails and Django?
The back end is way more mature than front end SPA stuff so I'll just list some things I'm really glad to have in that space
- re-frame : like redux but better
- re-learn : lets you create tutorials for application with no changes to dom
- cljsjs/filesaverjs : cross browser file download dialog
- cljs-react-material-ui : material ui react library port
- camel-snake-kebab :useful for changing casing
- com.rpl/specter : easy way to deal with large nested data structures
- stylefy : inline styles with support for media queries and animations (all with clojure data structures!)
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#138You should not write a CRUD app in 2018. Update and delete are remnants from the times where memory and disk were expensive, and update in place was a necessity. This is no longer the case. Apart from a few very specialised use cases, there is no need any more for update or delete. Record new facts and don’t destroy the older ones.
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#139So many apps can fit into the CRUD tent. I mean, Jira and Confluence are basically CRUD apps, right? But so is an ad-hoc internal company app. I'll focus more on apps that are meant to be externally facing as I typically work on larger efforts, and then mostly on backend services and infrastructure automation.
I would personally stay away from Python. Not only do I prefer typed languages, but I also appreciate languages with fantastic tooling and language services, mature concurrency primitives, and an active/energetic community. I find Python seriously lacking in those regards, and falling further behind other language choices every year. I personally have no issues with writing prototype/production ready code in less dynamic languages at the same speed; faster usually is my sense for anything more than a few dozen lines.
If elixir had focused more on a type system and better language services/tooling(like the F# team) I'd probably be more interested in Phoenix. Ignoring the erlang VM, I find F# much more compelling as a language and am hoping one of the new crop of frameworks will shape into a viable Phoenix alternative. That being said, I could still see myself pushing Phoenix depending on the experience and leanings of the rest of the team.
In no particular order:
TypeScript+React+ASP.NET:
I really like C#; it's not for everyone, but coupled with the CLR it has completely acceptable performance, concurrency primitives, and language services(intellisense, refactor support, etc). Entity framework and linq are a super compelling combo; using this ORM will ruin most other ORMs for many people. Dotnet core has resulted in a lot of extra activity in the OSS community, and the dot.net ecosystem is full of very well engineered, comprehensive projects.
F#+React+ASP.NET:
For some extra spice try F# full-stack. There are some great backend frameworks shaping up, and Fable makes F# possible for the client. Great language and great concurrency support. F# is my crush language. Fable's creator has been doing excellent work including making it possible to consume TypeScript type definitions; going so far as to reach out to the F# team to include features necessary to support the flexibility of TS. Ability to execute on this would really depend on the starting team as well as current/future hiring practices.
TypeScript+React+Node.js(TypeScript):
This is one of my favorite "easy-ish-to-sell" stacks. Nodejs has come a long ways, and offers a sufficient concurrency experience with async/await. Node-Chakra-Core has some clutch time-travel debugging abilities.. Javascript programmers at least keeping up with ES6 shouldn't have TOO much trouble adjusting to TS, and as a bonus they can be more effective working full-stack on the backend. This should provide for a very large potentially hiring pool. There are some super compelling TypeScript-first projects cropping up as well like MobX, NestJS, TypeORM, etc. My sense is that TypeScript is attracting more of the "engineery" types to the JS/Node ecosystem. If C# is any indication, this is a welcome addition IMHO.
Dart:
Dart appears on the surface to be a more first class TypeScript. It looks super compelling, has some great tooling(including a sweet looking profiler), has a great looking VM for server side execution, and a small but very passionate and motivated community.. A few highly visible companies adopted it and swear by it. This is probably the most experimental stack I would consider and can't really explain it... I'm dart-curious. I feel they should ditch the custom eclipse based IDE and focus on the language server protocol and plugins for the popular IDEs with the 2.0 initiative.
TypeScript+React+Golang:
Sure, why not? I think I'd need a good reason for going golang... Like some serious server-side performance requirements and/or lots of backend services. In the context of a "CRUD" app, I'd be more likely to swap services written in other languages out with golang as the performance requirements became clear.
Mini-rant:
React is pretty great but I wouldn't mind a TypeScript-first implementation to it's interfaces. DefinitelyTyped group has done an excellent job but keeping everything typed can be a bit gnarly and gross.
I'm a huge proponent of MobX over redux until you know you need redux. I haven't personally missed redux since extricated myself from it, however I can imagine circumstances where I'd "see the light" and want it. Take the redux creators advice; you probably don't need it.
Re: Ask HN: What stack would you use to build a CRUD web app in 2018?
#140I work with startups, so I make this decision every 2-3 weeks or so. Language: Python. Python is easy to learn for those that don't know it, and all-around liked. It's not hard to find engineers with existing experience if you need to grow. Framework: Django. Django does everything you might want in a framework. It scales with larger teams, and the admin is still one of its killer features. Frontend: SCSS/SASS, and v…