- Technologies
- Development OS
- IDE
- Coding Conventions
- Test-Driven Development
- Preferred Libraries
- Best Practices
- Design And Markup
- Search Engine Optimization
- Google Analytics & other third-party services
- Useful Links
- Node.js v12.x.x (LTS)
- npm package manager for Node.js (deprecated; using in support projects)
- yarn package manager for Node.js
- bower package manager for web development (deprecated; using in support projects)
- AngularJS 1.7.х framework (deprecated; using in support projects)
- Angular 8.0.0 as main framework
- Pug - HTML template engine
- Stylus - CSS preprocessor
- Gulp - streaming build system (deprecated; using in support projects)
- Webpack 4.x.x - JavaScript module bundler
- Babel - JavaScript compiler
- TypeScript 3.x.x - optional types, classes, and modules to JavaScript
We don’t recommend use Windows as OS for development machines. We use latest Mac OS X or Ubuntu/Debian (long-term support releases are preferred).
- WebStorm (not required)
- JavaScript Style Guide
- Angular 1.x style guide (good article)
- Angular 8.x style guide
- CSS and SASS style guide
- Stylus style guide
Use these frameworks:
- EventEmitter
- Underscore / lodash
- ui-router 1.x - routing in AngularJS
- ng-file-upload 12.x.x - Angular directive to upload files
- ngx-translate - The internationalization (i18n) library for Angular
- Keep in mind that desktop web site is not a mobile app
- Keep in mind 300 milliseconds
onClick
delay in mobile devices' browsers - Be careful with finding npm packages for your project and follow these rules:
- Check license.
- Evaluate indicators of quality, popularity and maintenance (good resource).
- Check size of package for project bundle (good resource).
- Save dependencies without automatic a major version bump.
- Periodically check for outdated dependencies (command
npm outdated
).
Web sites that we develop should be responsive and adaptive by default.
- Desktop min size: 1024x768
- Mobile min size: 320x480
Desktop:
- Internet Explorer 11
- Edge - last 2 major versions
- Firefox - last 2 major versions, ESR
- Chrome - last 2 major versions
- Safari 12.0 and latest
- Opera - last 2 major versions
Mobile:
- Chrome - last 2 major versions
- Mobile Safari 12.0 and latest
- Android - last 2 major versions
- Samsung Internet 11.1 and latest
- UC Browser for Android 12.3 and latest
This section is not finished yet.
- Properly setup
robots.txt
file. See robotstxt.org - Generate
sitemap.xml
file. See sitemaps.org - Use prerender.io
- Use tags:
h1...h6
,p
,meta
,title
etc.
Create separate third-party service ID constant for each environment (development, staging, production). Keep constants files out of repository.
Google Analytics:
- Test account - [email protected] (see on MLSDev Articles / Accounts) - create app google analytics for staging and development servers.
- Production account is to be provided/created by/for client
Firebase:
- Test account for staging and development servers - [email protected]
- Firebase integration guide (to be replaced on MLSDev Articles page)
- Production account is to be provided/created by/for client
- Frontend Dev Bookmarks - a LOT of useful links
- Material Design Icons
- AngularJS API Reference
- W3C
- The Twelve-Factor App