8 ms·
I'm really surprised at how easy anything is considered "full stack". Where is the ORM/data access library? The validation framework? The background jobs? The c
by midrus 5y ago
I'm really surprised at how easy anything is considered "full stack". Where is the ORM/data access library? The validation framework? The background jobs? The caching system? The translations/i18n system? And the other 1000 things you do need for a full stack real life application? I definitely do have those things in Laravel, Django and rails. Next.js, nuxt.js, sveltekit etc are far, far from full stack. They can certainly run js in the backend, but that's not full stack, you still need 10s of other packages.
- capableweb 5y agoGatekeeping what should be called "full stack" based on your own requirements seems futile at best. Believe it or not, there are businesses built without using those things, even though you've never come across that in your life. Besides that, I think the things you're looking for are listed here: https://sveltesociety.dev/components/ https://sveltesociety.dev/components/ Never used Svelte/SvelteKit myself, but seems the framework takes a "some batteries included, others available" approach to the whole thing, which is one way to about it as well.
- davedx 5y agoI really don't think it's fair to call it gatekeeping. The blog title is about using "Sveltekit for full-stack web app development" but if you want to make a full-stack web app, you need more than Sveltekit. Words mean things.
- capableweb 5y ago> but if you want to make a full-stack web app, you need more than Sveltekit. To create a full-stack web app you need a frontend and a backend. That's it. You can build a full-stack web app with just NodeJS and HTML files if you so wish (or even write HTML templates in your http handlers from the backend). Nothing in "full-stack" requires having a validation library in order for it to be full-stack, that would more be leaning towards the "batteries included" approach to a framework instead of strictly being about "full-stack". When you frame your argument in a way that implies "it's not a real framework/tool for real life applications unless it has X" is almost exactly how I'd write an example of gatekeeping if I had to.
- mirzap 5y agoNo it's not just it. That's small part of it. If you need to pull 30 other packages to your backend or frontend, then your "full stack framework" is not full stack. Check .NET, SpringBoot or even Laravel to some degree to see how "full stack" really looks like. It's entire ecosystem. You rarely go outside of that. Can you develop modern app (with db access, caching, queues, messaging etc.) with just SvelteKit or just Next.js (and their official packages) as dependency? No, you can't. Not without pulling 20 other 3rd party packages. Thus, those are not full stack frameworks. They are nice and convinient opinionated frameworks, that speed up development, but you always relay on other packages to complete the stack.
- capableweb 5y agoYeah, I guess we have different definitions for them. What you're talking about is what I'd call a "batteries-included" framework, which exists both as frontend, backend and full-stack frameworks. Full-stack just means that you can write your frontend and backend with it, not the amount of functionality it has within.
- tacker2000 5y agoBut backend means precisely these things. ORM, DB migrations, caching, etc. You need that for a solid backend. Of course not everybody needs messaging queues for example , but some frameworks support this out of the box and/or have years of integration with popular queues like rabbitmq to look back onto. Imagine how many integration bugs were already solved in that time, which this new framework still has to iron out. Time and experience mean something.
- capableweb 5y agoWell, for you, apparently, it does mean those things. But for plenty of us, it doesn't. Why would I need an ORM/DB migrations if everything lives on disk? Why'd I need caching when I already run Varnish in front of the backend? Point being (again), definitions seem to differ, and what you call "full stack" is what I call "batteries-included framework". Full stack simply means (for me) that it gives you a way of building frontend and backend code, but implies nothing about what functionality is included in either part.
- detaro 5y ago> Words mean things. And as the reaction here shows, for lots of people "Full-Stack Web App development" means "spanning frontend and backend", not "frontend and backend and everything you could need for a complex product". And that seems to be shared by many other sources.
- MadcapJake 5y agoInteresting note: the Sveltekit home page never says "full stack" and describes itself as "framework for building web applications of all sizes, with a beautiful development experience and flexible filesystem-based routing". Almost like the SvelteKit folks are aware of the potential gotcha from calling it a "full stack" frameworks. That being said, I am in the "this is full stack" camp due to prior art in the JS community. RoR/Django and their language communities have always been more about including all the parts (one could call it a "complete stack" style) and the JS community has always been about modularity. EmberJS strikes me as the last bastion of complete stack framework in JS (curious if there are others that are lesser known)
- timeon 5y agoThat is why the title is not "Sveltekit as full-stack web app development"
- adamors 5y agoSome gatekeeping is necessary because soon JS frameworks will have redefined everything making it impossible to converse.
- capableweb 5y ago
- foobarbecue 5y agoYes, and we have a responsibly to guide that evolution. midrus said he was "surprised" that the meaning of full stack is changing to mean all the frontend and a few bits of the backend. I'm also surprised, and disappointed. To me, Django is full-stack. Meteor was full-stack. SvelteKit is not.
- midrus 5y agoLanguage does not matter. What matters are frameworks, tools, ecosystem, libraries and developers availability. All langues are good enough and shit at different things.
- midrus 5y agoYes, precisely because I've been involved in maintaining codebases built without real full stack frameworks is why I say what I said. The problem we have in this industry, is that somebody reads these blog posts, and the next day at work they ditch the "legacy rails" and starts rewriting the monolith in sveltekit/nextjs/whatever because that's what he/she has been told is the modern way to do full stack. No need to say those engineers will quit 1 year later after they realize the mess they've created with their lightweight and simple modern framework. I've seen this too many times already. It is not about gatekeeping. It is about engineers being humble and assume it is very likely that their code is very unlikely to be better tested, documented, cohesive and maintained than what you're given in the real full stack frameworks. Of course you can build anything even in assembler if you want. The question is if that's the most useful thing to do with your company's money.
- andrew_ 5y agoThis word play isn't worth the time or effort. Shall we try to apply the meaning of full stack based on my own entry into web development in 1998 when N-Tier development was all the rage? I think not.
- slibhb 5y agoYou're arguing about configuration vs convention. You can prefer batteries-included frameworks (convention). Other people can prefer a barebones approach (configuration). Either way, it's full stack if you can write code that runs on the server and code that runs on the client.
- deleted 5y ago[deleted]
- newlisp 5y agoEither way, it's full stack if you can write code that runs on the server and code that runs on the client. I wouldn't call it full stack without a database.
- 5y ago
- fullstackchris 5y agoI disagree, I think it is a fair argument here. Sure, "full stack" as a pure definition would probably only mean at least one part display layer, one part backend layer... but in a framework sense, it's fair to include all these other important capabilities (translation, background jobs, etc.).
- csmpltn 5y ago
- deleted 5y ago[deleted]
- tobr 5y agoThe top comment in the thread has been “cancelled”? Do you feel like that usage of “cancelled” is stable ground we can all stand on?
- csmpltn 5y ago
- newsbinator 5y ago> Shunning an individual by accusing them of acting in an unacceptable manner is "cancelling" them isn't it? Yes. But replying to an individual and telling them why they are incorrect and what you believe correct to be isn't shunning and isn't canceling. It's dialog. Reading interesting discussions is the reason I come here and participate. Echo chambers aren't interesting.
- slantyyz 5y agoWho is shunning that person? Nobody's trying to get them fired or boycotted, so where is this "cancelling" happening?
- detaro 5y agoBy the same standard, you are "cancelling" capableweb because you accuse them of doing something you find unacceptable (in a worse way, since most people would consider "cancelling" to be a worse accusation than "gate-keeping"). Not really a useful level for the word.
- aeze 5y agoI don't consider what he said gatekeeping, they were valid questions IMO.
- davedx 5y agoYes, I was pulled in by this being a "full stack" technology and half-read, half-skimmed the article looking for how the back-end parts work. I came away with the impression that sveltekit provides some kind of thin layer on top of express to do things like server-side rendering, so still very view-level focused. I have the same issue with all these fancy "JAM-stack-ish" technologies like next, nuxt, vercel, etc, etc, etc. They are constantly iterating on the front end and its associated DX, which overall is a net good I think, but almost completely ignoring the back-end concerns. Contrast with, say, meteor. Meteor came out in what, 2014 or something? And gave you a genuine full-stack development experience. There's not really been anything like it ever since. Weird.
- nefitty 5y agoI just want to take a second to share that Next.js is the worst thing I've ever used in my life. I am a react dev. They somehow managed to make Next.js harder for me to use than Django, which is in Python, which I've barely ever touched! Imagine that react is like an airplane dashboard. Next.js is like adding a faceplate to the dashboard, jumbling up the buttons, then hiding some buttons because "best practice" and "optimization".
- ylyn 5y agoNext.js is an opinionated React framework. If you don't agree with the choices it makes, don't use it.
- nefitty 5y agoIt's an amalgamation of opinions, yeah, and they somehow all result in slightly worse and worse dx.
- true_religion 5y agoLike what for example?
- lars_francke 5y agoI recently started a side project for our company in SvelteKit (I have zero Frontend experience) and while I really enjoyed the Frontend bits I found the backend bits lacking. I know it's not GA yet so I don't want to complain and I'm happy to wait for the final release. The documentation is severly lacking (e.g. routing) and best practices are missing. I found the same as you: Most articles about SvelteKit don't talk about the backend/storage part at all. There is the template example app which has a bit of structure but that doesn't go very far, there are a few articles here and there but they mostly mock interactions with any further services. So my verdict was: Fullstack, maybe-ish, but not for newcomers (which they also don't advertise for). You need to know what your're doing and which additional tools to use. And, as you point out, that's different in Django et. al.
- slantyyz 5y ago> Most articles about SvelteKit don't talk about the backend/storage part at all. That's because a lot of Sveltekit users appear to prefer serverless and don't use the back end. Personally, I like that Sveltekit's back end doesn't have batteries included. Coming from Express, I was able to pick up Sveltekit pretty easily (although I have some quibbles with the documentation). I would have preferred that Sveltekit's back end use Express' Request and Response, but the Sveltekit devs have their reasons for not doing that.
- l-lousy 5y agoDid nobody read he was using rust/rocket and SQlite for the backend?
- deleted 5y ago[deleted]
- cpfohl 5y agoI'm not sure the Svelte Kit team considers it fully full stack... I've answered people's questions in the discord channel and usually suggest a separate API backend project or directory and that has never gotten corrected by maintainers. The idea I usually promote is to use SK to wrap other APIs (in your control or otherwise) returning the payloads your UI code wants. All that to say: You're not wrong I think you've identified a new category of tool, the full stack UI, perhaps?
- mgkimsal 5y agoAnd someone with 3 years of experience is labelled "senior developer". I agree with your sentiment. I've run in to more than a few people who self-identify as "full stack" developers who do not understand what a database is, nor have ever set one up. Half-joking, but I think they're meaning because they do both javascript and css.
- duxup 5y agoIf it is front to back, that’s full stack as far as I’m concerned. Everything else is a question of what else is involved, but that’s always what you want to know anyway right? Layers and complexity are a whole other topic IMO.
- Glench 5y ago> Where is the ORM/data access library? The validation framework? The background jobs? The caching system? The translations/i18n system? And the other 1000 things you do need for a full stack real life application? Right here! https://www.sveltesaas.com/ https://www.sveltesaas.com/ :) I love using SvelteKit for full-stack apps so much that I decided to package up and release a template with all the stuff that most apps these days typically need.
- bufferoverflow 5y agoWhen I go to your link, it just says "coming soon".
- Glench 5y agoNot sure why you made this same comment twice, but yep, it's not quite ready yet. Put in your email if you want to be notified when it's out — I promise I won't spam you :)
- bufferoverflow 5y agoBecause you keep spamming the link that doesn't have what you promised.
- besil 5y agoI really feel your point. Django is my favourite framework but, as for Rails or Laravel, sometimes you need more reactivity to build an app. The two worlds can live together: I use Django and it’s features (including templating) along with Svelte, served from Django itself. I wrote a post, if you are interested https://dev.to/besil/my-django-svelte-setup-for-fullstack-development-3an8 https://dev.to/besil/my-django-svelte-setup-for-fullstack-de...