Optimizing Codebases for AI Development Era
Tags: programming, productivity, ai, development
Published: 2024-02-11 22:40:49

It's time for a **paradigm shift towards AI-first development** strategies in [Software 2.0](https://dev.to/sip/the-software-20-revolution-starts-with-ai-and-front-end-development-34a8). Here's how you can prepare your codebase and architecture to leverage AI tools effectively, guarantee optimal development experiences, and prepare your projects for **AI Agents and AI-written code**.

## 1. Use Utility-First CSS - **TailwindCSS**

**Tailwind CSS** stands out as the framework of choice for the AI development era. Its simple utility-first approach, offering low-level, descriptive classes, minimizes abstraction layers, making it easier for AI systems, including Large Language Models (LLMs), to predict and apply styling accurately. **Eliminating multilevel inheriting CSS classes and just defining utility classes is ideal for LLM predicting next token and improving AI understanding.**

{% embed https://twitter.com/dom_sipowicz/status/1756777343962517654 %}

## 2. Use monorepos for better AI context

Monorepositories, such as Turborepo, play a crucial role in AI-assisted development by providing comprehensive context. Housing both frontend and backend components within the same repository **allows AI tools, like GitHub Copilot, to grasp the interactions and dependencies across your project**, enhancing their ability to generate coherent and context-aware code.

{% embed https://twitter.com/dom_sipowicz/status/1660411359882891264 %}

## 3. Use the most popular languages like **Python/JavaScript**

There can be no doubt that Python and JavaScript are two of the most popular programming languages. **Because of the large amount of training data available, the majority of LLMs are proficient in these languages**. It is not only easier to integrate with AI when you use widely used languages, but it also ensures better support and resources. A niche language like Go or Rust may offer unique advantages, but their relative scarcity in training datasets may limit their AI efficiency.

## 4. AI-first Docs (AI crawlers ready, in training sets, prompt ready)

Documentation's importance cannot be overstated, [especially in an AI-first development approach](https://dev.to/sip/ai-future-of-docs-and-kb-pages-2g3k). Comprehensive documentation for languages, frameworks, metaframeworks, and packages allows AI to quickly reference and understand the tools at its disposal. It's imperative to use not only a language and framework, but also a metaframework **and even packages that will be easy for AI agents to consume**. An extensive set of examples needs to be included in the documentation. Exceptional documentation, as seen with React and Next.js, significantly aids LLMs in generating accurate and efficient code, drawing from well-documented examples and guidelines.

## 5. Use Open Source software over closed version

By prioritizing [open-source languages](https://octoverse.github.com/2022/top-programming-languages), frameworks, and packages, **AI tools will have plenty of examples to learn from**. AI can generate more accurate and functional code **by referencing real-world applications in the open-source ecosystem**.

## 6. More KISS, less SOLID/DRY

As we transition to an era where AI not only assists but also contributes to codebases, the principles of code writing evolve. Simplicity for AI and humans. Favor clear, simple code structures over complex abstractions. **Embrace repetition if it aids clarity.** Aim for straightforward code that AI can easily extend, interpret, and test. **Less about crafting the perfect abstract class, more about clear, understandable, and testable code.** Simplicity and directness over complexity.

## 7. Testing: Boosting Code Coverage

With AI, excuses for skipping tests vanish. AI ensures every code piece is test-ready, aiming for comprehensive coverage. Unit and integration testing becomes the norm, not the exception. AI's ability to write and test code transforms testing from a chore to a given, supporting robust, reliable software development.

----

**Reference:**

{% embed https://dev.to/sip/the-software-20-revolution-starts-with-ai-and-front-end-development-34a8 %}

{% embed https://dev.to/sip/ai-future-of-docs-and-kb-pages-2g3k %}


---

Godspeed

PS. Follow me on Twitter or LinkedIn and subscript to my **AI YouTube channel**
[https://twitter.com/dom_sipowicz](https://twitter.com/dom_sipowicz)
[https://www.linkedin.com/in/dominiksipowicz/](https://www.linkedin.com/in/dominiksipowicz/)
[https://www.youtube.com/@DominikSipowicz](https://www.youtube.com/@DominikSipowicz)