# DevShipIt: full text of every page > Generated from the same source as the HTML pages. Canonical URLs are given under each page. # DevShipIt: Dev Agarwalla, full-stack developer in Bengaluru > DevShipIt is Dev Agarwalla, a freelance full-stack developer in Bengaluru: websites and web apps for clients, JantaHR HR and payroll software, and case studies. ## I build products and ship them. I'm Dev Agarwalla, a full-stack developer in Bangalore. DevShipIt is where I ship products and freelance work, and most of it is live and open to look at. I'm open to full-time software engineer and full-stack developer roles in Bangalore, and I take freelance web development projects. - BCA (Data Analytics), Kristu Jayanti (Deemed to be University), Bangalore - Looking for: Entry-level software engineer or full-stack developer roles in Bangalore, and freelance web development projects - Built with: TypeScript, React, Next.js, Node.js, NestJS, Express, PostgreSQL, MongoDB, Redis, Supabase, Docker, Socket.IO I learn fastest by building something people can use, so most of my work is shipped, deployed and open to look at. ## Products ### JantaHR (Live) HR and payroll software for Indian companies: PF, ESI, professional tax, LWF and TDS every month, filing-ready files and a compliance calendar. Open source under AGPL-3.0. [Open](https://jantahr.devshipit.com) | [Case study](https://devshipit.com/work/jantahr/) | [Source](https://github.com/devag7/jantahr) ### RentWise (Live) A rental platform for Bangalore with automated listing collection, real-time updates, map search and role-based access. [Case study](https://devshipit.com/work/rentwise/) | [Source](https://github.com/devag7/rentwise) ### linkedin-mcp (On npm) A 36-tool LinkedIn integration for AI assistants, with caching, rate limiting and retries. [npm package](https://www.npmjs.com/package/linkedin-mcp-tools) | [Case study](https://devshipit.com/work/linkedin-mcp/) ### ISP Evidence (In testing) An Android app that logs connection drops, latency and jitter, then exports a PDF report you can attach to an ISP complaint. [Case study](https://devshipit.com/work/isp-evidence/) ## JantaHR pricing - Free for up to 20 employees - Standard from ₹49 per employee a month, Professional from ₹99 (billed yearly; minimum 10 seats) - 14-day free trial, no card needed; cancel any time - Full price list: https://devshipit.com/pricing/ ## What I can build for you I build MERN-stack sites for property agents and agencies in Bangalore that list properties, capture enquiries and are easy to keep up to date. - **Real estate websites**: Listing and search pages, and landing sites for property agents and agencies. - **Full-stack web apps**: Next.js, Node and PostgreSQL apps with real-time updates and map search, like RentWise. - **SaaS products**: Subscription products with plans, roles and compliance, like JantaHR. - **Android apps and AI tools**: Background apps that export reports, and MCP servers that connect AI assistants to your tools. How a project works, and more answers: https://devshipit.com/services/ ## Proof in the work, not the words. - **4**: Products built and shipped - **36**: Tools in the linkedin-mcp server - **5**: Indian payroll compliances JantaHR calculates: PF, ESI, PT, LWF and TDS - **14**: Days to try JantaHR free, no card needed ## Questions ### What is DevShipIt, and how is it related to JantaHR? DevShipIt is the trading name of Dev Agarwalla, a full-stack developer in Bengaluru, and this is its website. JantaHR is HR and payroll software for Indian companies that DevShipIt builds and sells at jantahr.devshipit.com. [JantaHR case study](https://devshipit.com/work/jantahr/). ### How much does a website or web app cost? Every project is priced by a written quote with the scope, price and delivery dates, agreed before any work starts, and you pay only the amounts in that quote. Write to hello@devshipit.com with what you need, when you need it and a rough budget. [See pricing](https://devshipit.com/pricing/). ### Who owns the code and the website? You do. For freelance work, ownership of what is built passes to you once it is paid for, unless the quote says otherwise. [Read the terms](https://devshipit.com/terms/). ### How long does a project take? It depends on the scope. The delivery dates are written into your quote before any work starts, so you know them up front. ### Is Dev Agarwalla open to full-time roles? Yes. Dev is looking for an entry-level software engineer or full-stack developer role in Bangalore. Write to hello@devshipit.com. [About Dev](https://devshipit.com/about/). ## Contact - Hiring and freelance projects: hello@devshipit.com - JantaHR support, billing and legal: jantahr@devshipit.com - Contact page: https://devshipit.com/contact/ - GitHub: https://github.com/devag7 - LinkedIn: https://www.linkedin.com/in/devagarwalla --- Canonical page: https://devshipit.com/ Site guide for agents: https://devshipit.com/llms.txt Developers and agents: https://devshipit.com/developers/ API: https://devshipit.com/api/v1 (OpenAPI: https://devshipit.com/openapi.json) # Work and case studies > Products Dev Agarwalla has built and shipped as DevShipIt, each with a case study: JantaHR, RentWise, linkedin-mcp and ISP Evidence, with their stack, status and links. Four products I've built and shipped, each with a case study: what it does, how it is built and where to see it. ## JantaHR (Live) HR and payroll software for Indian companies: PF, ESI, professional tax, LWF and TDS every month, filing-ready files and a compliance calendar. Open source under AGPL-3.0. Stack: NestJS, Prisma, PostgreSQL, Next.js, Supabase, Vercel, Razorpay, Expo [JantaHR case study](https://devshipit.com/work/jantahr/) | [Live product or package](https://jantahr.devshipit.com) | [Source](https://github.com/devag7/jantahr) ## RentWise (Live) A rental platform for Bangalore with automated listing collection, real-time updates, map search and role-based access. Stack: Next.js, TypeScript, PostgreSQL, Redis, Socket.io, Docker, Playwright, Mapbox GL JS, Supabase [RentWise case study](https://devshipit.com/work/rentwise/) | [Source](https://github.com/devag7/rentwise) ## linkedin-mcp (On npm) A 36-tool LinkedIn integration for AI assistants, with caching, rate limiting and retries. Stack: Node.js, MCP [linkedin-mcp case study](https://devshipit.com/work/linkedin-mcp/) | [Live product or package](https://www.npmjs.com/package/linkedin-mcp-tools) ## ISP Evidence (In testing) An Android app that logs connection drops, latency and jitter, then exports a PDF report you can attach to an ISP complaint. Stack: Android [ISP Evidence case study](https://devshipit.com/work/isp-evidence/) --- Canonical page: https://devshipit.com/work/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # Freelance web development in Bengaluru > Websites and web apps for property agents, agencies and small businesses in Bengaluru, built by Dev Agarwalla at DevShipIt. Priced by a written quote before work starts. I build websites and web apps for property agents, agencies and small businesses: sites that list properties, capture enquiries and are easy to keep up to date. Every project is priced by a written quote before work starts. ## What I can build for you - **Real estate websites**: Listing and search pages, enquiry capture and landing sites for property agents and agencies, easy to keep up to date. Example: https://devshipit.com/work/rentwise/ - **Full-stack web apps**: Next.js, Node and PostgreSQL apps with real-time updates and map search, like RentWise. Example: https://devshipit.com/work/rentwise/ - **SaaS products**: Subscription products with plans, roles and compliance, like JantaHR. Example: https://devshipit.com/work/jantahr/ - **Android apps and AI tools**: Background apps that export reports, and MCP servers that connect AI assistants to your tools. Example: https://devshipit.com/work/linkedin-mcp/ ## How a project works 1. **Tell me what you need**: Email a few lines: what it is, when you need it and a rough budget. I reply within 2 working days. 2. **Get a written quote**: Scope, price and delivery dates, agreed before any work starts. You pay only the amounts in the quote. 3. **I build it**: I design and build what the quote describes, from the database to the interface. 4. **Delivered online**: A live website, a code repository or files, on the dates in your quote. Once paid for, it is yours. ## Questions ### How much does a website or web app cost? Every project is priced by a written quote with the scope, price and delivery dates, agreed before any work starts, and you pay only the amounts in that quote. Write to hello@devshipit.com with what you need, when you need it and a rough budget. [See pricing](https://devshipit.com/pricing/). ### How long does a project take? It depends on the scope. The delivery dates are written into your quote before any work starts, so you know them up front. ### Who owns the code and the website? You do. For freelance work, ownership of what is built passes to you once it is paid for, unless the quote says otherwise. [Read the terms](https://devshipit.com/terms/). ### How is the work delivered? Online: a live website, a code repository or files, on the dates in your quote. Nothing is shipped physically. [Shipping and delivery policy](https://devshipit.com/shipping/). ### What if I need to cancel a project? Cancellation and refund terms for a project, including any advance, are written into the quote you accept before work starts. [Cancellation and refund policy](https://devshipit.com/refunds/). ### What do you build with? TypeScript, React, Next.js, Node.js, NestJS, Express, PostgreSQL, MongoDB, Redis, Supabase, Docker and Socket.IO. Websites for property agents are usually built on the MERN stack. ### How quickly do you reply? Within 2 working days, usually sooner. Email is the fastest way to reach me. [Contact](https://devshipit.com/contact/). Start a project: email hello@devshipit.com or use https://devshipit.com/contact/. Prices: https://devshipit.com/pricing/ --- Canonical page: https://devshipit.com/services/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # About Dev Agarwalla > Dev Agarwalla is a full-stack developer in Bengaluru who ships software as DevShipIt: his education, stack, products, and the roles and freelance work he is open to. I'm Dev Agarwalla, a full-stack developer in Bengaluru. DevShipIt is the name I build, ship and sell software under. [Contact](https://devshipit.com/contact/) [See work](https://devshipit.com/work/) ## What I do I build web products end to end, from the database to the interface, and I ship them. I learn fastest by building something people can use, so most of my work is deployed and open to look at: [JantaHR](https://devshipit.com/work/jantahr/), HR and payroll software for Indian companies; [RentWise](https://devshipit.com/work/rentwise/), a rental platform for Bangalore; [linkedin-mcp](https://devshipit.com/work/linkedin-mcp/), a LinkedIn integration for AI assistants published on npm; and [ISP Evidence](https://devshipit.com/work/isp-evidence/), an Android app in testing. ## What I'm looking for - **Full-time:** an entry-level software engineer or full-stack developer role in Bangalore. - **Freelance:** MERN-stack websites and web apps for property agents and agencies in Bangalore that list properties, capture enquiries and are easy to keep up to date. See [freelance services](https://devshipit.com/services/). ## Education BCA (Data Analytics), Kristu Jayanti (Deemed to be University), Bangalore. ## What I work with TypeScript, React, Next.js, Node.js, NestJS, Express, PostgreSQL, MongoDB, Redis, Supabase, Docker, Socket.IO. ## DevShipIt and JantaHR DevShipIt is my trading name, and devshipit.com is its website. JantaHR is HR and payroll software for Indian companies that DevShipIt builds and sells at [jantahr.devshipit.com](https://jantahr.devshipit.com). Each live project runs on its own subdomain of devshipit.com. ## Find me - Email: [hello@devshipit.com](mailto:hello@devshipit.com) for jobs, interviews and freelance projects - GitHub: [github.com/devag7](https://github.com/devag7) - LinkedIn: [linkedin.com/in/devagarwalla](https://www.linkedin.com/in/devagarwalla) - npm: [linkedin-mcp-tools](https://www.npmjs.com/package/linkedin-mcp-tools) --- Canonical page: https://devshipit.com/about/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # Pricing > JantaHR prices per employee in rupees (Free, Standard, Professional and Enterprise), and how DevShipIt quotes freelance web development projects. Last updated October 2026 All prices are in Indian rupees. We are not registered for GST, so no GST is added. ## JantaHR: HR and payroll software JantaHR is HR and payroll software for Indian companies, sold as a subscription at [jantahr.devshipit.com](https://jantahr.devshipit.com). Paid plans are priced per employee seat, with a minimum of 10 seats, and are paid in advance through Razorpay. | Plan | Billed monthly | Billed yearly | For | | --- | --- | --- | --- | | Free | ₹0 | ₹0 | Up to 20 employees: core HR, leave and attendance | | Standard | ₹59 per employee a month | ₹49 per employee a month (₹588 a year) | Payroll with PF, ESI, PT, LWF and TDS, filing files, onboarding and exits | | Professional | ₹119 per employee a month | ₹99 per employee a month (₹1,188 a year) | Everything in Standard plus performance, recruitment and analytics | | Enterprise | Quoted on request | | 250 employees and more, dedicated database and SLA | - Every new company gets a 14-day free trial of Professional. No card is needed and nothing is charged when it ends. - Subscriptions renew automatically until cancelled. You can cancel at any time from Billing in the app. - Full plan details: [jantahr.devshipit.com/pricing](https://jantahr.devshipit.com/pricing). ## Freelance web development Websites and web apps for real estate agents and agencies are priced per project. You get a written quote with the scope, price and delivery dates before any work starts, and you pay only the amounts in that quote. Questions about prices: [jantahr@devshipit.com](mailto:jantahr@devshipit.com). --- Canonical page: https://devshipit.com/pricing/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # Terms of service > Terms for buying JantaHR subscriptions and freelance services from DevShipIt. Last updated October 2026 DevShipIt is run by Dev Agarwalla, an individual developer based in Bengaluru, Karnataka, India. In these pages "we" and "us" mean Dev Agarwalla trading as DevShipIt. ## What we sell - **JantaHR**, HR and payroll software offered as a subscription at [jantahr.devshipit.com](https://jantahr.devshipit.com). Its own [terms of service](https://jantahr.devshipit.com/legal/terms) apply to your use of it and take precedence for anything specific to the product. - **Freelance web development**, delivered under a written quote agreed for each project. Everything we sell is delivered online. We do not sell physical goods. ## Accounts You must give accurate information when you sign up and keep your sign-in details secure. The person who creates a JantaHR company account is its owner and is responsible for who they invite. ## Prices and payment Prices are listed on our [pricing page](https://devshipit.com/pricing/) in Indian rupees. Card, UPI, net banking and other online payments are processed by Razorpay; we never see or store your full card details. Subscriptions are charged in advance for each billing period and renew automatically until cancelled. ## Cancellation and refunds You can cancel at any time. How cancellation works and when we refund is set out in our [cancellation and refund policy](https://devshipit.com/refunds/). ## Acceptable use Do not use our services to break the law, to send spam, to access data you are not entitled to, or to disrupt the service for others. We may suspend an account that does this, and will tell the owner why. ## Your data and our software Data you put into JantaHR stays yours, and you can export it. JantaHR's source code is open source under the AGPL-3.0 licence. For freelance work, ownership of what we build passes to you once it is paid for, unless the quote says otherwise. ## Availability and liability We work to keep the service available and correct, but we cannot promise it will be uninterrupted or free of errors. Payroll and statutory outputs should be checked by your chartered accountant before filing. To the extent the law allows, our total liability for any claim is limited to the amount you paid us in the 12 months before it. ## Changes We may update these terms. If a change affects paying customers, we will tell account owners by email before it takes effect. ## Law and disputes These terms are governed by the laws of India. Courts in Bengaluru, Karnataka have jurisdiction. Please write to us first; most problems can be sorted out quickly. ## Contact [jantahr@devshipit.com](mailto:jantahr@devshipit.com), or see our [contact page](https://devshipit.com/contact/). --- Canonical page: https://devshipit.com/terms/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # Privacy policy > How DevShipIt handles personal data on devshipit.com, in JantaHR and in payments. Last updated October 2026 DevShipIt is run by Dev Agarwalla, an individual developer based in Bengaluru, Karnataka, India. In these pages "we" and "us" mean Dev Agarwalla trading as DevShipIt. ## This website devshipit.com has no sign-in, forms, cookies or analytics. Our hosting provider, Cloudflare, keeps short-lived technical logs (such as IP addresses) to deliver the site and protect it from abuse. ## When you email us We use your name, email address and what you write only to reply to you and, if you become a customer, to provide the service. We do not sell it or use it for advertising. ## JantaHR Personal data that companies store in JantaHR (employees, payroll, attendance) is covered by the [JantaHR privacy notice](https://jantahr.devshipit.com/legal/privacy). In that product the company is the data fiduciary and we process data on its behalf. Data is stored in India. ## Payments Payments are processed by Razorpay under its own privacy policy. We receive the payment status, amount and a reference, not your card or bank details. ## Your rights Under the Digital Personal Data Protection Act, 2023 you can ask to see, correct or erase personal data we hold about you, and withdraw consent you gave. Write to us and we will respond within 30 days. ## Grievance contact Dev Agarwalla, [jantahr@devshipit.com](mailto:jantahr@devshipit.com), Bengaluru, Karnataka, India. --- Canonical page: https://devshipit.com/privacy/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # Cancellation and refund policy > How to cancel a DevShipIt subscription or project, and when we refund. Last updated October 2026 DevShipIt is run by Dev Agarwalla, an individual developer based in Bengaluru, Karnataka, India. In these pages "we" and "us" mean Dev Agarwalla trading as DevShipIt. ## JantaHR subscriptions - **Free trial.** The 14-day trial needs no payment details, and nothing is charged when it ends. - **Cancelling.** The account owner can cancel at any time from Billing in the app. No future renewals are charged. Paid features stay available until the end of the period already paid for. - **Refunds.** We do not refund the unused part of a month or year, because the plan keeps working until the end of the paid period. We refund in full when you were charged in error: a duplicate charge, a charge after a confirmed cancellation, or a charge for more seats than you ordered. - **Changing plan or seats.** Adding seats applies straight away and is charged pro rata. Reducing seats or moving to a lower plan applies at the next renewal. Full details: [JantaHR cancellation and refunds](https://jantahr.devshipit.com/legal/refunds). ## Freelance projects Cancellation and refund terms for a project, including any advance, are written into the quote you accept before work starts. ## How to ask for a refund Email [jantahr@devshipit.com](mailto:jantahr@devshipit.com) within 30 days of the charge with the invoice number or payment reference. We reply within 2 working days. An approved refund goes back to the original payment method through Razorpay within 5 to 7 working days; your bank may take a few more days to show it. --- Canonical page: https://devshipit.com/refunds/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # Shipping and delivery policy > DevShipIt sells software and services delivered online; nothing is shipped. Last updated October 2026 DevShipIt is run by Dev Agarwalla, an individual developer based in Bengaluru, Karnataka, India. In these pages "we" and "us" mean Dev Agarwalla trading as DevShipIt. ## Nothing is shipped We sell software and web development services delivered over the internet. We do not sell or ship physical goods, so there are no shipping charges, couriers or delivery addresses. ## When you get access - **JantaHR trial:** starts as soon as you confirm your email address. - **JantaHR paid plans:** activated automatically when Razorpay confirms the payment, normally within a few minutes. The invoice is available under Billing straight away. - **Freelance projects:** delivered online (a live website, a code repository or files) on the dates in your quote. ## If access does not arrive If money has left your account and your plan is not active within 2 hours, email [jantahr@devshipit.com](mailto:jantahr@devshipit.com) with the payment reference. We will activate it or refund the payment within 2 working days. ## Where we sell Our services are offered to customers in India and priced in Indian rupees. --- Canonical page: https://devshipit.com/shipping/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # Contact us > Email Dev Agarwalla at DevShipIt about a full-time role or a freelance website or web app in Bengaluru, or reach JantaHR support. Replies within 2 working days. Last updated October 2026 - **Operated by**: Dev Agarwalla (individual), trading as DevShipIt - **Email**: [jantahr@devshipit.com](mailto:jantahr@devshipit.com) - **General and hiring**: [hello@devshipit.com](mailto:hello@devshipit.com) - **Location**: Bengaluru, Karnataka, India - **Hours**: Monday to Friday, 10:00 to 18:00 IST The fastest way to reach us is email. We reply within 2 working days, usually sooner. - **Operated by**: Dev Agarwalla (individual), trading as DevShipIt - **Email**: [jantahr@devshipit.com](mailto:jantahr@devshipit.com) - **Location**: Bengaluru, Karnataka, India - **Hours**: Monday to Friday, 10:00 to 18:00 IST ## Billing, refunds and support For JantaHR, write from the account owner's email address and include your company name, plus the invoice number or payment reference for anything about a charge. ## Grievances Complaints about a payment, the service or how we handle personal data go to Dev Agarwalla at [jantahr@devshipit.com](mailto:jantahr@devshipit.com). We acknowledge them within 2 working days and resolve them within 30 days. --- Canonical page: https://devshipit.com/contact/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # JantaHR > Case study: JantaHR, open-source HR and payroll for Indian companies, built with NestJS, Next.js, Supabase and Razorpay. Open-source HR and payroll for Indian companies. It works out PF, ESI, professional tax, LWF and TDS every month and produces the files companies file with the government. [Open JantaHR](https://jantahr.devshipit.com) [Pricing](https://jantahr.devshipit.com/pricing) [Source on GitHub](https://github.com/devag7/jantahr) - **Role**: Design and development, solo - **Built**: September to October 2026 - **Status**: Live at [jantahr.devshipit.com](https://jantahr.devshipit.com) - **Stack**: NestJS, Prisma, PostgreSQL, Next.js, Supabase (Auth, Postgres, Storage), Vercel, Razorpay, Expo ![Compliance calendar listing salary, TDS, EPF, ESI and return deadlines with their status](https://devshipit.com/assets/img/jantahr-compliance.webp) The compliance calendar lists each deadline with its status. ![A payroll run with gross pay, deductions, net pay and employer contributions for each month](https://devshipit.com/assets/img/jantahr-payroll.webp) A payroll run, with gross pay, deductions, net pay and employer contributions. ![Employee home screen on a phone with attendance check-in and leave balance](https://devshipit.com/assets/img/jantahr-mobile.webp) The employee home screen, with attendance check-in and leave balance. ## The problem Indian payroll is mostly rules that keep changing: a provident fund wage ceiling that moved mid-month in September 2026, ESI contribution periods, professional tax that differs by state, and income tax under two regimes. Small companies either pay per-employee SaaS fees or keep spreadsheets. JantaHR is a third option they can run themselves or subscribe to. ## What I built - **Payroll engine.** Formula-based salary structures, proration for mid-month joiners, loss of pay from attendance, arrears and loans, with every statutory rule linked to the notification it comes from. - **Filing outputs.** EPF ECR, ESI, professional tax and LWF registers, bank advice and a quarterly TDS extract, plus a compliance calendar that ticks items off as they are filed. - **Everything around payroll.** Leave, geo-fenced attendance, onboarding and exits with full and final settlement, appraisals, recruitment, expenses and a helpdesk, with a guided setup for new companies. - **Privacy and security.** Supabase Auth with two-factor sign-in, field-level encryption for PAN, Aadhaar and bank details, row-level security and tools for the DPDP Act. - **A real subscription business.** Per-seat plans billed through Razorpay subscriptions, with webhooks, invoices and a 14-day trial. ## How it runs The web app and API deploy as one Vercel project in Mumbai, backed by Supabase Postgres, Storage and scheduled jobs. Companies that prefer their own servers can self-host the whole product with one command. --- Canonical page: https://devshipit.com/work/jantahr/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # RentWise > Case study: RentWise, a Bangalore rental platform built with Next.js, TypeScript, PostgreSQL, Redis and Socket.io. A rental platform for Bangalore that collects listings automatically, pushes updates in real time and gives each kind of user the right level of access. [Live demo](https://bit.ly/4uiOams) [Source on GitHub](https://github.com/devag7/rentwise) - **Role**: Design and development, solo - **Built**: March to April 2026 (2.0) - **Status**: Live - **Stack**: Next.js, TypeScript, PostgreSQL, Redis, Socket.io, Docker, Playwright, Mapbox GL JS, Supabase ## The problem Finding a rental in Bangalore means checking several sites and refreshing them by hand. RentWise started in March 2026 as an attempt to put listings in one place and keep them fresh without manual data entry. ## What I built - **Automated listing collection.** Playwright scrapers running in Docker containers gather listings automatically. - **Real-time updates.** Socket.io pushes changes to open sessions over WebSockets, so users see new data without reloading. - **Role-based access.** Four roles (guest, user, landlord and admin) each see and can do different things. - **Maps.** Mapbox GL JS powers the map views. - **Typed end to end.** The app is written in TypeScript on Next.js, with PostgreSQL (through Supabase) for data and Redis alongside it. ## RentWise 2.0 In March and April 2026 I rebuilt the project as RentWise 2.0 and wrote it up as a university academic report, matching the exact formatting my university requires. It is the project I treat as the centerpiece of my portfolio. --- Canonical page: https://devshipit.com/work/rentwise/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # linkedin-mcp > Case study: linkedin-mcp, a 36-tool LinkedIn integration for AI assistants, published on npm as linkedin-mcp-tools. A Model Context Protocol server that lets AI assistants work with LinkedIn through 36 tools, with the caching, rate limiting and retries you need to run it for real. [View on npm](https://www.npmjs.com/package/linkedin-mcp-tools) - **Role**: Design, development and publishing, solo - **Built**: June 2026 - **Status**: Published on npm - **Package**: linkedin-mcp-tools - **Stack**: Node.js, MCP ## The problem AI assistants are useful for job search and networking work, but they can only act on LinkedIn if something exposes it to them in a form they can call safely. I built that layer. ## What I built - **36 tools** covering LinkedIn API operations, exposed through an MCP server. - **LRU caching** so repeated lookups are fast and do not waste calls. - **Rate limiting** to stay inside LinkedIn's limits instead of getting blocked. - **Retry logic** so transient failures do not break a longer task. - **Published to npm** as `linkedin-mcp-tools`, so it installs with one command. --- Canonical page: https://devshipit.com/work/linkedin-mcp/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # ISP Evidence > Case study: ISP Evidence, an Android app that logs connection drops, latency and jitter and exports a PDF report for ISP complaints. An Android app that turns "my internet keeps dropping" into evidence: it logs every drop, latency and jitter reading, then exports a PDF report you can send with a complaint. [Ask about ISP Evidence](mailto:jantahr@devshipit.com?subject=ISP%20Evidence) - **Role**: Product, design and development, solo - **Started**: 2026 - **Status**: In testing on Google Play (internal track) - **Platform**: Android ## The problem When home internet is unreliable, a complaint to the provider usually comes down to your word against theirs. A support agent asks for proof, and most people have none. ## What it does - **Logs connection drops** as they happen. - **Measures latency and jitter** over time. - **Exports a PDF report** that summarizes the log, ready to attach to an ISP complaint. ## Where it stands The app is on the Google Play internal testing track while I work through feedback ahead of a wider release. This is the first Android app I am taking to Google Play, so the release process itself is part of what I am learning here. --- Canonical page: https://devshipit.com/work/isp-evidence/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com # DevShipIt for developers and AI agents > The DevShipIt public API with its OpenAPI 3.1 document, the devshipit command-line tool, the MCP server, llms.txt and Markdown for every page of devshipit.com. A public JSON API with an OpenAPI 3.1 document, a command-line tool, an MCP server, llms.txt, and Markdown for every page. No sign-in, read-only. [OpenAPI document](https://devshipit.com/openapi.json) [Try the API](https://devshipit.com/api/v1) ## DevShipIt API A read-only JSON API at `https://devshipit.com/api/v1` with the same facts as the site. It needs no key, sends `Access-Control-Allow-Origin: *`, and is described by an OpenAPI 3.1 document at , where every operation has an `operationId`, typed parameters and response schemas. The API catalog is at (RFC 9727). `curl https://devshipit.com/api/v1/projects/jantahr` | Endpoint | operationId | Returns | | --- | --- | --- | | `GET /api/v1/` | `getApiIndex` | API name, version and every endpoint | | `GET /api/v1/profile` | `getProfile` | Who Dev is, his stack and what he is open to | | `GET /api/v1/projects` | `listProjects` | JantaHR, RentWise, linkedin-mcp and ISP Evidence | | `GET /api/v1/projects/{slug}` | `getProject` | One project, for example jantahr | | `GET /api/v1/services` | `listServices` | Freelance services | | `GET /api/v1/faq` | `listFaq` | Frequently asked questions with answers | | `GET /api/v1/contact` | `getContact` | Which email address to use | | `GET /api/v1/pages` | `listPages` | Every public page | | `GET /api/v1/page?path=/pricing/` | `getPage` | One page as Markdown | To use it as tools for a model with function calling, load the OpenAPI document: each `operationId` becomes a function name and its description says when to call it. ## Errors Every error is RFC 9457 problem details, sent as `application/problem+json`, with three extra members: `code` (stable and machine-readable), `hint` (what to do next) and `docs`. The `type` URI of each error opens its row below. Clients that ask for JSON also get problem details for a missing page or file anywhere on the site. `{"type": "https://devshipit.com/developers/#error-project_not_found", "title": "Project not found", "status": 404, "detail": "There is no project "x". Valid slugs: jantahr, rentwise, linkedin-mcp, isp-evidence.", "code": "project_not_found", "hint": "Call GET /api/v1/projects for the valid slugs.", "instance": "/api/v1/projects/x"}` | code | Status | Meaning | What to do | | --- | --- | --- | --- | | `not_found` | 404 | No endpoint, page or file at that path. | List what exists with GET /api/v1/ or read /openapi.json. | | `project_not_found` | 404 | No project with that slug. | Call GET /api/v1/projects for the valid slugs. | | `page_not_found` | 404 | No public page at that path. | Call GET /api/v1/pages for the valid paths. | | `missing_parameter` | 400 | A required query parameter is missing. | Add it and retry, for example ?path=/pricing/. | | `invalid_parameter` | 400 | A parameter has the wrong format. | Check the format in the OpenAPI document. | | `method_not_allowed` | 405 | The API is read-only. | Use GET or HEAD. | | `not_acceptable` | 406 | A page was asked for as JSON. | Use /api/v1/page?path=..., or ask for text/html or text/markdown. | | `unavailable` | 503 | The site data could not be loaded. | Retry after the Retry-After header. | ## Command-line tool The `devshipit` CLI reads the API from a terminal. It needs Node.js 20 or newer and has no dependencies. `npx github:devag7/devshipit projects` - `devshipit profile`, `devshipit projects`, `devshipit project jantahr` - `devshipit services`, `devshipit faq`, `devshipit contact` - `devshipit pages` and `devshipit page /pricing/` to print a page as Markdown - Add `--json` to any command for raw JSON. Errors exit with code 1 and print the API's `code` and `hint`. Source: [github.com/devag7/devshipit/tree/main/cli](https://github.com/devag7/devshipit/tree/main/cli). ## MCP server A public, read-only Model Context Protocol server runs at `https://devshipit.com/mcp` over Streamable HTTP. It needs no sign-in and does not store anything you send. - `get_profile`: who Dev is, what he works with and what he is looking for - `list_projects`: JantaHR, RentWise, linkedin-mcp and ISP Evidence with their status and links - `list_services` and `get_faq`: freelance services and answers to common questions - `list_pages` and `get_page`: every public page as Markdown - `get_contact`: which email address to use for hiring, freelance work or JantaHR Add it to Claude Code with `claude mcp add --transport http devshipit https://devshipit.com/mcp`, or to any client that accepts a remote server URL. The discovery document is at . ## Read any page as Markdown Send `Accept: text/markdown` with a request for any page and you get Markdown instead of HTML, with `Vary: Accept` on both. You can also open the Markdown file directly by adding `index.md` to a page URL, for example . `curl -H "Accept: text/markdown" https://devshipit.com/` ## llms.txt describes the site, says when an agent should use it and lists every page. holds the full text of every page in one file. ## Published developer tools - [linkedin-mcp-tools](https://www.npmjs.com/package/linkedin-mcp-tools) on npm: a 36-tool LinkedIn integration for AI assistants, with caching, rate limiting and retries. [linkedin-mcp case study](https://devshipit.com/work/linkedin-mcp/). - [JantaHR developer docs](https://jantahr.devshipit.com/developers): the REST API with its [OpenAPI specification](https://jantahr.devshipit.com/openapi.json), and JantaHR's own MCP server for plans, pages and contact details. - [github.com/devag7](https://github.com/devag7): source for JantaHR, RentWise, linkedin-mcp and this site. ## Questions Email [hello@devshipit.com](mailto:hello@devshipit.com). --- Canonical page: https://devshipit.com/developers/ Site guide for agents: https://devshipit.com/llms.txt Contact: hello@devshipit.com