Skip to main content

Coming soon: Features and practices

WIP - This doc is being written these days

This list will outline all the capabilities and roadmap of Practica.js

Here will come a filter panel to search by categories, what's strategic, and more

1. Logger

1.1 Logger Library

What: A reputable and hardened logger

Tags: #strategic #logger

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: Pino.js (Decision log here)

🎁 Bundles: example-flow, full-flow

🏁 CLI flags: --logger=true|false

1.2 Prevent infinite logger serialization loop

What: Limit logged JSON depth when cyclic reference is introduced

Tags: #logger

👷🏾 Status: Idea, not implemented

🏆 Chosen libraries: Pino.js (Decision log here)

🎁 Bundles: example-flow, full-flow

🏁 CLI flags: None, always true

2. Configuration

2.1 Configuration retriever module

What: A configuration retriever module that packs good practices

Tags: #strategic #configuration

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: Convict (Decision log here)

🎁 Bundles: example-flow, full-flow

🏁 CLI flags: -

3. Testing experience

3.1 Slow tests detection

What: Slow tests automatically shown clearly in the console and exported to a json report

Tags: #dx #testing

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: jest-performance-reporter

🎁 Bundles: example-flow, full-flow

3.2 Autocomplete

What: When running tests in watch mode and choosing filename or test name patterns autocomplete will assist you

Tags: #dx #testing

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: jest-watch-typeahead

4. Docker

4.1 Secured dockerfile

What: We build a production-ready .dockerfile that avoids leaking secrets and leaving dev dependencies in

Tags: #security #docker

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: N/A

4.1 Layered build

What: The poduction artifact omit building tools to stay more compact and minimize attack sutface

Tags: #security #docker

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: N/A

4.2 Compact base image

What: A small, ~100MB, base image of Node is used

Tags: #docker

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: N/A

4.2 Testing docker-compose

What: Testing optimized database and other infrastrucuture running from docker-compose during the automated tests

Tags: #testing #docker #database

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: N/A

Additional 100 features will come here

5. Database

5.1 Sequelize ORM

What: Support for one of the most popular and matured ORM - Sequelize

Tags: #orm #db

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: Sequelize

5.2 Prisma ORM

What: Support for one of an emerging and type safe ORM - Prisma

Tags: #orm #db

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: Prisma

5.3 Migration

What: Includes migration files and commands for production-safe updates

Tags: #orm #db

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: Prisma

6. Request-level store

6.1 Automatic correlation-id

What: Automatically emit unique correlation id to every log line

Tags: #log #tracing

👷🏾 Status: Production-ready, more hardening is welcome

🏆 Chosen libraries: N/A