- Framework: Angular 21 (Standalone Components, Signals, Hydration)
- Monorepo Tooling: Nx (Project Graph, Distributed Task Execution)
- Styling: Tailwind CSS 4
- State Management: NgRx Signal Store
- Backend Integrations:
- Firebase: Real-time DB, Auth, and Cloud Functions (llecoop)
- PocketBase: Lightweight Go backend (eco-store)
- GraphQL: Apollo Client integration (plastikaweb)
- Quality Assurance: Jest, Cypress, Pa11y (Accessibility), ESLint
This project follows a Domain-Driven Design (DDD) approach within an Nx workspace.
graph TD
subgraph Applications
Apps[Any Application]
end
subgraph Libraries
direction TB
AppSpecific[App Specific Libs]
Shared[Shared Libs]
Core[Core Libs]
end
Apps --> AppSpecific
Apps --> Shared
Apps --> Core
AppSpecific --> Shared
AppSpecific --> Core
Shared --> Core
For more details, see the ποΈ NX Architecture Guide.
- Node.js: v22 (see
.nvmrc) - Yarn: v4+
- rimraf:
npm install -g rimraf(required for clean scripts)
-
Clone the repo
git clone git@github.com:plastikaweb/plastikspace.git cd plastikspace -
Full Environment Setup
yarn install:local
Some apps require a backend to be running. These commands start both:
| Command | Description |
|---|---|
yarn eco-store:local |
Starts PocketBase + eco-store frontend |
yarn llecoop:local |
Starts Firebase Emulators + llecoop frontend |
yarn nasa-images:serve |
Starts the NASA image gallery |
yarn plastikaweb:serve |
Starts the personal website |
- Test Everything:
yarn test:all - Lint Everything:
yarn lint:all - Visualize Workspace:
yarn dep-graph - Affected Changes:
nx affected:test
| Resource | Description |
|---|---|
| π¨ Code Style | ESLint, Prettier, and Angular best practices |
| π Commit Guide | Conventional Commits & Commitizen usage |
| βΏ Accessibility | WCAG compliance and Pa11y testing |
| π I18n Guide | ngx-translate and multi-language support |
| π CSS Styling | Tailwind 4 configuration and presets |
| Application | Stack | Description |
|---|---|---|
| eco-store | PocketBase, Signals | Modern e-commerce showcase. |
| llecoop | Firebase, NgRx | Collaborative shopping application. |
| nasa-images | Public API, Material | NASA imagery explorer. |
| plastikaweb | GraphQL, Apollo | Personal portfolio & blog. |
Foundation libraries used across applications.
- api-base: Base interfaces and types for API services.
- api-http: Generic HTTP CRUD services.
- api-firebase: Generic Firebase CRUD services.
- api-pocketbase: Generic PocketBase CRUD services.
- environments: Environment configuration helpers.
- assets: Asset management.
- cypress-commands: Custom Cypress commands.
- paginator: Material Paginator internationalization service.
- cms-layout: CMS layout features.
- ng-entry-html: HTML entry utilities.
- styles-preset: Core styles and presets.
- styles-tailwind4: Global CSS variables for TailwindCSS v4.
- styles-material: Global CSS adjustments for Angular Material.
Reusable features and UI components.
- data-access-http: Signal Store features for HTTP.
- data-access-firebase: Signal Store features for Firebase.
- data-access-pocketbase: Signal Store features for PocketBase.
- button
- table
- form
- notification
- activity
- img-container
- mat-theme-toggle
- pagination-ui
- pagination-util
- sort-selector
- shared-chip
π§ info@plastikaweb.com π www.plastikaweb.com
