Skip to content
shravanmeena@console : ~/

available for work

Shravan Meena

I take products from an empty repo to paying users.

Four years ago I was writing features. Now I own the whole line — the schema, the payment webhook, the app on the Play Store, the sitemap Google reads, and the revenue it moves.

I run DevPunya’s platform, took Pothi from an empty repo to a paying storefront, and I’m building Chhapa now. Not a contractor waiting for tickets — someone who decides what gets built and then builds it.

shipping since
2021
in production
4 products
surfaces
web · ios · android
based
Jaipur · IST
zsh — shravanmeena@console — try it, it actually works
shravanmeena@console : welcome
type `help` for commands, `ls ventures` for the good stuff.
quick:
02

~/ventures

# What I build and run. Ordered by weight, not by date — the newest thing here is not the smallest.

DevPunya

LIVE

Devotional commerce, at scale

2024 → · Full-stack · product & platform

Book a puja or chadhawa at a real temple, then watch the video of it actually happening. Web, Android, iOS and the whole back office behind it.

// the hard part  A 51-module Node monolith carrying orders, payments, WhatsApp delivery and video fulfilment — plus AI agents that read a devotee’s wish, turn it into a marketing profile, and pick what to offer them next.

  • React SPA + React Native app + admin console on one Express/Postgres core
  • Razorpay, Interakt/WhatsApp delivery, S3 video pipeline, ECS on AWS
  • Agentic layer: wish → profile, next-offering picker, AOV band-fitting upsell
  • 109 SEO articles with a derived sitemap, canonicals and schema
NodeExpressReactReact NativePostgresMongoDBRedisAWS ECSBedrockRazorpay

Pothi

LIVE

Computed Vedic reports, sold two ways

2025 → · 0 → 1 · architecture, engine, storefront

पोथी — the bound manuscript a jyotishi hands across the table, digitised. Consumers buy one report; astrologers buy credits and generate the same books under their own name, photo and shop.

// the hard part  Every fact is computed from an astronomical ephemeris on the Lahiri ayanamsha — nothing about a chart is ever guessed. A model only writes the explanation around those facts, and it is fact-checked before printing: an expansion naming a sign its chapter never mentioned is discarded, not shown.

  • Seven report types — kundli runs 64 chapters, dosh 28, varshaphal 40
  • Three typesettings × seven palettes as independent axes, rendered to PDF
  • 480 chart invariants across 8 charts in CI, plus a bilingual prose audit
  • Own Postgres, own Razorpay account, own domain — zero runtime coupling
Node 24ExpressESMPostgresSequelizeReactTypeScriptPDFKitS3

Chhapa

BUILDING

Grounded publishing for teams with no content person

2025 → · 0 → 1 · in progress

छापा — the mark a press leaves on a page. A multi-tenant platform that reads what a company actually sells, writes only what that data supports, and publishes it as pages that are technically correct by construction.

// the hard part  Every AI blog tool writes from the model’s head, so the output contradicts what the customer sells and they cancel in month three. Chhapa cuts any claim it cannot trace back to the customer’s own corpus, and derives the publishing layer — sitemap, canonicals, schema, internal links — instead of asking anyone to author it.

  • Retrieval over the tenant’s own corpus with pgvector; unsupported claims are dropped
  • Static generation to S3 + CDN — no third party ever sits in the crawler’s path
  • Pothi and DevPunya onboard as ordinary tenants through the public path
Node 24ExpressPostgrespgvectorBedrockViteReact 19TypeScript

VN Templates

LIVE

Pothi’s digital-goods storefront

2026 → · 0 → 1 · page, checkout, ad funnel

500+ VN video templates sold as one digital item — ₹49 once, lifetime access, no watermark, free samples before you buy. A cold Instagram click lands here, reads it once, and either buys or leaves.

// the hard part  The page used to be a route inside the astrology app, so an ad click downloaded 1.1 MB of JavaScript — a storefront, 28 learn articles and a chart-drawing admin panel — before one pixel of a video-templates page could paint. Of the first nine clicks Meta sent, four became a landing-page view. The split now happens at the root, before either app is imported, and neither product carries the other’s weight.

  • Root-level bundle split by host — the VN buyer never loads the astrology app
  • Razorpay prices the order from the database, so “is this actually paid” has an answer
  • A blank field renders the gap rather than inventing copy — an untrue claim in an ad is an offence under the Consumer Protection Act 2019
  • PageSpeed 98 on mobile: hydrate rather than re-render, self-hosted fonts, no <video> until tapped
ReactTypeScriptViteNodePostgresRazorpayMeta CAPI

Jyotish Engine

LIVE

We stopped renting the maths

2025 · Author

An in-house astrology compute engine that replaced AstroNext, the paid third-party API DevPunya used to call for every dosh and kundli report.

// the hard part  The vendor path was: send a birth chart out, get a PDF back, then have a model read the PDF to recover structured data. The in-house engine computes the doshas deterministically and renders the PDF itself — one env flag switches between them, so it could ship behind a rollback the whole way.

  • Ephemeris positions, Lahiri ayanamsha, divisional charts, dasha periods
  • Found a real bug the vendor hid: the D2 hora chart was computing the wrong thing
  • Classical tables locked down by tests so a refactor cannot quietly corrupt them
  • Every saved report stamps which engine produced it — no schema migration needed
NodeESMPDFKitPostgresVitest

Samvad

OPERATED fork

The WhatsApp desk behind the storefront

2025 → · Self-hosted & operated · open-source fork

संवाद — dialogue. A self-hosted WhatsApp CRM running DevPunya’s customer conversations: shared inbox on the official Business API, broadcasts, pipelines and no-code automations.

// the hard part  Not my code — this is a fork of the MIT-licensed wacrm project. What is mine is the deployment: Cloud Run in Seoul against Supabase Postgres, with WhatsApp credentials held in the database rather than the environment so a number can be rotated without a redeploy.

  • GCP Cloud Run + Supabase Cloud, migrations replayed against real Postgres in CI
  • Shared inbox, broadcasts with delivery tracking, visual automation builder
  • MCP server on top, so the CRM is drivable from Claude
Next.jsSupabasePostgresGCP Cloud RunDockerMCP
03

man shravan

# How I work, as a set of flags that are either set or not — the honest version of a values slide.

Name

shravan — takes a product from an empty repo to paying users

Synopsis

$ shravan [--own-the-line] [--grounded] [--measured] [--rollbackable] <problem>

Description

Most of what I do is decide what not to build. The rest is owning the whole line — schema, payment webhook, the app on the store, the sitemap Google reads — because a product that is handed between four people at four boundaries fails at the boundaries.

I write down the reasoning next to the code. Every repo here has a README that explains the trade, not the API, and the comments answer "why is it like this" rather than restating the line below.

Options

--grounded
A claim that cannot be traced back to the customer’s own data gets cut, not softened. Pothi discards a model’s sentence that names a sign its chapter never mentioned; Chhapa drops anything the tenant’s corpus does not support.
--no-silent-fallback
A missing value renders the gap. VN’s buy buttons disable themselves rather than guess a checkout URL — under the Consumer Protection Act an invented claim in an ad is an offence, and a fallback is how you invent one by accident.
--measured
Of the first nine clicks Meta sent to a landing page, four became a view. That number, not an opinion about bundle size, is what moved the code.
--rollbackable
The in-house astrology engine shipped behind one env flag next to the vendor it replaced. Anything that cannot be turned off in one move is not finished.
--own-the-line
I do not hand off at the API boundary. If the thing is slow, wrong or unindexed, it is mine wherever the cause turns out to live.
--boring-where-it-counts
Postgres, Express, one repo per product, no runtime coupling between them. The interesting decisions should be in the product, not in the deployment topology.

Exit status

0
shipped, measured, and someone paid for it
1
shipped and the number did not move — kept, rewritten, or killed
130
interrupted, because it was the wrong thing to build

See also

ventures(7) · stack.service(5) · contact(1)

04

systemctl status

# Not a word cloud. These are the units that have actually carried production traffic.

frontend.service

loaded active (running)
React 19React NativeNext.jsTypeScriptViteReduxTailwindHTML/CSS

backend.service

loaded active (running)
Node.jsExpressRESTSequelizePostgresMongoDBRedispgvector

ai.service

loaded active (running)
LLM pipelinesAgentic workflowsRAGLangChainBedrockMCPPrompt eval

infra.service

loaded active (running)
AWS ECSCodeBuildS3 + CloudFrontGCP Cloud RunDockernginx / CaddyCI/CD

growth.service

loaded active (running)
Technical SEOSchema + sitemapsCore Web VitalsMeta CAPIProduct analytics
05

git log --author=shravan

# Work history, newest first. The top one is still open.

  1. a4f1c02(HEAD → main)Aug 2024Present
    DevPunyaFull Stack Developer
    • Own the platform end to end: API, web, React Native app, admin, delivery.
    • Shipped the in-house astrology engine, the agentic upsell layer and the SEO surface.
  2. 7b93de5Apr 2023Jul 2024
    Symita Inc.Full Stack Developer
    • Built AI-facing product surfaces — generation, documentation and editor tooling.
  3. 1c07aa9May 2021Mar 2023
    Khelgully GamingFrontend Developer
    • Real-money gaming front ends and the first production React Native work.
06

~/writing

# Notes from the build. Mostly the things I could not find written down when I needed them.

07

~/archive

# Client and product work from before the current run. Kept because the craft still counts — collapsed because it is no longer the headline.

08

~/contact

# If you are building something and need someone who will own it rather than bill for it — this is the fastest way through.

# this page, as data

$ curl -s https://www.shravanmeena.com/whoami.json | jq -r '.ventures[].name'
DevPunya
Pothi
Chhapa
VN Templates
Jyotish Engine
Samvad
every venture, stack and link on this page — /whoami.json