Articles

Technical Blog

ProductNov 25, 2025

Introducing Nemo v2.0: The Future of Auto-Documentation

Overview

Nemo v2.0 represents a major leap forward in automated documentation generation. We've rebuilt our core analysis engine from the ground up, achieving 10x faster processing speeds while improving accuracy by 40%.

Key Improvements

  1. Rewritten Analysis Engine: The new engine uses advanced machine learning models to better understand code intent and generate more contextual documentation.

  2. Multi-Language Support: Full support for JavaScript, Python, Rust, Go, and Java, with plans for more languages in future updates.

  3. Interactive Docs: Generated documentation now includes interactive code examples and live previews where applicable.

Technical Details

The core of v2.0 is our new AST (Abstract Syntax Tree) parser combined with a natural language generation model fine-tuned on millions of lines of open-source code. This allows Nemo to not only parse syntax but also infer semantic meaning, producing docstrings that explain why code exists, not just what it does.

For example, consider a complex React component. Nemo v2.0 will generate documentation that covers state management patterns, prop validation, and even performance considerations based on the component's structure.

We're excited about the future of developer tools and can't wait to see what you build with Nemo v2.0!

EngineeringNov 25, 2025

How we built a scalable AST parser in Rust

The Challenge

Parsing millions of lines of code across multiple languages requires a parser that is both fast and memory-efficient. Our previous JavaScript-based parser was hitting performance limits as our user base grew.

Why Rust?

We chose Rust for its unparalleled performance and safety guarantees. Rust's ownership model ensures memory safety without garbage collection, which is crucial for long-running parsing tasks.

Architecture Overview

The parser is built as a modular system:

  1. Lexer: Tokenizes source code using finite state machines.
  2. Parser: Builds AST using recursive descent with Pratt precedence for operators.
  3. Optimizer: Prunes unnecessary nodes and performs semantic analysis.
  4. Serializer: Converts AST to our internal representation for documentation generation.

Performance Benchmarks

  • JavaScript parser: 150ms for 10k lines
  • Rust parser: 15ms for 10k lines (10x faster)
  • Memory usage: Reduced from 250MB to 45MB per parse

Key Implementation Details

We implemented a custom token stream that avoids unnecessary allocations by reusing buffers. The parser uses zero-copy deserialization where possible, leveraging Rust's Cow (Copy-on-Write) pattern.

For error recovery, we implemented a lookahead buffer of 1024 tokens, allowing graceful handling of syntax errors without cascading failures.

Here's a simplified example of our operator precedence parsing:

use parser::pratt::Parser;

fn parse_expression(input: &str) -> Result<Expr, Error> {
    let mut parser = Parser::new(input);
    parser.expression(0)
}

This approach scales linearly with input size and handles complex nested expressions efficiently.

Lessons Learned

Building in Rust taught us the value of explicit error handling and the borrow checker. While the initial development was slower due to Rust's strictness, the resulting code is more reliable and performant.

The parser is now battle-tested across thousands of repositories and forms the backbone of Nemo v2.0.

CommunityNov 28, 2025

Nemo is open source (Coming Soon)

We're Going Open Source!

After years of building Nemo in stealth mode, we're thrilled to announce that our core analysis engine is now open source.

Why Open Source?

  1. Transparency: We want the community to see and contribute to the technology that powers auto-documentation.
  2. Collaboration: Open source enables faster innovation through community contributions.
  3. Accessibility: More developers can benefit from advanced code analysis without proprietary barriers.

What's Included

The open source release includes:

  • Complete AST parser in Rust
  • Documentation generation algorithms
  • Integration examples for popular frameworks
  • Comprehensive test suite covering 50+ languages

How to Contribute

We welcome contributions in all forms:

  • Bug reports and feature requests
  • New language parsers
  • Performance optimizations
  • Documentation improvements

Check out our CONTRIBUTING.md for guidelines.

The Road Ahead

This is just the beginning. With community support, we plan to:

  1. Add support for more programming languages
  2. Integrate with popular IDEs like VS Code and Cursor
  3. Build an ecosystem of plugins and extensions

Thank You

A huge thank you to our early users and contributors who helped shape Nemo into what it is today. Together, we're building the future of developer productivity.

Join us on this journey – star the repo, try it out, and let us know what you think!