Building a modern web application usually requires backend servers, databases, authentication systems, and ongoing infrastructure costs. When I built Enjoy Movie, I intentionally avoided all of that.
The objective was clear:
Create a movie-tracking app that is fully serverless, free to operate, privacy-first, and easy to scale.
This post explains the exact technical architecture behind Enjoy Movie, including how user watch data is stored, synced in real time, and managed without any backend servers.
What Is Enjoy Movie?
Enjoy Movie is a personal movie and watch-tracking web app that allows users to:
Track watched movies
Manage watchlists
Sync data across devices
Retain full ownership of their data
The defining architectural decision is simple:
User data is never stored on my servers.
Instead, each user’s data lives inside their own Google Drive.
Why I Chose a Serverless Architecture
Traditional architectures require:
API servers
Databases
Authentication services
Backups and scaling strategies
Ongoing operational costs
For a personal media-tracking app, this complexity is unnecessary.
By using a serverless, client-driven architecture, Enjoy Movie benefits from:
Zero backend maintenance
Automatic scaling
No infrastructure costs
Strong privacy guarantees
Authentication Using Google Sign-In
Authentication is handled entirely using Google Sign-In.
When a user logs in:
Google authenticates the user via OAuth
No passwords are handled or stored by the app
A secure access token is issued to the client
This ensures:
High security
Simple onboarding
No custom authentication backend
Google Drive as the Database
After authentication, Enjoy Movie creates a private application folder inside the user’s Google Drive.
This folder stores:
watch-history.jsonwatchlist.jsonprogress.jsonpreferences.json
All data is stored as structured JSON files.
Why Google Drive Works as a Database
Every user already has Drive storage
Files are permission-restricted to the user
Google handles redundancy and reliability
No database setup or scaling required
From the app’s perspective, Google Drive behaves like a personal cloud database per user.
Real-Time Sync Without Any Backend
Whenever a user:
Marks a movie as watched
Updates progress
Modifies preferences
The app:
Updates the local state
Writes changes to the corresponding JSON file in Google Drive
Relies on Google Drive’s sync to propagate changes across devices
This creates a real-time sync experience without:
WebSocket servers
Background jobs
Custom sync logic
Technical Architecture Diagram
Below is a simplified representation of how Enjoy Movie works end-to-end.
┌─────────────────────┐
│ User Browser │
│ (Enjoy Movie App) │
└─────────┬───────────┘
│
│ Google OAuth
▼
┌─────────────────────┐
│ Google Sign-In │
│ Authentication │
└─────────┬───────────┘
│ Access Token
▼
┌──────────────────────────────┐
│ Google Drive API │
│ (User-Owned App Folder) │
│ │
│ - watch-history.json │
│ - watchlist.json │
│ - progress.json │
│ - preferences.json │
└──────────────────────────────┘
▲
│ Read / Write
│
┌─────────┴───────────┐
│ Enjoy Movie App │
│ (Client-Side Only) │
└─────────────────────┘
Key Architectural Properties
No backend servers
No centralized database
Each user owns their data
Google handles authentication, storage, and sync
Privacy-First by Design
This architecture provides strong privacy guarantees:
No user data is stored on my servers
I cannot view or access watch history
Data never passes through any backend I control
Users can delete all data by removing the app folder from Drive
Users fully own their information.
Infrastructure Cost Breakdown
Running Enjoy Movie costs exactly:
|
|
|
|
|
|
|
|
|
|
All infrastructure is provided by Google’s existing services.
Benefits of This Architecture
This model works best when:
Data is user-specific
Privacy matters
Zero operational cost is desired
Automatic scaling is required
Minimal maintenance is preferred
Each new user effectively brings their own backend.
Limitations to Consider
This approach is not suitable if your app requires:
Social feeds or shared user data
Server-side processing
Aggregated analytics across users
For a personal movie-tracking app like Enjoy Movie, it is an ideal solution.
Final Thoughts
Enjoy Movie demonstrates that you can build a modern, scalable web app without servers, databases, or paid infrastructure.
By leveraging Google Sign-In and Google Drive:
The app remains fully serverless
User data stays private
Costs remain zero
Scaling happens automatically
Sometimes, the best backend is no backend at all.