A modular, technically focused web application designed for publishing and managing articles. This project is not business-driven, but rather built as a training ground for architectural design, infrastructure setup, and hands-on mastery of frontend tooling.
This project emphasizes:
- Clean project structuring and scalability
- Low-level build configuration using Webpack
- Type-safe architecture with TypeScript
- Component reusability and testing
- Complete control over ESLint, Babel, and Jest
🛠 The application itself is just a placeholder — the real goal is building the architecture and tools around it.
Tool | Purpose |
---|---|
Webpack | Custom bundling and dev server setup |
TypeScript | Type-safe logic across modules |
ESLint + Stylelint | Strict linting and formatting enforcement |
Jest | Unit testing setup with custom mocks |
React (assumed) | Component structure (via Storybook config) |
Husky + Lint-Staged | Git hooks and safe commits |
i18n | Translations extracted into JSON per locale |
config/
├── build/ # Manual Webpack configuration
├── jest/ # Custom Jest configuration
└── storybook/ # Storybook setup for UI preview
extractedTranslations/
└── en/, ru/ # Static translation files for i18n
.husky/ # Pre-commit hooks
.eslintrc.js # ESLint configuration
.stylelintrc.json # Stylelint for CSS/SCSS
babel.config.json # Babel with preset-env for compatibility
# Clone the repository
git clone https://github.com/your-user/articles_portal.git
cd articles_portal
# Install dependencies
npm install
# Run dev server (if configured)
npm run start
# Lint the code
npm run lint
# Run unit tests
npm run test
- Modular
buildWebpackConfig.ts
,buildDevServer.ts
,buildLoaders.ts
- Loader support for TypeScript, Babel, SVG, CSS
- Alias and resolver configuration
- Dev/prod modes separated for flexibility
- ESLint config for clean TypeScript and JavaScript
- Stylelint config for modern CSS/SCSS
- Pre-commit hooks via Husky
- Translation files in
extractedTranslations/en
andru
- JSON-based, ready for runtime i18n injection
jest.config.ts
with support for React & TSX- Mock-friendly DOM testing environment
- Storybook config included
- Encourages isolated visual testing for components
This project intentionally skips business logic or domain-specific implementation.
The focus is on:
- Manual project scaffolding
- Full control over low-level tooling (no CRA, no boilerplates)
- Clean separation of build/test/lint layers
- Future scalability and professional extensibility
- Add
src/
entry withindex.tsx
andApp.tsx
- Add Storybook stories and preview examples
- Enable GitHub Actions (CI setup partially done)
- Enable production Webpack build with code splitting
Andrei Palii
Frontend Developer
GitHub Profile