There are two ways to use the internet.
The first way is to search for one exact answer, get it, close the tab, and move on with your life.
The second way is to click something interesting, then click another thing, then somehow end up looking at a website that lets you listen to radio stations around the world or watch a person point directly at your mouse cursor.
I like the second version of the internet.
So I built base31.org.
It is a hand-built directory of useful tools, playful websites, public APIs, web apps, AI tools, and small projects that are worth opening in a new tab.
Not because every link will change your life.
Mostly because the web is more fun when it surprises you.
The internet is not boring. Finding it is.
There are still thousands of great websites out there.
Tiny browser tools that solve one specific problem.
Personal projects that are better than most huge platforms.
Interactive experiments that clearly took someone way too long to make — in the best possible way.
Public APIs that make you immediately want to build something.
The issue is that a lot of these projects are hard to find unless someone sends you a link, you see them in a random post, or you fall into a very specific search-engine rabbit hole.
That is what base31 is for.
It is a place to browse things like:
- Useful browser tools
- Creative web experiments
- Free web apps
- Public APIs
- AI tools
- Small independent websites
- Tools built and hosted under the
base31.org umbrella
The directory is meant to be slower than an app store, stranger than a listicle, and more useful than a bookmark folder you will never organize.
It is curated, not scraped
I did not want this to be a page filled with links that were automatically collected, barely described, and possibly dead by next week.
Every site on base31 is meant to be opened, checked, described, categorized, and tagged by hand.
The directory tracks useful details too:
- When something was added
- When it was last reviewed
- Whether a listing has not been reviewed yet
- Tags and categories to make browsing easier
- A separate space for editor’s picks
- A clear distinction between editorial picks and sponsored links
That last part matters to me.
An editor’s pick should mean I actually think it is worth visiting. A sponsored link should be clearly labeled as sponsored. Those are different things, and the site treats them differently.
No mysterious “recommended” section that turns out to be an advertisement wearing a fake mustache.
There is a search bar, but “Surprise me” is important too
Search is useful when you know what you need.
Maybe you need an image tool. Maybe you are looking for a free API. Maybe you need a browser app that does not require an account before it lets you click one button.
base31 lets people search names, URLs, descriptions, categories, and tags. You can use searches like:
#utility
tag:no-key
#image compress
But I also added a Surprise me option.
Because sometimes the best way to use a directory is to admit you have no idea what you are looking for.
That is how you end up discovering something useful.
Or something completely unnecessary that you will send to three people anyway.
Both outcomes are valid.
The project did not stay “just a directory” for very long.
I started building small tools and giving them their own homes on subdomains.
Right now, base31 includes tools for things like:
- Compressing and resizing images in the browser
- Removing image backgrounds without uploading files
- Creating QR codes
- Generating passwords and passphrases
- Opening disposable email inboxes
- Testing iframes
- Exploring GitHub repositories
- Creating app screenshots
- Staying focused with a simple deep-work timer
- Finding domain ideas
- Playing a daily word game
Each tool can live on its own subdomain, while still being part of the larger base31 project.
imagecompressor.base31.org
backgroundremover.base31.org
githubexplorer.base31.org
screenshot.base31.org
I like that setup because every tool can stay focused.
Not every useful feature needs to be shoved into one giant dashboard with fifteen sidebars and a pop-up asking if you want to upgrade before you have even tried it.
Sometimes a tool should open, do its job, and get out of the way.
People can add their own sites
One feature I am especially excited about is community publishing.
Visitors can upload a small static site made with HTML, CSS, and JavaScript. The site can be hosted for free, shown in the directory, and discovered by other people browsing base31.
That means a project does not need to become a business to deserve a place online.
You can build a one-page experiment, a tiny game, a weird visual idea, a portfolio, or a simple tool, then actually let people see it.
The web needs more of that.
Not every project needs investors.
Not every project needs a five-year roadmap.
Not every project needs to “disrupt” anything.
Sometimes it just needs a URL.
How it is built
The main directory is built with Next.js and TypeScript.
The content is stored in editable JSON files, which makes it easier to maintain the directory without hard-coding every site into the interface. That data powers the categories, search, detail pages, editor’s picks, tags, and metadata.
The project also uses a Cloudflare Worker for shared features such as:
- View counters and basic statistics
- Votes
- Community site publishing
- Email and browser-notification subscriptions
- A public discussion area
The tools themselves can be plain HTML, CSS, and JavaScript projects served through their own base31 subdomains.
That has been one of my favorite parts of building it.
A project can be small and simple without needing a giant framework around it. If a static tool does one thing well, it can have its own small corner of the internet.