SpotEx was built with busy people in mind
Providing a better and more efficient way to find consultants who specialise in solving business and people issues.
How it was done
React.js for the frontend, Node.js for the backend, with a GraphQL API, and Stripe subscription service.
With SEO, performance, and scalability being fundamental and critical requirements for SpotEx, we chose the React framework Next.js to build the frontend. The framework provided us with a unified tool for managing both client and server-side rendering, allowing us to implement server-side rendering when needed, while still taking advantage of the benefits of client side rendering. Furthermore, integrated tooling, such as file-system routing, and automatic code splitting lead to a great developer experience and improved productivity as a result.
For frontend data and state management we use Apollo Client for fetching our GraphQL queries, caching the data, and performing data mutations to the database.
The backend is comprised of an Application layer and a Data layer. The Application layer is a custom Express GraphQL Web Server, and it handles the application's server side logic. It handles authentication (using Json Web Tokens), defines our schema (type definitions and resolvers), transactional emails, Stripe subscription creation and credit card charging. The Data layer is built upon Prisma, replacing a traditional ORM and allowing us to connect our Application layer to our PostgreSQL database.
Stripe handles online payment processing, and subscription management.
For the SpotEx Administration backend, Prisma's fully featured databrowser allows administrators to easily visualize and explore the application's data, and provides database performance metrics.
We use Heroku to deploy, manage, and scale the frontend and backend applications, and the PostgreSQL database.