---
# System prepended metadata

title: Broader DevOps Strategy
tags: [v3, ' dev ops']

---

---
tags: v3, dev ops
---

# Broader DevOps Strategy

- Worked through the external starters
  - Our initial approach with externals worked -- we'll do this combined with the changes to the plugin
- Discussed the SVG issue that Rowdy is tackling

## High-Level DevOps Discussion

- Important to be able to build things in ways that we're able to fix them ourselves
- Goal is to avoid having single points of failure -- we'd want to ideally have 2 folks who understand the build steps
- nx's `project.json` files are more complex versions of `package.json` files that allow for us to include additinal JavaScript pieces
  - Start looking at how the plugins work to get a better understanding of the build steps and the underlying structures
  - Don't necessarily need the knowledge up front, but this is helpful when debugging the issues
- Can look at the nx dev kit -- this provides tools that should be considered when building plugins

### Knowledge Areas

- Build system
- nx
- Plugin ecosystem
- Vite knowledge (or whatever bundler we're relying on)

### Structure

- Does it make more sense to have a few folks who have an `ops` tag instead of a single person?
  - Aim for a few folks with an understanding who are able to troubleshoot -- consider pairing this with the Dev Rel role
    - Ops work impacts people who consume our packages so will need to be working together
- We'll have a lot of gains from folks understanding how these processes work -- there will always be issues with any bundler we use, but having folks who are able to debug this is helpful
- How are we able to better pinpoint issues within our libraries?
  - Errors aren't always surfaced well -- often a blackbox of errors
- Should we add the external packages into our build step?
  - How would we trigger a build an app via GitHub Actions?
  - Similar to testing the plugins:
    - e2e testing on the build actions via Jest
  - Potentially create an example app within the nx repo that doesn't use the nx package resolution
    - Example app that references the dist 
    - Create examples folder within the monorepo

## Next Steps

- Concrete steps to resolve our current build issues
- Establish a "first aid team" that is able to respond to issues
  - Would likely require a certain committment allocation to have 1) coverage, and 2) make sure that folks aren't overloaded
- Determine a priority tier system
- Focus on vite starter with use cases instead of supporting everything out of the box
  - Be more opinionated and focus on how our toolbox can be used to support them and then expand as we have folks requesting new things (such as Next)
  - Our infrastructure works (vite + Skynet for example) so we'd be able to focus on specific use cases and how our toolbox can solve them
- Research other options outside of Skynet