For our internal team and collaboration panel we use Nuxt.js (with TypeScript that is transpiled into ES6), Webpack and npm. We enjoy the opinionated nature of Nuxt.js over vanilla Vue.js, as we would end up using all of the components Nuxt.js incorporates anyways and we can adhere to the conventions setup by the Nuxt.js project, which allows us to get better support in case we run into any dead ends. Webpack allows us to create reproducable builds and also debug our application with hot reloads, which greately increased the pace at which we are able to perform and test changes. We also incorporated a lot of testing (ESLint, Chai, Jasmine, Nightwatchjs) into our pipelines and can trigger those jobs through GitLab CI. All packages are fetched through npm, so that we can keep our git repositories slim and are notified of new updates aswell as reported security flaws.
I want to build a documentation tool - functionally equivalent to MkDocs. The initial choice ought to be VuePress - but I know of at least one respectable developer who started with VuePress and switched to Nuxt.js. A rich set of "themes" is a plus and all documents ought to be in Markdown.
I have been using https://gridsome.org/starters/gridsome-blog-starter/ as a baseline to create content-heavy sites using markdown files.
Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:
- Vue Styleguidist as our style guide and pool of developed Vue.js components
- Vuetify as Material Component Framework (for fast app development)
- TypeScript as programming language
- Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
- ESLint, TSLint and Prettier for coding style and code analyzes
- Jest as testing framework
- Google Fonts and Font Awesome for typography and icon toolkit
- NativeScript-Vue for mobile development
The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:
- Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
- Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
- Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
- Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
- Large scaling. Vue.js can help to develop pretty large reusable templates.
- Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
I'm planning to make a web app with browser games that would be a Progressive Web App. I decided to use Vue.js as the front framework and Firebase to store basic information about users. Then I found out about Nuxt.js and I figured it could be really handy for making the project as PWA.
So my questions are:
Any help would be appreciated!
I would like some advice on what you would suggest for a website showing products & services. Max, about 100 products. No eCommerce features are required at the moment. I will also add a search feature and a couple of forms.
I already use Storyblok CMS for the content side of things. One thing that worries me about choosing the build is I ideally don't want the public API key visible, just to prevent any future abuse. I understand if I use the build module in Nuxt.js for storybook, the API key is visible in $nuxt in the console.
This is a common question I’ve dealt with a lot. I’ve been using Nuxt professionally for over 3 years now, and one solution is to proxy your StoryBlok requests with another api endpoint, that way you only expose the data you want while protecting any other data you’re worried about. You can do this really easily using Vercel Serverless functions. Furthermore, using the Nuxt generate command, you can statically render your content at build time so your users won’t even hit an api at all when they are using your site!
Thanks for the repsonse Levi.
Yeah i think that is the route i will take by doing proxy requests and using Nuxt. I'll have to check out Vercel, but i have used netlify serverless functions before.
thanks for the response Luis.
I will go down the track Levi has mentioned by proxying the calls to storyblok with axios.
In nuxt, If i use the build module for the api, even on static generation the endpoint and token will still be visible in the $nuxt object for that module.
TL;DR: Shall I keep developing with Nuxt.js 2 and wait for a migration guide to Nuxt 3? Or start developing with Vue.js 3 using Vite, and then migrate to Nuxt 3 when it comes out?
Long version: We have an old web application running on AngularJS and Bootstrap for frontend. It is mostly a user interface to easily read and post data to our engine.
We want to redo this web application. Started from scratch using the newest version of Angular 2+ and Material Design for frontend. We haven't even finished rewriting half of the application and it is becoming dreadful to work on.
- The cold start takes too much time
- Every little change reload the whole page. Seconds to minutes of development lost looking at a loading blank page just changing css
- Code maintainability is getting worse... again... as the application grows, since we must create everytime 5 files for a new page (html, component.ts, module.ts, scss, routing.ts)
I'm currently trying to code a Proof of Concept using Nuxt.js and Tailwind CSS. But the thing is, Vue.js 3 is out and has interesting features such as the composition API, teleport and fragments. Also we wish to use the Vite frontend tooling, to improve our time developing regardless of our application size. It feels like a better alternative to Webpack, which is what Nuxt 2 uses.
I'm already trying Nuxt.js with the nuxt-vite experimental module, but many nuxt modules are still incompatible from the time I'm posting this. It is also becoming cumbersome not being able to use teleport or fragments, but that can be circumvented with good components.
What I'm asking is, what should be the wisest decision: keep developing with Nuxt 2 and wait for a migration guide to Nuxt 3? Or start developing with Vue.js 3 using Vite, and then migrate to Nuxt 3 when it comes out?
Better use the nuxt 2, and if nuxt 3 comes out.. I believe it will be easier to migrate because I believe the folder structure for nuxt 2 will also be the same as better use the nuxt 2, and if nuxt 3 comes out.. I believe it will be easier to migrate because I believe the folder structure for nuxt 2 will also be the same as the folder structure for nuxt 3.. so copy-paste folders and fix maybe s some errors, and done...
As someone who's been working in Nuxt since April 2018, I'd highly recommend to go ahead and forge ahead with Nuxt 2. All of the core fundamental hallmarks of Nuxt 2 will be present in Nuxt 3, and Composition API, teleports, etc. are all just building upon the foundation Nuxt 2 has. Same with Vue 2 to Vue 3. There's zero reason to feel pigeonholed into waiting for a release to come out. JS frameworks are always evolving, and you're going to find things that Vue 3 / Nuxt 3 simply might not be ready for that Vue 2 / Nuxt 2 have already fantastically implemented. I'd advise start building your app today and whenever Vue 3 / Nuxt 3 hits a release stage, then you can look at the migration path (which really shouldn't be that categorically complex) and decide whether there are enough performance and framework feature reasons to change. Even when you do change, it can be component by component - you don't have to change everything overnight. Better to get a head start with your app's construction than to delay and worry about which version of the tool to use to build it.
I'm looking for a robust tool that can analyse a statically generated Nuxt.js site on an SEO basis. Does anyone have any decent and reliable tools to understand SEO search ranking gaps? We are also looking at SEOptimer as another potential tool. We use Google Lighthouse to understand Speed Metrics, Performance, etc., but we would certainly like to understand the SEO within an automated build process.
Ahref is the best tool most seo experts recommend this tool due to its huge huge database of backlinks. You can explore content, check backlink profile of competitors, do keyword research in any country, batch analysis is super cool, content explorer to explore obsolete content and regenerate it for your own purpose. A lot you can do with AHRef, one drawback it doesn't provide traffic data just like SEMRUSH.
I need honest advice on the below 2 Stacks to venture in as a Full Stack Web Developer:
1). React + Go
2). TALL Stack (Tailwind CSS, Alpine, Laravel, Livewire), PHP + Vue.js (Nuxt.js)
Considerations will be Security, Fast Deployment, Job Pay, Easy for Integration, Enterprise Development
Everything below is personal opinion.
Personally, I do not believe you should tightly couple front & back ends, or particular frameworks (both front & back-end).
Learn the underlying language(s) and use modern practices with them. This is much more important than learning a framework, as the framework will eventually be something you utilize instead of being a crutch. Find a local developer group/slack/discord and ask for suggestions on where to learn from. Pay more attention to official language documentation than stackoverflow when looking for language-level answers.
Go will likely get you better pay than PHP, but PHP will be much easier to get up and running with. Security is not tightly coupled to anything. You just need to know how to do things well... you can code crap in any language.
Unless you want to be a poor soul being wrung out by a startup or dev shop, I would not try for "full stack" immediately. Get good at one thing and expand out from there. You will likely learn some bits of the other side as you grow.
The market is flooded with JS devs from bootcamps (I do not believe the pandemic has changed that), so I would say to try your hand as a back-end developer. Of course, if you feel you are more of a visual person, you should stick with front-end work since you will be happier there.
I have been searching lately for frameworks to build mobile apps.
I think in the long term Flutter would be your best bet, I work with both flutter and react native daily and I am constantly finding reasons why flutter is better then RN, some general things I've found with flutter are the following:
- User base is growing massively and a lot of companies are switching over to flutter
- Performance is much better than React, both usage and compile times.
- Managing framework updates with Flutter is a breeze and not so great with React.
I have been exploring the Flutter lately it's good but if I am building something which is really huge then I will definitely use React Native for these reasons
- React Native is used by so many big companies so there are libraries for everything you need.
- As of now React Native community is bigger and more active than Flutter so if you're stuck anywhere it will be easy to get help or just find a solution from stack overflow.
- Since you're already working on JS you wouldn't need to learn anything new and you can focus on building your product.
The question you should be asking yourself Do I want to spend my time learning a new framework and then build the product or should I just building the product with the framework I know.