Most classifieds platforms feel bloated. You open a site to find a couch or a plumber, and you’re hit with aggressive upsells, cluttered UI, and a search experience that feels like it was designed in 2012. We built Bazeta to fix that friction. It’s a free global marketplace for buying, selling, renting, finding jobs, and booking local services, but the real engineering challenge wasn’t the feature set—it was making the search feel instant and relevant across 100+ languages without slowing down the browser.
The core philosophy was simple: remove the noise. No heavy JavaScript frameworks that take three seconds to hydrate. No complex state management libraries for a site that is essentially a list of listings. We wanted a platform that loads fast, respects the user’s device capabilities, and handles the complexity of global localization without forcing users to switch tabs or lose context. Here is how we approached the architecture and why running certain logic locally made sense.
The Localization Problem in Classifieds
Localization is usually treated as a translation layer. You fetch a string, swap it out, and render. But classifieds are different. A job listing in Tokyo needs different filtering logic than a rental listing in Toronto. The categories themselves shift based on cultural context and local market norms.
Initially, we relied on server-side rendering for everything. It worked, but the latency was inconsistent. For a global audience, the distance between the server and the client varies wildly. We needed a way to make the interface feel responsive regardless of network conditions. That’s where we shifted some logic to the client side.
We implemented a lightweight, private on-device AI layer that runs locally in the browser. This isn’t a heavy machine learning model in the traditional sense. It’s a optimized set of heuristics and vector comparisons that help categorize listings and match user intent in real-time. When a user types "quiet apartment near park," the browser analyzes the intent locally, adjusts the filter weights instantly, and updates the view without waiting for a round-trip to the server. This makes the interaction feel immediate. It’s not about replacing the backend; it’s about removing the lag from the micro-interactions that define the user experience.
Keeping It Lightweight and Honest
There is a temptation in modern web development to over-engineer simple sites. We resisted that. Bazeta is built with minimal dependencies. The goal was to keep the initial load time under two seconds on a 3G connection. We achieved this by stripping out unnecessary polyfills and focusing on semantic HTML that works without JavaScript when possible, enhancing it progressively when needed.
The "free" aspect is crucial to the business model, but it also dictates the engineering constraints. We cannot afford heavy server costs for every request. By pushing some processing to the client—specifically the matching logic and language detection—we reduced server load while improving perceived performance. This approach aligns with a honest builder mindset: use the tools available to the user’s hardware rather than trying to brute-force everything from a central server.
The site covers everything from real estate to freelance gigs. The challenge was keeping the taxonomy flexible enough to handle these diverse categories without creating a confusing UI. We used a flat hierarchy with smart defaults based on location and recent activity. If you’re looking for a plumber, you don’t want to see job boards. The local logic helps prioritize what matters to you right now, based on simple, transparent rules rather than opaque algorithmic black boxes.
Why Bother With a Global Classifieds Site?
You might ask why build another classifieds platform when giants like Craigslist or Facebook Marketplace exist. The answer is specificity and neutrality. Big platforms are often tied to social graphs or ad networks that compromise privacy and focus. Bazeta is neutral. It doesn’t care about your social circle. It cares about matching supply with demand efficiently.
We support over 100 languages, not just by translating strings, but by adapting the layout and filtering options to fit linguistic norms. Arabic reads right-to-left, Japanese needs vertical-friendly spacing, and Spanish benefits from different color contrasts. The site adapts automatically. This isn’t a gimmick; it’s a necessity for a global tool. If you’re in a rural area with limited bandwidth, the site still works because the heavy lifting is done efficiently on your device.
The result is a tool that feels personal without being intrusive. You come in, find what you need, and leave. There are no forced logins for basic browsing. No endless scrolling feeds. Just a clean, fast interface that respects your time and your data.
If you’re building a site today, how do you balance the need for smart, responsive features with the desire to keep things simple and fast? Do you lean on client-side processing to reduce server load, or do you keep everything on the backend for consistency?
Top comments (0)