A comprehensive mobile-first Progressive Web App (PWA) built with Next.js that provides full access to device native capabilities through Capacitor. Access microphone, camera, location, contacts, file system, notifications, and gallery - all with native device permissions in a beautiful mobile interface.
- AI Voice Assistant: Voice-powered conversations with AI
- Camera Integration: Take photos and access camera with native controls
- Location Services: GPS tracking and location sharing
- File System Access: Read, write, and manage files natively
- Push Notifications: Native push notification support
- Gallery Access: Browse and manage media from device gallery
- PWA Ready: Installable as a native app on any device
- Progressive Web App: Full PWA capabilities with service workers
- Capacitor Integration: Native mobile app functionality
- Responsive Design: Modern UI with Tailwind CSS
- TypeScript: Full type safety
- Cross-platform: Works on web, iOS, and Android
| Feature | Web | iOS | Android | Description |
|---|---|---|---|---|
| π€ Microphone | β | β | β | Audio recording with noise suppression |
| π· Camera | β | β | β | Photo/video capture and gallery access |
| π Location | β | β | β | GPS tracking and location services |
| π₯ Contacts | β | β | β | Device contacts access and management |
| π Files | β | β | β | Native file system access |
| π Notifications | β | β | β | Push notifications |
| πΌοΈ Gallery | β | β | β | Media library access |
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS
- PWA: Service Workers, Web App Manifest
- Native: Capacitor 6 with plugins
- Audio: RecordRTC for voice recording
- Build: Next.js static export
-
Clone the repository
git clone <repository-url> cd nextjs-capacitor-ai-voice
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Build for production
npm run build
npm run cap:sync
npm run cap:iosnpm run cap:sync
npm run cap:androidThe app includes the following Capacitor plugins:
@capacitor/camera- Camera and photo capture@capacitor/filesystem- File system access@capacitor/geolocation- GPS and location services@capacitor/push-notifications- Push notifications@capacitor-community/media- Media gallery access
app/
βββ page.tsx # Main dashboard
βββ layout.tsx # Root layout
βββ globals.css # Global styles
βββ voice/
β βββ page.tsx # Voice assistant
βββ camera/
β βββ page.tsx # Camera interface
βββ location/
β βββ page.tsx # Location services
βββ files/
β βββ page.tsx # File system
βββ notifications/
β βββ page.tsx # Push notifications
βββ gallery/
βββ page.tsx # Media gallery
The app is configured for static export and can be deployed to any static hosting service:
npm run build
# Deploy the 'out' directory- Build the web app
- Sync with Capacitor
- Open in native IDE for deployment
npm run build
npm run cap:sync
npm run cap:ios # or cap:androidThe app requests the following permissions:
- Camera access
- Microphone access
- Location services
- Contacts access
- Photo library access
- Push notifications
- File system access
- Camera permission
- Location permission
- Contacts permission
- Storage permission
- Notification permission
- Microphone permission
- Install as PWA: On mobile devices, install the app from your browser
- Grant Permissions: Allow camera, microphone, location, and other permissions when prompted
- Explore Features: Use the dashboard to access different device capabilities
- Voice Assistant: Click the voice button to start AI conversations
- Native Experience: All features work with native device integration
Located in public/manifest.json - customize app icons, name, and display options.
Located in capacitor.config.ts - configure plugins and native app settings.
Create .env.local for any environment-specific configurations.
- Clear node_modules:
rm -rf node_modules && npm install - Clear Next.js cache:
rm -rf .next
- Re-sync:
npm run cap:sync - Clean and rebuild:
npm run cap:sync && npm run cap:ios
- Check device settings for app permissions
- Reinstall the app if permissions are denied
- Restart the app after granting permissions
This project is licensed under the MIT License.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
For issues and questions:
- Create an issue on GitHub
- Check the Capacitor documentation
- Review Next.js documentation
Built with β€οΈ using Next.js, Capacitor, and modern web technologies.