1
0 Comments

I built a full PDF editor for Android powered by native C++ โ€” solo, AI-assisted, from scratch

Hey Indie Hackers ๐Ÿ‘‹

I'm Emre, a solo developer. I go by night_owl here โ€” because most of this project was built between midnight and 4am.

I just launched RealPDF: a full-featured PDF editor, viewer, and tool suite for Android. I want to share the honest story of how it got built, what I learned, and where I'm trying to take it.

WHY I BUILT IT

I was looking for a PDF app that could edit PDFs locally (no cloud uploads), not charge me $10/month just to merge two files, and actually feel good to use.

I couldn't find one. Every app I tried was either too limited, too expensive, too ad-heavy, or too ugly. So I did what any slightly unreasonable developer would do โ€” I built my own.

WHAT IT DOES

RealPDF is built around a native C++ PDFium engine (the same engine Google Chrome uses internally). Everything runs on-device. No files ever leave your phone.

Viewer: Tile-based rendering with a 3-isolate render pool, night mode, text search, text selection, and a RAM-adaptive LRU image cache that scales from 10 to 60 entries based on device memory.

Editor: 10 element types (text, image, shape, signature, barcode, form fields, table, chart, native text edit, native image edit), 50-step undo/redo with Command Pattern, working copy system so the original file is never touched until you save, and editor state saved as a gzip attachment inside the PDF itself โ€” so it survives file moves and renames.

Tools: Merge, Split, Compress, Encrypt (AES-256), Decrypt, JPGโ†’PDF, PDFโ†’Image, Wordโ†’PDF, PPTXโ†’PDF, Page Editor (drag-to-reorder, rotate, delete), Signature tool, HTMLโ†’PDF engine with a full WYSIWYG rich editor, and a Metadata viewer & editor.

Experience: 23 VS Code-inspired themes + 3 game themes (Minecraft, CoD, Wolfteam), 17 languages, and a freemium model where you get 3 free tool uses/day and can earn premium by watching rewarded ads or referring friends โ€” no forced subscription.

THE HARDEST TECHNICAL PROBLEM I FACED

PDFium is not thread-safe.

I wanted fast rendering using multiple background isolates (Flutter's version of threads). But if two isolates tried to access the same PDF document handle at the same time, the native C++ layer would throw a SIGSEGV โ€” a hard crash with no recovery.

The solution was a serial task queue. All three isolate workers share a single queue. Each worker processes one PDF operation at a time, in order. No parallelism on the same document. It sounds slow, but with smart deduplication and zero-copy buffer transfers (TransferableTypedData), it's fast enough that users never notice.

Opening a 380MB PDF went from 4-6 seconds (naive approach) down to 2-3 seconds after I combined document loading and page size batch queries into a single isolate pass.

HOW IT WAS BUILT

I'll be honest: I used AI heavily throughout this project โ€” and I know that's controversial in some circles.

But let me ask you something honestly: would you rather see this post today, or in 8-10 months?

Because that's the real alternative. I'm a developer โ€” but Flutter and C++ were not my native territory. Without AI assistance, I would have spent months just getting up to speed on the languages before writing a single line of real product code.

With AI as my pair programmer, I shipped the whole thing in ~3 months. Let's talk about what that actually means in concrete terms: 6,000+ lines of C++ (just the native engine layer), 38,000+ lines of Flutter/Dart, 60+ FFI bridge functions between C++ and Dart, a 35-file editor module with Command Pattern undo/redo, 17 languages localized, and a full monetization, analytics, and crash reporting system. Solo. Nights and weekends.

I didn't blindly copy-paste AI output. I understood every architectural decision, debugged every SIGSEGV crash, and made every product call myself. AI was the tool. I was the engineer.

My goal was never to write code. My goal was to build a product that solves a real problem. AI let me focus on that goal instead of spending half a year learning syntax.

I think "AI-assisted solo development" is one of the most underrated paths in indie hacking right now. You can punch way above your weight class โ€” and ship something that would have taken a team months, alone, in a fraction of the time.

If that makes the product less legitimate in your eyes, I respect that. But for the 13 people already using RealPDF on their phones โ€” it's pretty real to them. ๐Ÿ˜„

WHERE I AM NOW

Launched on Google Play. 13 users (yes, thirteen โ€” it's early). $0 revenue. Goal: 1,000 users, first revenue.

I'm not going to pretend the numbers are impressive. They're not. But the product is real, it's solid, and I believe in it.

WHAT I'M DOING TO GROW

Posting here (hi ๐Ÿ‘‹), planning a Reddit launch on r/androidapps and r/productivity, planning a Product Hunt launch once I have more traction, and building in public โ€” I'll post monthly updates here with real numbers.

WHAT I'D LOVE FROM YOU

Have you tried building something with AI assistance at this scale? What was your experience? Any feedback on the approach, the positioning, or the freemium model? If you're a PDF power user โ€” what's the one thing your current app gets wrong?

Thanks for reading. Back to the night shift. ๐Ÿฆ‰

โ€” Emre / night_owl

Play Store: [link]

posted toAvatar for product RealPDF:Editor & Tools
RealPDF:Editor & Tools