# Rajat Kapoor

> Rajat Kapoor is a product engineer and solopreneur in Bengaluru, India. He builds Typefully, and runs his own apps for Shopify merchants and Slack teams.

Hi! I am Rajat. A product engineer and solopreneur from Bengaluru, India. By day I build [Typefully](https://rajatkapoor.me/work/typefully); the rest of the time I ship small, delightful products for the web.

I've been at it since 2016, mostly in small teams at early-stage startups. I built [the editor behind 2M+ articles on Hashnode](https://rajatkapoor.me/work/hashnode), worked on [proposals that close deals at Qwilr](https://rajatkapoor.me/work/qwilr), and before all that, wrote [open source for Google Summer of Code](https://rajatkapoor.me/projects/sciruby).

On my own, I build things to scratch my own itch. Most stay experiments. A few catch on, like [a Slack app that tells the time in everyone's timezone](https://rajatkapoor.me/projects/timely) or [a weekend project that went #1 on Product Hunt](https://rajatkapoor.me/projects/mockly). Right now it's [a dating app for people who already have each other's number](https://rajatkapoor.me/projects/dono).

## Work

- [Typefully](https://rajatkapoor.me/work/typefully.md): Product Engineer · Remote · 2024 – present. The AI-powered, collaborative social media scheduler for X, LinkedIn, Bluesky, and Threads.
- [Hashnode](https://rajatkapoor.me/work/hashnode.md): Engineering Lead · Remote · 2022 – 2024. A blogging platform for developers with millions of monthly readers.
- [Qwilr](https://rajatkapoor.me/work/qwilr.md): Software Engineer · Remote · 2018 – 2021. Web-based proposals and quotes for sales teams.
- [SciSpace (earlier Typeset)](https://rajatkapoor.me/work/scispace.md): Software Engineer · Bengaluru · 2017 – 2018. An AI research and writing platform for researchers.
- [Eltropy](https://rajatkapoor.me/work/eltropy.md): Software Engineer · Bengaluru · 2016 – 2017. A sales enablement platform when I was there; today, an AI conversations platform for credit unions and community banks.
- [Sabre](https://rajatkapoor.me/work/sabre.md): Software Developer Intern · Bengaluru · 2015 – 2016. The technology behind global travel: booking and operations software for airlines, hotels and travel agencies.

## Projects

- [Shopify apps](https://rajatkapoor.me/projects/shopify-apps.md): Single-use-case Shopify apps that help merchants save time and sell more. (currently building, monetized)
- [Timely](https://rajatkapoor.me/projects/timely.md): A Slack app that converts timezones in your chat messages automatically. (currently building, monetized)
- [Dono](https://rajatkapoor.me/projects/dono.md): A dating app for people who already have each other's number. (currently building)
- [Svar](https://rajatkapoor.me/projects/svar.md): Private, on-device voice-to-text for macOS. (currently building)
- [TweetAssist](https://rajatkapoor.me/projects/tweetassist.md): A Chrome extension that writes posts and reply ideas for X with AI. (dead, monetized)
- [Mockly](https://rajatkapoor.me/projects/mockly.md): A launch experiment: could a weekend project get to #1 on Product Hunt? (monetized)
- [Let Them Kill](https://rajatkapoor.me/projects/let-them-kill.md): An endless Android game where enemies shoot each other while you dodge. (dead)
- [Range-IT](https://rajatkapoor.me/projects/range-it.md): A wearable's vision system, guiding visually impaired people indoors.
- [SciRuby](https://rajatkapoor.me/projects/sciruby.md): Google Summer of Code: scientific computing for Ruby.
- [SimpleCV](https://rajatkapoor.me/projects/simplecv.md): Google Summer of Code: an interactive renderer for SimpleCV.

## Public appearances

- [Building a Notion-like editor for the masses](https://www.youtube.com/watch?v=uCSN5D_BLnI), React India
- [Serverless webhook delivery with Step Functions](https://web.archive.org/web/20240919212346/https://blr.serverlessdays.io/), ServerlessDays Bengaluru 2024
- [Gen AI meets Open source](https://www.youtube.com/watch?v=7Z4W2Je-SoQ&t=8392s), thegeekconf 2024, Berlin (remote)
- [Leverage Hashnode's AI editor as a developer](https://youtu.be/uEL4tas64jA?t=4673), Hashnode Bootcamp, Fall 2023
- [Building a Markdown-based WYSIWYG editor](https://www.youtube.com/watch?v=K7C18AxEjVc), Podcast · The Commit Podcast

## Contact

- [X](https://x.com/rajatkapoor)
- [LinkedIn](https://www.linkedin.com/in/rajat100493)
- [GitHub](https://github.com/rajatkapoor)

---

## Work in detail

### Typefully

_Product Engineer · Remote · 2024 – present_

> The AI-powered, collaborative social media scheduler for X, LinkedIn, Bluesky, and Threads.

Stack: Python, Django, TypeScript, Next.js, React, TipTap, Celery, Redis, PostgreSQL, AWS, Claude Code, Codex

- Built Typefully's [public API, MCP server and webhooks](https://typefully.com/changelog/all-new-api-zapier-integration-mcp-and-126), which let people integrate and automate with Typefully. They serve about 30M API and 1.4M MCP requests a month, and also power our [Claude connector](https://typefully.com/changelog/typefully-claude-connector) and Zapier integration.
- Built team and collaboration features end to end, including [plan mode and the multi-account calendar for teams](https://typefully.com/changelog/plan-mode-calendar-for-teams), comments and reviews on drafts, [edit history tracking](https://typefully.com/changelog/draft-activity-130), [tagging teammates](https://typefully.com/changelog/mention-teammates-and-slack-notifications-136) and the [Slack integration](https://typefully.com/changelog/notify-slack-channels-on-publish-141).
- Worked on Typefully's AI features, like the [Writing Assistant](https://typefully.com/changelog/writing-assistant-133) that [works through feedback on drafts](https://typefully.com/changelog/writing-assistant-comments), [AI caption (alt text) generation for images](https://typefully.com/changelog/generate-image-descriptions-with-ai-124) and [custom instructions](https://typefully.com/changelog/custom-instructions-for-typefully-ai-106), which help people draft, rewrite and polish posts in their own voice.
- Decoupled the product from X (Twitter) and made it multi-platform, with a cross-platform editor for LinkedIn, Bluesky, Threads, Mastodon and Substack.
- Set up the serverless stacks for media processing and uploads as infrastructure as code with AWS CDK.

Link: https://typefully.com

HTML version: https://rajatkapoor.me/work/typefully

---

### Hashnode

_Engineering Lead · Remote · 2022 – 2024_

> A blogging platform for developers with millions of monthly readers.

Stack: TypeScript, Next.js, React, Node.js, GraphQL, Apollo GraphQL, Stellate, TipTap, AWS, SST

- Led the product engineering team of 7 engineers, building a blogging platform with 4M+ reads and 70k+ blogs published every month.
- Created [Neptune](https://townhall.hashnode.com/introducing-neptune-our-new-wysiwyg-blog-editor), Hashnode's WYSIWYG editor, used to write over 2M articles since its launch in November 2022. Built the whole extensible editor on [TipTap](https://tiptap.dev), with AI assistance, custom widgets, drag and drop, and Google Docs-style live collaborative editing.
- Initiated and led the development of [Hashnode Pro](https://hashnode.com/pro) (the premium offering), discussion feeds, ISR-based blog generation, serverless newsletter sending infrastructure (on AWS using CDK), the component library, legacy code migrations and more. Also worked on Hashnode's [public GraphQL APIs](https://apidocs.hashnode.com/) (Stellate, Apollo, SST), feed computation and scaling, product analytics, onboarding, and the docs product.
- Represented Hashnode at in-person and online community events, investor events and conferences.

Link: https://hashnode.com

HTML version: https://rajatkapoor.me/work/hashnode

---

### Qwilr

_Software Engineer · Remote · 2018 – 2021_

> Web-based proposals and quotes for sales teams.

Stack: TypeScript, MongoDB, Express, React, Node.js, Slate.js

- Worked on a MERN stack in TypeScript, building new features for the Qwilr editor (built on [Slate.js](https://www.slatejs.org)), Google Docs-style workspace management for teams at our enterprise customers, and the Kaleidoscope design system.
- Involved in all decision making, including interviewing for hiring and leading discussions on moving to better-suited technology, and attended retreats and meetings in Sydney to work with the remote devs, the onsite crew and the co-founders.

Link: https://qwilr.com

HTML version: https://rajatkapoor.me/work/qwilr

---

### SciSpace (earlier Typeset)

_Software Engineer · Bengaluru · 2017 – 2018_

> An AI research and writing platform for researchers.

Stack: Python, Django, Flask, Celery, React, Substance, WebSockets

- Contributed as a full-stack developer, building features for the research writing platform (built on Substance) and leading teams of 3–4.
- Developed product features end to end, including the architecture, backend, frontend, CI/CD and the infrastructure to support them.
- Projects included a reference management system, an authors and affiliations manager, analytics for the whole platform, and collaborative writing over websockets.

Link: https://scispace.com

HTML version: https://rajatkapoor.me/work/scispace

---

### Eltropy

_Software Engineer · Bengaluru · 2016 – 2017_

> A sales enablement platform when I was there; today, an AI conversations platform for credit unions and community banks.

Stack: Go, Groovy, Grails, Electron, AngularJS, AWS, DigitalOcean, Jenkins

- Worked in a team of 6 developers on a sales enablement platform in Go, Groovy and Grails.
- Created a Dropbox-like, cross-platform app for syncing Eltropy files, using Electron with AngularJS.
- Worked on deployments to AWS EC2 and DigitalOcean servers, deployment automation with Jenkins, website performance and security, and wrote core business logic across the frontend and backend.

Link: https://eltropy.com

HTML version: https://rajatkapoor.me/work/eltropy

---

### Sabre

_Software Developer Intern · Bengaluru · 2015 – 2016_

> The technology behind global travel: booking and operations software for airlines, hotels and travel agencies.

Stack: Python, Django

- Single-handedly developed a Django web app that ran tests on multiple VMs in parallel and intelligently analysed the logs, automatically identifying and grouping tests that failed for a similar cause.
- Saved 640 hours of work a month, and was adopted by Sabre in over 4 offices worldwide.

Link: https://sabre.com

HTML version: https://rajatkapoor.me/work/sabre

---

## Projects in detail

### Shopify apps

_17k+ installs · 5.7k+ active stores · Recurring revenue_

> Single-use-case Shopify apps that help merchants save time and sell more.

#### How these apps help Shopify store owners

- Faster product and listing management.
- More sales, by showing shoppers real stock levels, so they know when something they want is about to sell out.
- Better visibility in AI search, so assistants like ChatGPT and Perplexity can find and recommend a store's products.

#### How I got into Shopify apps

- In 2023 I went to an indie hacker retreat at [AltSpace](https://www.altspaced.com/) in Dharamshala, India, and met a lot of indie hackers doing really well with their Shopify app businesses.
- They pushed me to give it a try. Within two months, my first app was at $700 MRR. Since then, Shopify has had my attention, and I've launched more apps.
- I've never looked back. Now I'm the one pushing other indie hackers to try Shopify.

#### Are Shopify apps still worth building?

- The market is crowded, and Shopify is moving fast in AI. The features it builds into the platform kill apps every day.
- But there's still room to build great apps and make good revenue from them, if you play it smart.
- Choose your niche carefully, invest in App Store optimization, and focus on your merchants: their use case, and making them succeed.

HTML version: https://rajatkapoor.me/projects/shopify-apps

---

### Timely

_2.1k+ installs · 1.1k active Slack workspaces · Recurring revenue_

> A Slack app that converts timezones in your chat messages automatically.

#### How Timely helps distributed teams

- Every time mentioned in Slack shows up in each teammate's local time, even casual ones like "end of day" or "next Tuesday".
- Works in channels, threads and DMs, and only teammates in another timezone see the conversion.
- Used by teams at Salesforce (yes, the company that owns Slack needed a Slack app to tell the time), Globant, Vistaprint, HelloFresh, Warner Music Group, Carta, Indeed, Square, Zillow, Meltwater and PUBG Studios.

#### How Timely started

- I've worked remotely since joining [Qwilr](https://rajatkapoor.me/work/qwilr) in 2018, way before Covid made it cool, as the only one on the team outside Australia.
- The team always mentioned times in both their timezone and mine. I felt bad that they had to.
- So one weekend in August 2020, I built a Slack bot to do it for us, then launched it as a free app in the Slack App Directory.
- Beyond one Indie Hackers post and a couple of tweets, I never promoted it. Teams with the same problem found it on their own.

Link: https://timely.day

HTML version: https://rajatkapoor.me/projects/timely

---

### Dono

_iOS · Android · Experiment_

> A dating app for people who already have each other's number.

#### How Dono works

- Add the number of someone you like. They don't even need to be on Dono yet.
- If they add your number too, you both find out it's mutual. If they don't, they never learn it was you.
- Live on the web in India, with the iPhone and Android apps launching soon.

#### Why I'm building it

- I wanted to learn go-to-market for a B2C app, and Dono is my playground for it: running ads, working with influencers, short videos and UGC content on Instagram and TikTok, Reddit-based marketing, and getting the word out in colleges and schools.
- I see it as a product that can go viral in waves, and that can also grow if I put enough money into ads.

Link: https://trydono.app

HTML version: https://rajatkapoor.me/projects/dono

---

### Svar

_macOS · Local LLMs · Personal software_

> Private, on-device voice-to-text for macOS.

#### Why I built it

- I was using [Wispr Flow](https://wisprflow.ai), but transcription was slow, and I wanted things very specific to me, like pasting my last transcript into an input box that wasn't selected while I was dictating.
- So I built my own, in public, in [a thread on X](https://x.com/rajatkapoor/status/2009944937203462594).

#### What it is

- A native macOS app in SwiftUI, my first time with it.
- Fully offline, with a choice of local models for transcription and cleanup. I keep trying new ones; right now it's Parakeet Ultra for transcription and S1-mini by [Superwhisper](https://superwhisper.com) for cleanup.
- Uses macOS's accessibility and OCR APIs to read what's on screen, so names and terms come out right.
- Keeps my recordings and transcripts for fine-tuning, and as evals to test new models when I add them.
- It will most likely never launch. It's a personal tool I use every day.

Link: https://x.com/rajatkapoor/status/2009944937203462594

HTML version: https://rajatkapoor.me/projects/svar

---

### TweetAssist

_Killed by me · Monetized_

> A Chrome extension that writes posts and reply ideas for X with AI.

- One of the first AI tools for writing posts and replies on X.
- As it grew, I could see it adding to the flood of AI-written replies on X, which wasn't the kind of thing I wanted to build.
- So I shut it down then and there, and refunded every user.

HTML version: https://rajatkapoor.me/projects/tweetassist

---

### Mockly

_#1 Product of the Day · Monetized_

> A launch experiment: could a weekend project get to #1 on Product Hunt?

#### The experiment

- In 2021, info products were everywhere, and so were the 3D ebook mockups people used to sell them on Gumroad.
- Mockly made those mockups in a few clicks. I built it over a weekend or two, and it was a very simple product. That was the point.
- The real question was whether something this simple could get to #1 on Product Hunt if I followed a proper launch system.

#### How it went

- It reached #1 soon after launch and stayed there until the end of the day.
- In the first week: 530 upvotes, 103 comments (a lot of them me replying) and 27 sales. A few people even asked me to raise the price.
- Plenty of info product creators found it genuinely useful, which never would have happened if I hadn't launched it.

#### What I learned

- People are extremely helpful. You just have to ask kindly.
- Something that seems small or simple to you can be really valuable to someone else.
- So build small things, and launch them. You'll never know unless people see them.

Link: https://mockly.xyz

HTML version: https://rajatkapoor.me/projects/mockly

---

### Let Them Kill

_Android · Unity_

> An endless Android game where enemies shoot each other while you dodge.

#### Why I made it

- I wanted to give Android apps a shot, and I'd watched far too many Unity game development videos not to try it myself.
- [Unity](https://unity.com) games could be written in C# back then, so I picked that. I used to fiddle around with C# in college to build Windows apps, so it was a fun experiment and a nice refresher too.

#### What happened

- I launched it on the Google Play Store and experimented with showing ads during gameplay. Over its whole life, those ads made less than a dollar.
- It was eventually delisted: I stopped maintaining it, and it needed an Android version upgrade and had review concerns I never addressed.

HTML version: https://rajatkapoor.me/projects/let-them-kill

---

### Range-IT

_TU Dresden · Human computer interface · Point Cloud Library_

> A wearable's vision system, guiding visually impaired people indoors.

- Worked on the vision system for Range-IT at the Human-Computer Interaction Lab, TU Dresden: a standalone, wearable assistive device that processes stereo data in real time to help visually impaired people get around indoor environments.
- Captured data with a 3D time-of-flight camera, filtered it with SoftKinetic's proprietary APIs, and analysed it in C++ with the [Point Cloud Library](https://pointclouds.org) to detect stairs, walls and doors up to 7 metres away.

Link: https://tu-dresden.de/ing/informatik/ai/mci/forschung/forschungsgebiete/range-it?set_language=en

HTML version: https://rajatkapoor.me/projects/range-it

---

### SciRuby

_GSoC 2014 · Open source_

> Google Summer of Code: scientific computing for Ruby.

- Worked on SciRuby's integration, minimization and matrix libraries in Ruby and C++ for Google Summer of Code 2014, adding features and support for the [GNU Scientific Library](https://www.gnu.org/software/gsl/) for faster computation.
- Grew the Integration gem to thirteen quadrature algorithms, including Gauss–Kronrod, Simpson's three-eighths rule, Milne's method and Boole's rule.
- Added one-dimensional optimizers to the Minimization gem, like Newton–Raphson, golden section search and Brent's method, most of which can use the GNU Scientific Library to run faster.
- The work was featured in [Google's Summer of Code wrap-up for SciRuby](https://opensource.googleblog.com/2015/01/google-summer-of-code-wrap-up-sciruby.html).

Link: http://sciruby.com/blog/2014/06/04/introduction-to-the-minimization-and-integration-project/

HTML version: https://rajatkapoor.me/projects/sciruby

---

### SimpleCV

_GSoC 2013 · Open source_

> Google Summer of Code: an interactive renderer for SimpleCV.

- Built a new interactive rendering system for SimpleCV for Google Summer of Code 2013 ([Revisiting the Rendering System](https://web.archive.org/web/20250128195153/https://www.google-melange.com/archive/gsoc/2013/orgs/simplecv/projects/rajatkapoor.html)), making it independent of the obsolete PyGame library.
- Developed it with PyGTK and Cairo, along with a web counterpart for IPython Notebooks using JavaScript and Processing.js.
- Before the summer, contributed image-processing features to SimpleCV: image normalization, Prewitt edge detection, a channel mixer, motion blur, and running averages and peak finding for line scans.

Link: https://web.archive.org/web/20250128195153/https://www.google-melange.com/archive/gsoc/2013/orgs/simplecv/projects/rajatkapoor.html

HTML version: https://rajatkapoor.me/projects/simplecv
