Building a native-first social platform with Expo
Article Summary
Aras Diler built a production social platform with Siri integration, on-device AI, and iOS widgets as a solo developer. His secret? Treating Expo as the architecture, not just a starting point.
Diler spent two years building udictio, a collaborative social dictionary where contributions stay permanently attached to topics instead of disappearing into feeds. The app now handles thousands of entries while integrating deeply with iOS 26 features, all without abandoning the Expo workflow.
Key Takeaways
- Siri posting works without opening the app using background App Intents
- On-device Apple Intelligence summarizes entries without third-party AI services
- Config plugins keep native code reproducible through Continuous Native Generation
- Widget timeline crashes were caught by testing on physical devices, not simulators
- Expo modules bridge Swift for Spotlight indexing and Core ML sessions
A solo developer shipped a deeply native iOS app with Siri, widgets, and on-device AI while keeping Expo as the single source of truth through strategic use of config plugins and narrow native boundaries.
About This Article
Aras Diler ran into trouble keeping widget timeline data serializable across property-list storage in the shared App Group. Values like undefined, NaN, and non-serializable objects couldn't be persisted.
Diler created a buildWidgetProps function that sanitizes topic data by converting values to strings, finite numbers, and truncated integers. He also added a development readback step to verify the data actually made it to the shared container.
The widget now works across small, medium, and large families in light, dark, tinted, and vibrant rendering modes without timeline persistence failures.