Lunares — Modern Lighting e-commerce
A fast, SEO-optimised online store for modern lighting — 100,000+ indoor and outdoor lamps, fixtures and home décor, delivered across Europe.
Visit siteA lean software studio from Kraków, Poland. We build pragmatic web products and weave AI into them — shipped simply, tested thoroughly, and always ready to change.
Lean design stays ready for your next requirement — not just today's.
We (ab)test ideas as early as possible and let real data decide.
The border between your team and ours blends quickly. We teach as we build.
Simple means fast, reliable, and cheap to maintain.
We are a small team of senior software engineers. Our mission is to reach your goals in a simple, cost-effective way using modern technology. Working in an Agile, Lean way lets us pivot early and adapt as requirements change — while test-driven development keeps your application robust and a joy to maintain. Increasingly, that means designing AI into products thoughtfully, where it earns its place.
Products we build and run — we are our own best customers.
A fast, SEO-optimised online store for modern lighting — 100,000+ indoor and outdoor lamps, fixtures and home décor, delivered across Europe.
Visit siteA Polish platform to buy business and professional insurance entirely online — company & professional liability and property cover, quoted in minutes.
Visit siteNotes on software engineering, AI, and building products.
Agents are fun in a demo and humbling in production. Here are the guardrails that made ours reliable enough to trust.
Put the pieces together — the no-Redis Solid stack, Kamal, pgvector, and the hard-won disciplines of building with LLMs — and a coherent picture emerges: Rails is an outstanding host for AI-native applications, precisely because it lets a small team build and run both the app and its AI features. A synthesis of where the stack stands.
I've championed pgvector as the sensible default for vector search. After running it in production, here's what the introductory tutorials leave out: index choice and its trade-offs, the recall-versus-speed dial, keeping embeddings in sync, and the operational realities that only show up at scale.