Shared Packages

Reusable packages across Portfolio OS applications

Shared Packages

Shared packages provide reusable code across all Portfolio OS applications.

Package List

PackageDescriptionDependencies
@mindware-blog/uiReact componentsutils
@mindware-blog/libBusiness logicutils, hashnode
@mindware-blog/utilsUtility functionsNone
@mindware-blog/dbDatabase clientNone
@mindware-blog/hashnodeHashnode APINone
@mindware-blog/emailsEmail templatesNone
@mindware-blog/tsconfigTypeScript configsNone
@mindware-blog/eslint-config-customESLint configNone

Using Packages

In Applications

// apps/site/package.json
{
  "dependencies": {
    "@mindware-blog/ui": "workspace:*",
    "@mindware-blog/lib": "workspace:*",
    "@mindware-blog/utils": "workspace:*"
  }
}
// apps/site/app/page.tsx
import { Button } from '@mindware-blog/ui'
import { getAllPosts } from '@mindware-blog/lib'
import { formatDate } from '@mindware-blog/utils'

Package Details

See Package System for comprehensive documentation on each package.

Development

# Make changes to package
cd packages/ui
# Edit components

# Changes automatically available in all apps
cd ../../apps/site
pnpm dev  # Uses updated package

Testing

# Test specific package
pnpm test --filter=@mindware-blog/ui

# Test all packages
pnpm test --filter="./packages/*"

Next Steps