finds.dev← search

// the find

mlynch/nextjs-tailwind-ionic-capacitor-starter

★ 1,934 · TypeScript · MIT · updated Sep 2025

A starting point for building an iOS, Android, and Progressive Web App with Tailwind CSS, React w/ Next.js, Ionic Framework, and Capacitor

A starter template wiring together Next.js, Tailwind, Ionic Framework, and Capacitor so you get one React codebase that ships as an iOS app, an Android app, and a PWA. It's aimed at web developers who want native app shells (tab bars, transitions, native APIs) without learning Swift/Kotlin or a separate mobile framework.

The division of labor is sound: Next.js is just the build/bundler, Ionic owns navigation and native-feeling chrome via its own router, and Capacitor handles the native bridge — each doing the one thing it's actually good at instead of three frameworks fighting over routing. It ships with real, working android/ and ios/ native projects already configured (Gradle files, Podfile, Xcode workspace), not just a doc telling you to run capacitor init yourself. The README is unusually candid for a starter repo — it explicitly calls out that SSR is impossible under this setup and links to a real GitHub issue thread for the API routes workaround instead of pretending everything just works. Maintained by Ionic's own cofounder, so the Capacitor/Ionic glue code is likely idiomatic rather than a community best-guess.

The core tradeoff is severe: because native builds require `next export`, you lose SSR entirely and Next.js's file-based routing is reduced to a single catch-all route that immediately hands off to Ionic's React Router — you're paying for Next.js as a bundler, not using what makes it Next.js. There's no SEO story: the exported shell is client-rendered, so if you also want a crawlable marketing or content site you need a second parallel surface, which the README admits but doesn't solve. The repo checks in build artifacts and IDE state that should be gitignored (`.gradle/` execution history and caches, `.xcworkspace` files), which will cause noisy diffs and stale-cache bugs for anyone who forks it. Some guidance is stale relative to current Capacitor — the livereload instructions still describe manually editing an IP address into `capacitor.config.json` and reference a 'Capacitor 3 beta' blog post, despite the repo having a push in September 2025.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →