# The stack

## AI

- [OpenAI API](https://venuspaneliya.com/stack/openai-api/): I use the OpenAI API where a product needs output it can trust. In the AI form builder, a constrained prompt returns a strict JSON schema, and the server validates it before anything renders.
- [Claude API](https://venuspaneliya.com/stack/claude-api/): I build with the Claude API for reading and writing tasks inside SaaS products, behind the same guardrails I use for every model: server-side calls, validation, rate limits and token caps.
- [RAG](https://venuspaneliya.com/stack/rag/): Retrieval-augmented generation lets a model answer from a customer’s own data. I keep retrieval tenant-aware, so one customer’s documents never reach another customer’s answers.
- [Agents](https://venuspaneliya.com/stack/agents/): I build agents as small, observable steps with clear limits on what each tool may do, so every run can be traced, capped and stopped.
- [MCP](https://venuspaneliya.com/stack/mcp/): Model Context Protocol servers give an AI client a typed, permissioned way into a product’s data and actions. I build them on the product’s own API, with the same access rules.
- [Token and cost controls](https://venuspaneliya.com/stack/token-and-cost-controls/): AI features get expensive quietly. I put server-side token caps, caching and per-tenant budgets in place so AI cost stays flat as usage grows, as in the AI form builder.

## Prototype tools

- [Cursor](https://venuspaneliya.com/stack/cursor/): I use Cursor every day. I also take over apps that were mostly written in it, and the audit starts with what it tends to skip: tenancy, rate limits and error handling.
- [v0](https://venuspaneliya.com/stack/v0/): v0 produces good-looking Next.js screens fast. I connect those screens to a real backend with auth, data isolation and payments.
- [Bolt](https://venuspaneliya.com/stack/bolt/): Bolt gets a full-stack prototype running in minutes. I add what a paying customer needs: security, multi-tenancy and payments that reconcile.
- [Lovable](https://venuspaneliya.com/stack/lovable/): Lovable apps usually sit on Supabase. Before real users arrive I add row-level security, server-side validation and separate environments.
- [ChatGPT code](https://venuspaneliya.com/stack/chatgpt-code/): Code pasted from ChatGPT often works on its own and breaks in context. Taking over code an AI tool wrote is most of my work: I read it, audit it and keep what works.

## Frontend

- [React](https://venuspaneliya.com/stack/react/): React is the front end of almost every system on this site: the creator platform, the immigration portal, the quote engine, the video dashboard and the fantasy sports platform.
- [Next.js](https://venuspaneliya.com/stack/nextjs/): I use Next.js for SaaS products that need server rendering, API routes and good SEO. The AI form builder runs on it.
- [JavaScript](https://venuspaneliya.com/stack/javascript/): JavaScript is what every project here runs on, in the browser and on Node.js, and where I debug most production issues.
- [TypeScript](https://venuspaneliya.com/stack/typescript/): I write new code in TypeScript and add types to inherited JavaScript as I go, starting with the parts that handle money and user data.
- [HTML and CSS](https://venuspaneliya.com/stack/html-css/): Semantic HTML and plain CSS come first: responsive pages that work on desktop, tablet and phone, and forms anyone can use with a keyboard. This site is hand-built in both.
- [Tailwind CSS](https://venuspaneliya.com/stack/tailwind/): Tailwind for fast, consistent UI work, mapped to a design system’s tokens rather than one-off values.

## Backend and APIs

- [Node.js](https://venuspaneliya.com/stack/nodejs/): Node.js runs my backends: the creator platform’s payout webhooks, the quote engine’s APIs, the video pipeline’s Lambda functions and the fantasy platform’s real-time server.
- [Express](https://venuspaneliya.com/stack/express/): Express when I want a small, explicit server: routing, validation, auth middleware and error handling I can read in one sitting.
- [REST APIs](https://venuspaneliya.com/stack/rest-apis/): I design and consume REST APIs and integrate third-party services: payment gateways, an insurer’s quote API, review platforms and email. The quote engine is REST from front to back.
- [GraphQL](https://venuspaneliya.com/stack/graphql/): GraphQL where a client needs flexible reads across many related objects, with resolvers that respect the same access rules as the REST endpoints.
- [WebSockets and Socket.io](https://venuspaneliya.com/stack/websockets/): Real-time features with Socket.io: live scores pushed to thousands of fantasy sports users at once, live chat and live job status.
- [Authentication and access control](https://venuspaneliya.com/stack/auth/): Sign-in with email, Google and OAuth, JWT sessions, and role-based access enforced on the server. The immigration portal has client, staff and admin roles; the creator platform has 20+ community tiers.
- [Strapi](https://venuspaneliya.com/stack/strapi/): Strapi as a headless CMS when a team needs to edit content without a deploy: content models, roles and an API the front end can rely on.

## Data

- [PostgreSQL](https://venuspaneliya.com/stack/postgresql/): PostgreSQL is my default for SaaS data. The AI form builder, the immigration portal and the quote engine run on it, with indexes and row-level security doing real work.
- [MySQL](https://venuspaneliya.com/stack/mysql/): MySQL for relational data in existing production systems: writing and tuning SQL, finding the slow query and keeping schemas tidy.
- [MongoDB](https://venuspaneliya.com/stack/mongodb/): MongoDB for document data, including the creator platform’s payout ledger and referral system.
- [DynamoDB](https://venuspaneliya.com/stack/dynamodb/): DynamoDB for high-throughput key-value data next to Lambda functions, with access patterns designed before the table.
- [Supabase](https://venuspaneliya.com/stack/supabase/): Supabase gives me Postgres, auth and storage in one place. In the AI form builder it holds every workspace’s forms, submissions and branding, isolated with row-level security.
- [Redis](https://venuspaneliya.com/stack/redis/): Redis was the quote engine’s caching layer for rate tables and partial results, part of the work that took quotes from 10+ minutes to under 2.
- [Firebase](https://venuspaneliya.com/stack/firebase/): Firebase for auth, real-time data and push notifications in mobile and web apps.
- [Row-level security](https://venuspaneliya.com/stack/row-level-security/): A tenant_id column only filters; one missed WHERE clause leaks data. Row-level security makes the database enforce isolation, which is how the AI form builder keeps workspaces apart.

## Payments

- [Stripe Connect](https://venuspaneliya.com/stack/stripe-connect/): Stripe Connect runs the creator platform’s payouts: $10K+ a month, automated. Payout state lives in the platform’s own database, with Stripe as the rail, not the record.
- [PayPal](https://venuspaneliya.com/stack/paypal/): PayPal was one of two payment rails on the fantasy sports platform, reconciled against Authorize.net, for real-money deposits and withdrawals.
- [Authorize.net](https://venuspaneliya.com/stack/authorize-net/): Authorize.net was the second payment rail on the fantasy sports platform, behind atomic wallet operations so balances never drifted under load.

## Cloud and DevOps

- [AWS](https://venuspaneliya.com/stack/aws/): Most of my production work runs on AWS, from serverless pipelines to app hosting. I hold the AWS Academy Cloud Foundations certification.
- [AWS Lambda](https://venuspaneliya.com/stack/aws-lambda/): Lambda functions do the transcoding and assembly in the video pipeline: no servers to manage, scaling with traffic for 1,000+ users.
- [SQS](https://venuspaneliya.com/stack/sqs/): SQS is the durable job queue between upload and processing in the video pipeline, so a failed job is retried, not lost.
- [S3](https://venuspaneliya.com/stack/s3/): S3 stores uploads and output in the video pipeline, and each upload triggers the next step.
- [Google Cloud](https://venuspaneliya.com/stack/gcp/): I support applications deployed across AWS and Google Cloud, and completed Google Cloud’s Integrate with Machine Learning APIs course.
- [Docker](https://venuspaneliya.com/stack/docker/): Docker keeps development, staging and production the same, so the bug you fix locally is the bug in production.
- [CI/CD](https://venuspaneliya.com/stack/ci-cd/): Every project ships through a pipeline: tests, builds and deploys on each merge, with GitHub Actions.
- [Git](https://venuspaneliya.com/stack/git/): Git and code review are how I work in an existing codebase: small branches, readable commits and a decision written down in every pull request.
- [Heroku](https://venuspaneliya.com/stack/heroku/): Heroku for simple hosting of Node.js apps and early-stage products that need to ship before they need their own infrastructure.
- [Monitoring and debugging](https://venuspaneliya.com/stack/monitoring/): I measure before I optimise. The quote engine fix started with profiling that found repeated lookups blocking every quote.

## Mobile and BI

- [React Native](https://venuspaneliya.com/stack/react-native/): React Native for iOS and Android apps that share logic and API clients with the React web app.
- [Capacitor](https://venuspaneliya.com/stack/capacitor/): I shipped a cross-platform mobile app with Capacitor at QuirkBees, wrapping a web app for iOS and Android.
- [iOS](https://venuspaneliya.com/stack/ios/): I support and maintain iOS apps built with React Native and Capacitor, and troubleshoot where the app meets the API.
- [Android](https://venuspaneliya.com/stack/android/): I support and maintain Android apps built with React Native and Capacitor, from builds to Play Store releases.
- [Push notifications](https://venuspaneliya.com/stack/push-notifications/): Push and in-app notifications for status changes people care about, like a case update or a new message.
- [Location and maps](https://venuspaneliya.com/stack/location/): Location capture and address fields where a workflow needs them. The AI form builder can record where a form was submitted.
- [Power BI](https://venuspaneliya.com/stack/power-bi/): I am learning Power BI on live BI projects, building reports on top of the data the products already collect.
