Nx-DOS is a project inspired by the monorepo management tool Nx.
It's a starter template for small teams and solo founders to help build their online businesses. Our main objective is to save time, effort and costs for developers in the seed stage.
Please note this repo is under development and doesn't currently include a generator to create a copy of the template application using a CLI command. Pending a beta release, please manually duplicate the sample application to modify as you need.
Nx is the unifying tool in the center of this project. It allows us automation and control over our monorepo in order to encourage design patterns cherished by the dev community. It will be a powerful tool in our palette with immediate practical benefits and time savings.
We would also like to express special thanks for all the good advice, new ideas and libraries shared by the awesome folk below;
- Nrwl, Nx confs & community
- Jamstack conf & community
- Next.js conf & Vercel community
- App.js conf & Expo community
- Theo and create-t3-app
- Lee Robinson's Leerob.io
If you use or like Nx-DOS, please consider providing feedback. This is an open-source project and we would love to hear from you!
Your engagement helps motivate our efforts, validate the time spent on development and guide our trajectory.
✅ available, 🚧 wip, ⏳ backlog
Boilerplate features
[🚧] Authentication
[⏳] Account management
[⏳] Email & SMS
[⏳] Push notifications
[⏳] CRUD API templates
[⏳] Payments
Universal client management
[🚧] Web, mobile & desktop clients
[🚧] URL routing & handoffs
[🚧] Mirrored state management
[🚧] SSR, server components & actions
[⏳] Bundle & SEO optimizations
[⏳] Storybook component library
Improved DX via Nx tooling
[✅] Modular architecture
[✅] Dependency graph visualization
[✅] Customizable target configurations
[✅] Self-hostable technology stack
[✅] Commitizen friendly repo
[✅] Automated changelog generation
Improved accessibility
[⏳] Internationalization & localization
[✅] Lighthouse audits & budget assertions
[✅] Cross browser reader mode improvements
[✅] Documentation viewer & markdoc support
[✅] Embeddable & highlighted source files
[✅] Searchable documentation segments
Integrated devops & monitoring
[✅] Product analytics
[🚧] Error management
[✅] Codecov test coverage monitoring
[✅] CI backbone & vercel deployment
[✅] Containerization
[⏳] Feature flags
Thank you all for taking the time to use and support Nx-DOS. We're looking forward to your feedback.
Comments from fellow developers, small teams and especially solo-founders are immensely valuable for us. We'll do our best to get back in touch with you the soonest we can, and are genuinely interested to find out more about your specific needs.
Remaining instructions below are the default essentials provided by the Nx generator. For further details please refer to Nx documentation.
This project was generated using Nx. Usage instructions about Nx are referenced below regarding basic tasks, for further details please refer to official Nx documentation. While developing and maintaining clones of this repo, it's suggested to follow Nrwl's guidelines and Nx community channels on Nx best practices.
Nx supports many plugins which add capabilities for developing different types of applications and different tools.
These capabilities include generating applications, libraries, etc as well as the devtools to test, and build projects as well.
Run nx g @nx/react:app my-app
to generate an application.
You can use any of the plugins above to generate applications as well.
When using Nx, you can create multiple applications and libraries in the same workspace.
Run nx g @nx/react:lib my-lib
to generate a library.
You can also use any of the plugins above to generate libraries as well.
Libraries are shareable across libraries and applications. They can be imported from @nxdos/mylib
.
Run nx serve my-app
for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
Run nx g @nx/react:component my-component --project=my-app
to generate a new component.
Run nx build my-app
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run nx test my-app
to execute the unit tests via Jest.
Run nx affected:test
to execute the unit tests affected by a change.
Run nx e2e my-app
to execute the end-to-end tests via Cypress.
Run nx affected:e2e
to execute the end-to-end tests affected by a change.
Run nx graph
to see a diagram of the dependencies of your projects.
Visit the Nx Documentation to learn more.