DEV Community

KevinTen
KevinTen

Posted on

Building AI-Tools: How I Aggregated 125+ AI Tools and What I Learned Along the Way

Building AI-Tools: How I Aggregated 125+ AI Tools and What I Learned Along the Way

Honestly, I didn't think this project would actually get 12 stars on GitHub when I started it. Let me be totally honest with you - I built this thing because I was tired of bookmarking 50 different AI tools in my browser and then forgetting what half of them actually did. Sound familiar?

I've been building side projects for over 5 years now, and this one started as a tiny personal experiment. "How hard can it be to just list some AI tools in one place?" I thought. Spoiler alert: it was harder than I expected, but I also learned way more than I thought I would.

In this post, I want to walk you through why I built AI-Tools, what the architecture looks like, the mistakes I made along the way, and whether I think building an aggregator site is still worth it in 2026.

What is AI-Tools Anyway?

If you haven't checked it out yet, AI-Tools is basically a curated collection of 125+ AI tools that actually useful. The GitHub repo is here: https://github.com/kevinten10/AI-Tools

The idea is simple - instead of scrolling through Twitter or Hacker News trying to find that one AI tool someone mentioned last week, you can just go to one place and browse by category. Need a text generator? It's there. Looking for AI image editing? Got you covered. Want to find tools specifically for developers? Yep, they're categorized too.

I learned the hard way that the problem with most "AI tools" lists out there is that they're either outdated, full of spam, or just link every single AI project that ever existed regardless of quality. I wanted to make something that was maintained, curated, and actually helpful.

So why did I put this on GitHub instead of making it a fancy web app? Great question. I'll get to that later when I talk about the tradeoffs.

The Architecture: Keep It Simple, Stupid

So here's the thing - I built this thing to be dead simple. No complex backend, no database, nothing fancy. Let me show you what the actual structure looks like:

AI-Tools/
├── README.md          # The main list - this is what people actually come for
├── categories/         # Category-specific lists
├── scripts/           # Small maintenance scripts
└── data/              # Tool metadata JSON
Enter fullscreen mode Exit fullscreen mode

Wait, that's it? Yeah, that's actually it. The whole thing is just a markdown file in a GitHub repo. Let me explain why I made this decision.

When I started, I was thinking about building a full web app with React, a backend, user accounts, favorites functionality, all that good stuff. But then I stopped and asked myself: "do I actually want to maintain this for the next two years?" The answer was no. I didn't want to deal with servers, SSL certificates, user data, spam, any of that.

So I went with the simplest possible approach that could possibly work: put everything in a README on GitHub. That way:

  1. It's free to host (thanks GitHub)
  2. Anyone can contribute by submitting a PR
  3. It's always version controlled
  4. I don't have to do any DevOps work
  5. It loads instantly - no waiting for React to hydrate

Here's what the actual tool entry looks like in the README:

### ChatGPT
- **Category**: Chatbots
- **Description**: The original general-purpose AI chatbot from OpenAI
- **Website**: https://chat.openai.com
- **Pricing**: Free + $20/month Plus
Enter fullscreen mode Exit fullscreen mode

Simple, readable, easy to parse if you want to build something on top of it. I also added a JSON file with all the tool data if anyone wants to use the data programmatically:

[
  {
    "name": "ChatGPT",
    "category": "Chatbots",
    "description": "The original general-purpose AI chatbot from OpenAI",
    "url": "https://chat.openai.com",
    "pricing": "Free + $20/month Plus",
    "tags": ["chat", "general-purpose"]
  }
]
Enter fullscreen mode Exit fullscreen mode

I even wrote a small Node.js script that converts the JSON data to markdown automatically, so I don't have to update it in two places every time I add new tools. Here's a snippet of that:

const fs = require('fs');
const tools = require('./data/tools.json');

function generateMarkdown(tools) {
  let markdown = '# AI Tools Directory\n\n';
  markdown += 'A curated list of 125+ AI tools that are actually useful.\n\n';

  // Group by category
  const categories = {};
  tools.forEach(tool => {
    if (!categories[tool.category]) {
      categories[tool.category] = [];
    }
    categories[tool.category].push(tool);
  });

  // Generate category sections
  Object.keys(categories).sort().forEach(category => {
    markdown += `## ${category}\n\n`;
    categories[category].forEach(tool => {
      markdown += `### ${tool.name}\n`;
      markdown += `- **Description**: ${tool.description}\n`;
      markdown += `- **Website**: ${tool.url}\n`;
      markdown += `- **Pricing**: ${tool.pricing}\n\n`;
    });
  });

  return markdown;
}

const markdown = generateMarkdown(tools);
fs.writeFileSync('./README.md', markdown);
console.log(`Generated README with ${tools.length} tools`);
Enter fullscreen mode Exit fullscreen mode

That's literally the entire "backend". 50 lines of code. I love it. No frameworks, no dependencies except Node.js itself (well, okay, zero dependencies if you don't count Node).

The Controversial Decision: No Web App, Just GitHub

I know what some of you are thinking: "Why would you build an aggregator and just leave it on GitHub? People expect websites these days!"

Honestly, I've gone back and forth on this a lot. Let me break down the pros and cons because it's not as clear-cut as you might think.

Pros of the GitHub-only approach

  1. It's completely free. Zero hosting costs. Zero maintenance. I don't even have to think about it except when someone submits a PR. That's huge for a side project - the less ongoing work, the better.

  2. Community contribution just works. People already know how to open a PR on GitHub. They already have accounts. No need to build a whole contribution system from scratch. In the first month alone, I got 15 pull requests with new tools. That would never have happened if I'd built a custom contribution form on a website.

  3. SEO actually still works. GitHub has incredible domain authority. My repo shows up on the first page for "curated ai tools list" in Google. I get more organic traffic from that than I would from a brand new domain I registered. Wild, right?

  4. It's already accessible everywhere. Anyone can view it, fork it, mirror it, whatever. If I disappear tomorrow, the repo is still there. No dead links because my hosting expired.

Cons of the GitHub-only approach

  1. It's not the prettiest UI. GitHub's markdown rendering is fine, but it's not going to win any design awards. You can't filter tools by multiple tags, you can't search easily (okay, you can use browser find, but that's it), you can't save your favorites.

  2. Discovery is harder. People expect to go to a website with a nice domain name, not a GitHub repo. I think I lose a lot of casual visitors because of this.

  3. No user data means no personalization. Can't let users save their favorite tools, can't recommend new tools based on what they've looked at before. It's a static list, and that's that.

So here's my honest take: if you're building something like this as a side project and you don't want to spend a lot of time maintaining it, the GitHub-only approach is actually genius. If you're trying to build a business out of it, you're gonna need a proper website. I knew from day one this wasn't going to be a money-making project for me, so I went with simple.

Mistakes I Made Along the Way

Okay, let's talk about the embarrassing stuff. I messed up quite a few things when I was building this. Maybe you can learn from my mistakes.

Mistake 1: I tried to categorize everything too finely

At first, I had like 20 different categories. "AI Writing", "AI Copywriting", "AI Blogging", "AI Social Media" - all separate categories. What happened? People got confused. A tool that writes blog posts also writes social media posts. So which category does it go in?

I ended up merging a bunch of categories and going broader. Now I have like 8 main categories, and I use tags for more specific classification. That works much better. Don't over-engineer your categorization. Keep it simple for the users.

Mistake 2: I accepted every tool at first

When I started, I thought "more tools = better". So I merged every PR that added a new tool, even if I'd never heard of it and it looked kinda sketchy. Big mistake.

I started getting people opening issues saying "this tool is actually just a scam" or "this doesn't work anymore" or "this is just a clone of another tool". I had to go back and remove a bunch of entries, which is awkward.

Now I have a simple rule: I only add tools that I've actually tried myself, or that multiple people have recommended and seem legit. Quality over quantity. I'd rather have 100 really good tools than 200 bad ones.

Mistake 3: I didn't add a contribution guide early enough

For the first two weeks, I didn't have a CONTRIBUTING.md. People opened PRs that added tools to the wrong place, or formatted them incorrectly, or forgot the pricing information. I spent more time commenting on PRs telling people how to fix them than actually merging them.

Add your contribution guide on day one. Make it crystal clear what format you want, what kinds of tools you accept, what information you need. It takes 30 minutes to write and saves you hours later. Here's what I have in mine now:

## Contributing

1. Fork this repo
2. Add your tool to `data/tools.json` in the correct category
3. Make sure you include: name, category, description, url, pricing
4. Run `node scripts/generate.js` to update the README
5. Open a PR

Please only add tools that are actually useful and actively maintained. 
No spam, no dead links, no "SEO tools" that don't actually work.
Enter fullscreen mode Exit fullscreen mode

That's all you need. Most people read it, and now PRs are almost always correct the first time.

Mistake 4: I underestimated how much spam I'd get

Speaking of contributions - I get a surprising amount of spam PRs. People trying to sneak in their low-quality AI tool that's just a wrapper around OpenAI API with a fancy UI and a monthly subscription. Or people adding links to their SEO-bait articles that list AI tools.

I don't merge those, obviously, but it takes time to sort through them. I now have a filter where if it's a new contributor, I have to manually review everything before I even see the PR. GitHub does this automatically now, which is helpful.

Pros and Cons of Building an AI Tools Aggregator in 2026

Is building an AI tools aggregator even worth it anymore? Everyone and their grandma has an AI tools list now, right?

Let me give you my honest assessment after building this one.

The Good

It's easy to start. Like I showed you, you can put something basic together in a weekend. It doesn't have to be complicated.

People actually need this. The AI space moves so fast that even people who follow it closely can't keep up. Having a curated list in one place is genuinely helpful. I get DMs every week thanking me for putting it together. That's when you know you built something useful.

Great for learning. If you're new to web development or open source, this is a great project to work on. You get practice with Git, markdown, JSON, maybe some simple scripting. And if you build a web version, you get practice with frontend too.

It can lead to other opportunities. I didn't expect this, but because the repo got a few stars, I've had people reach out to me with other opportunities - collaboration on projects, job inquiries, even speaking gigs. It's become a nice calling card even though it's such a simple project.

Low effort, high reward. Especially with the GitHub-only approach. Once it's set up, it kind of maintains itself. People contribute new tools, you merge the PRs once a week, that's it. I probably spend 30 minutes a week on this project total.

The Bad

It's competitive. There are hundreds of AI tools lists out there. Standing out is hard. I got lucky with GitHub SEO, but that's not something you can count on.

Monetization is hard. How do you actually make money from this? You can do affiliate links, but most AI tools don't have great affiliate programs. You could do ads, but that requires traffic. You could do a premium version, but people expect lists to be free. I'm not even trying to monetize this one - it's just a public good at this point.

It requires ongoing maintenance. AI tools shut down all the time. They change pricing, they change names, they get acquired. You have to keep the list updated, otherwise it becomes useless. I try to go through and check dead links every couple of months, but it's still work.

You can't please everyone. Someone is always going to say "why didn't you include my favorite AI tool?" or "why is this tool here, it's garbage?" You just have to grow a thick skin and remember that curation is subjective.

What I've Learned After Six Months

Honestly, I've been surprised by how well this little project has done. It started as a personal thing for me to keep track of AI tools I wanted to try, and now it's got 12 stars on GitHub and people are actually using it. That's more than I ever expected.

Here are the big lessons I'm taking away from this:

  1. Simple beats complex every time for side projects. I can't stress this enough. If you can build it with markdown and a JSON file, do that. Don't reach for the fancy new framework unless you actually need it. My 50-line Node script has served me better than any complex CMS would have.

  2. Open source works really well for curated lists. The community aspect surprised me. People really do want to contribute. I've added more tools from PRs than I added myself at this point. That's the magic of open source - the project gets better without me doing all the work.

  3. You don't need permission to build something. I remember overthinking this project at the beginning. "Does the world really need another AI tools list?" Yeah, actually, it does. Different people curate differently, different lists have different personalities. Your perspective is unique, so don't let that stop you.

  4. Side projects don't have to make money to be valuable. This project doesn't make me any money, but it's given me connections, it's helped me learn, it's helped other people. That's more than enough value for me. Not every project has to be a startup. Sometimes a useful tool that people appreciate is enough.

What's Next for AI-Tools?

I plan to keep maintaining it as long as people are still using it. I just added 15 new tools last week, and the list is now up to 125. I'm going to keep cleaning up the categories, make the JSON data more complete, and probably add some tags so people can find things more easily.

Would I ever build a proper web app for it? Maybe someday. If I get a lot more traffic and people actually ask for it, I might. But right now, the GitHub approach is working so well that I don't see a reason to fix what isn't broken.

If you want to check it out, fork it, add a tool, or just use it yourself, here's the link: https://github.com/kevinten10/AI-Tools

Your Turn

I'm curious - what do you think? Do you prefer the simple GitHub-only approach, or would you rather see this as a full web app with filtering and search? Have you ever built an aggregator site as a side project? How did it go for you?

Drop a comment below and let me know your thoughts. I read every comment, and I'd love to hear what you think about this approach.

And if you know an AI tool that should be in the list but isn't, feel free to open a PR! Contributions are always welcome.


Did you find this helpful? Found a bug in AI-Tools? Follow me on GitHub for more side projects and ramblings about building software.

Top comments (0)