Inspiration I started Atlas with a question: how can independent brands offer international customers a more accessible shopping experience without compromising the reliability of their commerce operations?
Online shopping can become frustrating when product discovery is limited by rigid filters, language barriers, or unclear availability. At the same time, a shopping experience is only trustworthy when prices, inventory, reservations, and payments are handled reliably.
I wanted to build more than a storefront. I wanted to explore how AI could make product discovery more natural while keeping important commerce decisions deterministic and verifiable. What I built Atlas is a full-stack commerce prototype built around a React and TypeScript frontend and a Python FastAPI backend.
Customers can explore a multilingual product catalogue, search and filter products, select variants, view shipping estimates, add products to a shopping bag, and reserve inventory. The backend manages inventory and reservations transactionally, so stock availability is not decided by the frontend.
The checkout flow integrates the PayPal Developer Platform through the PayPal Orders v2 REST API in Sandbox mode. Atlas creates PayPal orders on the server and captures payments through the backend. It verifies the resulting payment against the expected order, amount, currency, and configured merchant before marking an order as paid and committing the inventory reservation. A browser redirect alone is never treated as proof of payment. How AI is used Atlas integrates Google Gemini for natural-language product discovery. A shopper can describe what they want in ordinary language instead of having to know the exact catalogue filters.
Gemini extracts structured shopping intent, such as product category, size, colour, and relevant search terms. The backend validates that output and performs the actual catalogue search. Gemini does not decide prices, stock availability, order totals, or payment outcomes. Those remain under deterministic backend control.
If the model response is invalid or unavailable, Atlas falls back to deterministic keyword-based discovery rather than allowing an AI failure to interrupt shopping. How I built it and what I learned I developed Atlas as a solo project using React, TypeScript, FastAPI, SQLAlchemy, PostgreSQL, and a test-driven workflow. I used database migrations, automated tests, and CI checks to validate behaviour across SQLite and PostgreSQL.
One of the biggest lessons was that a commerce application needs stronger guarantees than a typical demonstration UI. I had to think carefully about concurrent stock reservations, idempotent operations, order snapshots, payment retries, and the possibility that a payment provider's response could be delayed or interrupted.
Integrating PayPal Sandbox also taught me to distinguish buyer approval from a completed payment. The backend must independently capture and verify the payment before changing an order's state.
Another important design lesson was deciding where AI should and should not have authority. Gemini can help interpret a shopper's request, but it should not be trusted to invent products, prices, availability, or payment status.
Atlas is a working prototype. Its catalogue and shipping rates are demonstration data, and all PayPal transactions in this project use the Sandbox environment rather than real-money payments.
Built With
- ai-powered-search
- alembic
- docker
- fastapi
- github-actions
- google-gemini-api
- inventory-management
- multilingual-commerce
- neon
- paypal-rest-api
- paypal-sandbox
- postgresql
- python
- react
- render
- rest-apis
- sqlalchemy
- sqlite
- typescript
- vite