Built a DevHub from scratch, now building something big in TypeScript
Open Source user since 1998 • In Fediverse since 2017
https://techhub.social/@bmariusz
It includes:
- Email-based reset links
- Custom API endpoints
- i18n support
- Validations
- Tailwind components
Curious about the details?
write.tyolabs.com/2025/07/31/t...
It includes:
- Email-based reset links
- Custom API endpoints
- i18n support
- Validations
- Tailwind components
Curious about the details?
write.tyolabs.com/2025/07/31/t...
write.tyolabs.com/2025/07/18/t...
write.tyolabs.com/2025/07/18/t...
Today: structured presentation for founders, full internal docs review, and setup of self-hosted collaboration tools (NextCloud) for real teamwork.
write.tyolabs.com/2025/07/15/t...
Today: structured presentation for founders, full internal docs review, and setup of self-hosted collaboration tools (NextCloud) for real teamwork.
write.tyolabs.com/2025/07/15/t...
write.tyolabs.com/2025/07/11/t...
#nextjs #jwt #webdev #programming #sql
write.tyolabs.com/2025/07/11/t...
#nextjs #jwt #webdev #programming #sql
Added full account registration with email verification and automatic trial plan assignment.
Custom translation system via JSON files and `x-lang` header.
Refactored subscription logic with proper plan relations.
All tests pass.
write.tyolabs.com/2025/07/10/d...
Added full account registration with email verification and automatic trial plan assignment.
Custom translation system via JSON files and `x-lang` header.
Refactored subscription logic with proper plan relations.
All tests pass.
write.tyolabs.com/2025/07/10/d...
Scoped tenant access across 12 modules.
Introduced ScopedRepository
Refactored 12 services, added 80+ tests to validate strict isolation.
No manual filtering needed anymore. I like it.
write.as/bmariusz/day...
Scoped tenant access across 12 modules.
Introduced ScopedRepository
Refactored 12 services, added 80+ tests to validate strict isolation.
No manual filtering needed anymore. I like it.
write.as/bmariusz/day...
Implemented password reset functionality using JWT:
/auth/remind-password generates token and sends it via email
/auth/reset-password verifies the token and updates the password
Endpoints documented with Swagger.
Token secret and base URL configured via environment variables.
is.gd/LUE83u
Implemented password reset functionality using JWT:
/auth/remind-password generates token and sends it via email
/auth/reset-password verifies the token and updates the password
Endpoints documented with Swagger.
Token secret and base URL configured via environment variables.
is.gd/LUE83u
Finalized hierarchy and contract logic: 1.4k test users, 160 units, 4 roles, supervisor chains, typed contracts with valid dates and amounts. Massive SQL update and 🎯 consistency across structure.
is.gd/r3KPbS
Finalized hierarchy and contract logic: 1.4k test users, 160 units, 4 roles, supervisor chains, typed contracts with valid dates and amounts. Massive SQL update and 🎯 consistency across structure.
is.gd/r3KPbS
Installed Forgejo and configured its native runner from scratch on Debian. Everything now works locally. I've added a GitHub backup workflow — every push to main now syncs code and tags to a private mirror repo.
shorturl.at/2gMtC
Installed Forgejo and configured its native runner from scratch on Debian. Everything now works locally. I've added a GitHub backup workflow — every push to main now syncs code and tags to a private mirror repo.
shorturl.at/2gMtC
The system supports now 96 distinct permissions across 8 modules, 4 CRUD operations, and 3 scopes: self, group, global.
Three system roles bind these into meaningful sets. More come...
is.gd/5rTif0
The system supports now 96 distinct permissions across 8 modules, 4 CRUD operations, and 3 scopes: self, group, global.
Three system roles bind these into meaningful sets. More come...
is.gd/5rTif0
✅ 24 test suites, 153 tests passing.
Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).
is.gd/cnBprP
✅ 24 test suites, 153 tests passing.
Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).
is.gd/cnBprP
Released backend v0.3.0 🎉
✅ Users can belong to multiple groups with typed roles
✅ Groups can form hierarchical or overlapping structures
✅ Roles are normalized via reference types
Built with NestJS + TypeORM. Documented via Swagger.
is.gd/KNqKBH
Released backend v0.3.0 🎉
✅ Users can belong to multiple groups with typed roles
✅ Groups can form hierarchical or overlapping structures
✅ Roles are normalized via reference types
Built with NestJS + TypeORM. Documented via Swagger.
is.gd/KNqKBH
RBAC is live.
Roles load from DB, go into JWT at login, and are checked via @Roles() + RolesGuard.
@UseGuards(JwtAuthGuard) added globally, @Public() bypasses auth.
Swagger supports Bearer auth.
Getting roles into the token took finesse.
is.gd/gspSV1
RBAC is live.
Roles load from DB, go into JWT at login, and are checked via @Roles() + RolesGuard.
@UseGuards(JwtAuthGuard) added globally, @Public() bypasses auth.
Swagger supports Bearer auth.
Getting roles into the token took finesse.
is.gd/gspSV1
Full Swagger docs and JWT auth are live.
Swagger now covers all DTOs and endpoints with real examples.
User registration + login added, using bcrypt and JWT tokens with roles.
Passport strategies in place. Next: route guards and RBAC.
is.gd/jC5QXE
Full Swagger docs and JWT auth are live.
Swagger now covers all DTOs and endpoints with real examples.
User registration + login added, using bcrypt and JWT tokens with roles.
Passport strategies in place. Next: route guards and RBAC.
is.gd/jC5QXE
Added global `ValidationPipe` and unified `AllExceptionsFilter` in NestJS. API errors now follow a consistent format: `{ statusCode, error, message, code, details }`.
is.gd/4WwbFV
Added global `ValidationPipe` and unified `AllExceptionsFilter` in NestJS. API errors now follow a consistent format: `{ statusCode, error, message, code, details }`.
is.gd/4WwbFV
Wrestled for hours with TS `project references` and `paths` in a Turbo monorepo (NestJS, ESM).
If you want global aliases like `@my-lib/foo` to *just work* across apps — skip `composite: true` and `tsc --build`.
#TypeScript #NestJS #Microservices #codingdays #programming
is.gd/YCXief
Wrestled for hours with TS `project references` and `paths` in a Turbo monorepo (NestJS, ESM).
If you want global aliases like `@my-lib/foo` to *just work* across apps — skip `composite: true` and `tsc --build`.
#TypeScript #NestJS #Microservices #codingdays #programming
is.gd/YCXief
tl;dr: ESM + TS + NestJS + TypeORM is possible, but not recommended for the impatient.
Successfully bootstrapped NestJS + TypeORM + PostgreSQL stack using ESM.
is.gd/7Z269a
#TypeScript #NestJS #Microservices #codingdays #programming
tl;dr: ESM + TS + NestJS + TypeORM is possible, but not recommended for the impatient.
Successfully bootstrapped NestJS + TypeORM + PostgreSQL stack using ESM.
is.gd/7Z269a
#TypeScript #NestJS #Microservices #codingdays #programming
TL;DR: Set up the basic foundations for a new system: database schema finalized, core backend modules scaffolded, and initial API contracts defined.Key points:
Microservices architecture
PostgreSQL
TypeScript with ESM
write.as/bmariusz/test
#TypeScript #NestJS #Nextjs #codingdays #programming
TL;DR: Set up the basic foundations for a new system: database schema finalized, core backend modules scaffolded, and initial API contracts defined.Key points:
Microservices architecture
PostgreSQL
TypeScript with ESM
write.as/bmariusz/test
#TypeScript #NestJS #Nextjs #codingdays #programming
I've also just added support for Blink highlight groups to my theme (tol.nvim). If you're a Neovim user, please check it out:
github.com/dustypomerle...
I've also just added support for Blink highlight groups to my theme (tol.nvim). If you're a Neovim user, please check it out:
github.com/dustypomerle...