HomePortfolioSmartPDF AI

Project · Remote

SmartPDF AI — document tools made for phones.

Mobile-first web app · Document and PDF tools

SmartPDF AI is a PDF toolkit built as a web app that looks and behaves like a phone app, with an app-sized frame, five bottom tabs, a side drawer and dark mode. The Tools tab holds 30 tools, from merge, split and compress to Office conversions, OCR, signatures, passwords and redaction. Each tool sends its files to a separate Python engine built on PyMuPDF, and signed-in users get a history of every job, a Files tab to download results again and saved workflows that chain several tools.

Client
SmartPDF AI, Remote
Industry
Document and PDF tools
Built
Mobile-first web app
Serves
Anyone who needs to merge, convert, sign, protect or tidy up PDFs from a phone
Stack
Laravel · PHP · Laravel Breeze · Blade
Live at
Not public yet; screens from a local build
SmartPDF AI — Home
HomeA greeting, counts of jobs in total, finished and this month, six quick tools and the latest work with a Download link.
SmartPDF AI — Tools
ToolsAll 30 tools in six groups with a search box, plus a way into saved workflows.
SmartPDF AI — Merge PDF
Merge PDFThree PDFs queued with their sizes and arrows to change the order before tapping Merge PDFs.

30

tools on the Tools tab, in six groups

34

processing endpoints on the Python engine

5

tabs in the bottom bar

12

OCR languages in Settings

Counted from the project repository (tool catalogue, Tools tab, engine routes and settings view), 3 October 2026.

01 — The build

what the business needed, and what was made

The product

SmartPDF AI is a set of PDF tools for people who work from their phone. Merging two scans, shrinking a file to fit an email, turning a Word document into a PDF or putting a password on a payslip are all small jobs, and they are usually done in a hurry, on whatever device is to hand.

The product is a web app, not a store app. It opens in the phone's browser, but it is laid out and behaves like an installed app, so there is nothing to download before the first job.

What it had to do

  • Offer the everyday PDF jobs in one place: organise, compress, convert to and from PDF, edit, sign and secure.
  • Feel like a phone app: one hand, big tap targets, a bottom tab bar and no sideways scrolling.
  • Show real progress while a file uploads, then hand back the result with one tap.
  • Keep a history of every job so a result can be downloaded again later.
  • Let people save a sequence of tools they use often and run it on a new file in one go.
  • Do the heavy PDF work in a separate engine, with each tool easy to add or change.

What was built

An app shell for the phone

Every screen sits in an app frame up to 480 pixels wide. On a phone it fills the screen; on a laptop it sits in the middle of the page like a phone. A sticky top bar holds the menu, the logo and the user's initial. Five tabs sit at the bottom: Home, Files, Tools, Scanner and Settings. A drawer from the left holds Workflows, My History, Cloud Storage, Subscription, Settings and Sign out.

The layout respects the notch and the home indicator, pages slide in when they open, and a small notice appears when the phone goes offline. Dark mode is one switch in Settings and is applied before the page paints, so there is no white flash.

Thirty tools, one upload flow

The Tools tab lists 30 tools in six groups: Organise, Optimise, Convert to PDF, Convert from PDF, Edit and Security, with a search box that filters as you type. Signed-out visitors can browse every tool; running one asks them to sign in.

Every tool page works the same way. A large button opens the phone's file picker with only the right file types allowed. Tools that take several files, such as Merge, show a queue with sizes and arrows to change the order. Protect and Unlock ask for a password. Uploads show real progress, then a result card offers the download, Convert another and View history.

Behind the page, Laravel checks the files (up to 200 MB each, and up to 20 for multi-file tools), records the job, stores the input under the user's account and sends it to the engine. The result is saved and the job is marked done, or marked failed with the reason. Downloads are only served to the person who ran the job. Tool runs are rate-limited to 30 a minute.

Edit PDF has its own screen: the engine renders each page as an image, the user taps where text should go and picks a colour, and the engine writes the text into the PDF.

History, Files and Workflows

Home shows how many jobs a user has run, how many finished and how many this month, six quick tools and the latest work. My History lists every job with filters for completed, processing and failed, and each entry can be removed. The Files tab lists finished results, filtered by PDFs or images, each with a Download link.

Workflows chain tools. A user names a workflow, picks an emoji and adds up to ten steps from the tool catalogue, for example Compress, then Watermark, then Protect. Running it on a file sends the output of each step into the next, and the final file lands in history like any other job, with a run count on the workflow.

Settings and the Scanner tab

Settings holds the profile, dark mode and the OCR language (12 to choose from), links to My History, Subscription and Profile, the About, Credits, Help, Contact, Terms and Privacy pages, and a Share app button that opens the phone's own share sheet.

The Scanner tab opens the rear camera inside the app with a document frame and a shutter, and is designed to collect several pages, boost their contrast and build one PDF, with optional OCR.

The Python engine

The PDF work happens in a separate FastAPI service with 34 processing endpoints. Laravel sends a shared secret with every request, plus the job ID on tool runs, and the engine checks the secret in constant time. Each request runs in its own temporary folder that is deleted afterwards, and uploads are capped at 200 MB.

Most tools use PyMuPDF: merging, splitting, rotating, reordering, watermarks, page numbers, signatures, cropping, passwords, redaction, repair and the page images for the editor. Compression downsizes large embedded images, re-encodes them as JPEG and rewrites the file without unused objects. Pillow builds PDFs from photos, pdf2docx turns PDFs into Word files, pdfplumber and openpyxl pull tables into Excel, and python-pptx places each page on its own slide. Office files go to PDF through headless LibreOffice, PDF/A goes through Ghostscript and OCR uses Tesseract through PyMuPDF. Compare renders two versions side by side, page by page, and counts the word changes on each page.

Technology

The web app is Laravel 10 on PHP with Laravel Breeze for sign-in, Blade views, Alpine.js and Tailwind CSS, bundled with Vite, and the app screens use the phone's own system fonts. The engine is Python with FastAPI and PyMuPDF, plus Pillow, pdf2docx, pdfplumber, openpyxl and python-pptx, with headless LibreOffice, Ghostscript and Tesseract for Office files, PDF/A and OCR. AI summaries call the Anthropic Claude API.

  • Laravel
  • PHP
  • Laravel Breeze
  • Blade
  • Alpine.js
  • Tailwind CSS
  • Vite
  • Python
  • FastAPI
  • PyMuPDF
  • Pillow
  • pdf2docx
  • pdfplumber
  • python-pptx
  • LibreOffice (headless)
  • Ghostscript
  • Tesseract OCR
  • Anthropic Claude API

03 — What it does

every feature on the live site

05 — Screens

captured from the live site

SmartPDF AI — Result
ResultThe Python engine has joined the three files into one 11-page PDF, ready to download or convert another.
SmartPDF AI — Files
FilesEvery finished job with its tool and time, filtered by PDFs or images, each with a Download link.
SmartPDF AI — Scanner
ScannerThe Scanner tab opens the rear camera with a document frame and a shutter button.
SmartPDF AI — Settings in dark mode
Settings in dark modeProfile, dark mode, OCR language, history, subscription, help and legal pages, shown here in dark mode.
SmartPDF AI — Pro plan
Pro planThe Pro plan screen: unlimited conversions, bigger files and priority processing, next to the current free plan.
SmartPDF AI — Welcome
WelcomeWhat a signed-out visitor sees first: the promise, a sign-up button and 16 popular tools.

07 — Questions

about building something like this

Can you build a web app that feels like a phone app?

Yes. SmartPDF AI is one: a narrow app frame, a bottom tab bar, a side drawer, padding for notched phones, an offline notice and dark mode, built with Blade, Alpine.js and Tailwind CSS. It opens in any phone browser with nothing to install.

Why split the work between Laravel and Python?

Laravel is good at accounts, uploads, history and screens; Python has the strongest PDF libraries. In SmartPDF AI, Laravel records each job, passes the files to a FastAPI engine with a shared secret, stores the result and serves the download, so the engine can run and grow on its own.

Can new tools be added later?

Yes. A tool is one entry in the tool catalogue and one endpoint on the engine. The upload page, the call to the engine, the history row and the download are shared by every tool, and saved workflows can chain a new tool with the others.

What would an app like this cost?

It depends on how many tools you need, which file types, and whether you want accounts, AI features or cloud storage. It is quoted as a fixed price after a short call, or built under the Hourly engineering package with a written estimate before any work starts.

09 — More work

live projects and written case studies

Live VEDUMIA handmade resin art studio, selling across India and abroad Live Umiya OilA Rajkot oil and lubricant shop, with every grade it stocks online Live Pandit booking platformA Django marketplace for booking pujas, upgraded to 2.0 Live ConfessioAn anonymous platform where professionals share the mistakes they made at work Live Bolt HouseA stock app for a nut and bolt maker, on Android and iPhone Live Multi-vendor marketplace panelOne admin panel and one vendor panel for five kinds of business Live Hotel management softwareOne system for the daily rounds, checklists and issues of a group of hotels Live AuraSalon software that runs the chair, the counter and the books Live KooyaAn Indian jewellery and gifting brand, with a shop built around the gift Live Wats.inA city discovery platform for travellers, locals and the places they love All The full portfolioEvery live project, with screenshots. 62 Case studiesWeb, mobile and API projects, written up with names withheld.

11 — Your project

the next one on this page

Want one like this?

Tell me what you sell, who buys it and how they pay. I reply within one working day with questions, then a fixed price or an hourly estimate from $10.

Ahmedabad, India · IST (UTC+5:30) · --:-- IST · Mon–Fri 09:00–18:00 IST · US & EU overlap daily

No newsletter, no CRM. Just a reply.