"Inbox" if for tasks that are still uncategorized.
Foundational tasks that define the essence of the app and its inner workings. This task list should ideally be completed and not receive any new tasks once the app reaches a MVP state.
- Define & implement a way to seamlessly install and use the library as a dependency in an existing project
- In order to handle the relationship between yMock and the Demo App, without contaminating each other's codebases with conditionals and such, convert the package to a monorepo with TurboRepo
- Fix worker initialization
- Fix yMock routing
- Fix unit tests
- Run yMock from its own directory in the host app's server (see: https://github.com/intesys/ymock/tree/feature/upgrade-vitejs)
- Find a solution to run yMock with its own routing, without contributing the host app's history stack
- Switch to hash routing
- Find a way to develop the client in stand-alone mode with a mock worker
- Remove all occurrences of hosted/stand-alone mode, etc
- Create an automated process (like the msw init script) to install yMock's build into a subdir in the host project's public dir
- Update README to reflect the new implementation
- Create at least another host app that is not built with vite to check that everything still works as expected
- Setup a dev workflow that:
- Runs client, launcher & host on their own dev server, in parallel
- Builds launcher & client before running dev on the host app
- Imports launcher into host as an actual npm dependency, referencing the dist assets
- Copies the client build into host, reproducing how it should work in the context of the end user's project
- Rebuilds launcher & client on any dev change, and copies client into host
- In order to handle the relationship between yMock and the Demo App, without contaminating each other's codebases with conditionals and such, convert the package to a monorepo with TurboRepo
"Stories" or features, that are user-facing in nature; ask yourself: "will the end user see or use the result of this task?"
- Implement company theme
- Implement UI animations
- Finalize Settings section (sidebar objects, data structure)
- Implement data store for data persistence/exporting (see: intesys/ytestbook#3)
- Add breadcrumb to navbar
- Enable colorScheme in settings
- The app should run
msw init
instead of copying the init script to the dist folder - Restructure routing
- Implement global state
Stuff that needs fixing.
- Un-break broken functionality (regressions due to an unfinished refactor)
- Ability to individually toggle mocks
- Mock overrides should appear in UI when submitted
- Global VS local state
- …
- Fix light theme
- Fix TS issues
- yMock's postinstall script no longer works when handled by turbo in the context of the dev script
- The
/demo
route should be hidden in production - Fix sidebar mapping in standalone mode
- There's something not 100% working with the
__ymock
basepath
What we need to do to distribute the app on the npm registry.
- Define how the module(s) will be packaged
- Unbundle "Launcher" into its own workspace
- Write build script for the Launcher workspace, setup package.json
- Write build script for the yMock workspace, setup package.json
- Unbundle "Launcher" into its own workspace
- Test a real-life installation
Routine maintenance tasks or the odd (hot)fix.
- …
Stuff that works, but could work better; tooling, code quality, and DX-related tasks.
- Migrate contexts to global state
- Implement https://turbo.build/repo/docs/getting-started/create-new#understanding-tsconfig in monorepo
- Implement https://turbo.build/repo/docs/getting-started/create-new#understanding-eslint-config-custom in monorepo
- Integrate TS fixes from https://github.com/intesys/ymock/tree/feature/upgrade-vitejs
- Migrate to Vite
- Refactor main route like settings (dynamic sub-routes with Outlet)
- Refactor Body component as generic component
PR integrations, etc.
- Evaluate #14
- A
?
at the start of a task denotes an optional/nice-to-have feature, or in general something you're still considering if it's worth implementing.