Delta Solar: online quotation platform
A thirteen-step configurator where a customer builds a solar system, sees the price as they go, and receives a numbered quotation by email and WhatsApp.
- Next.js
- TypeScript
- PostgreSQL
- Prisma
- Tailwind CSS
- Vercel

What the platform had to do
A solar quotation is a list of components that have to fit together and be added up correctly: panels, structure, inverter, protection, cabling, batteries and the rest. Delta wanted customers to build their own system online and get an itemised price, while the team stays in control of every price.
What we built
For the customer:
- Thirteen guided steps, from contact details and system requirements through system type (On-Grid, Hybrid or Off-Grid), panels, structure, inverter, electrical components, earthing, battery, accessories and transport, to the summary.
- A running summary that updates as choices are made, and only components that work together are offered.
- A numbered quotation, in the form DS-YYYY-NNNNNN, sent as a PDF by email, with a message on WhatsApp.
For Delta's team:
- An admin dashboard for products and photos, pricing rules (accessories, transport by city, earthing, net billing), the text for each system type, and every quotation issued, with the option to resend.
Decisions that matter
- The browser never sends a price. It sends the components chosen, and the server looks up every price and works out the total. A customer cannot change a quotation by editing a request.
- A quotation keeps the prices it was issued with. Changing a product later does not rewrite old quotations.
- A double click or a refresh does not create two quotations.
- Email, PDF and WhatsApp fail independently, so a problem with one never loses a quotation that was already saved.
- The pricing arithmetic has automated tests.
Result
The platform is live. Delta's team can change prices, products and content from the dashboard without a developer. We are not publishing quotation counts here.
Have a project in mind?
Tell us what you need. If it is not a fit, we will say so and point you to someone who is.
