-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
This page answers common questions about NQ installation, setup, usage, and troubleshooting.
NQ (Next in Queue) is a smart media recommendation system that helps you decide what to watch, play, read, or listen to next. It connects to your accounts on services like Spotify, Steam, YouTube, and more to understand your preferences and suggest content you'll enjoy.
NQ is designed for anyone who:
- Has trouble deciding what to watch, play, or read next
- Uses multiple streaming and media services
- Wants personalized recommendations based on their actual preferences
- Enjoys discovering new content similar to what they already like
NQ currently supports:
- Music: Spotify, Apple Music, YouTube Music
- Games: Steam, Twitch
- Video: YouTube, Movies/TV via TMDB
- Books: Open Library
- Articles: Instapaper
Yes, NQ is free and open source under the MIT license. However, some of the external services it connects to may require their own subscriptions (like Spotify Premium or Steam).
No! NQ is designed to work with whatever services you want to connect. You only need API keys for the services you plan to use. The system gracefully handles missing credentials.
You need three main things:
- Go (version 1.25.1 or newer) - For running the backend server
- Node.js (version 18 or newer) - For running the mobile app
- Neo4j database - Either a free cloud instance or local installation
See the Installation Guide for detailed setup instructions.
Cloud (Neo4j Aura) - Recommended for beginners:
- Free tier available
- No installation needed
- Automatic backups
- Easy setup
Local Installation - For developers or advanced users:
- Full control over data
- No internet required after setup
- Useful for development
NQ is currently in development and does require some technical setup (installing software, configuring API keys). If you're comfortable following step-by-step instructions and have used command-line tools before, you should be able to get it running. Future versions will aim to simplify the setup process.
Typical installation time:
- Installing prerequisites (Go, Node.js, Neo4j): 15-30 minutes
- Setting up the backend: 10-15 minutes
- Setting up the frontend: 5-10 minutes
- Getting API keys: Varies (5-60 minutes depending on how many services)
Total: 30 minutes to 2 hours depending on your experience level and how many integrations you want.
Each service has its own process for getting API keys. See the API Data Sources page for detailed instructions for each service. Most are free for personal use.
Most APIs NQ uses offer free tiers that are sufficient for personal use:
- Free: Open Library, YouTube, Spotify, Steam, IGDB, TMDB
- Requires Developer Account: Apple Music (requires Apple Developer Program membership - $99/year)
- Free with Account: Instapaper (uses your regular account credentials)
The .env file stores your configuration and API credentials. It's like a secure settings file. Copy .envtemplate to .env and fill in your information. See the Installation Guide for detailed instructions.
Your API keys are stored locally in the .env file on your computer. This file should never be shared or committed to version control (it's in .gitignore by default). Your data stays on your Neo4j database - either on your computer (local) or in your private cloud instance (Aura).
Absolutely! NQ works with any combination of services. Start with just one or two that you use most, and add more later if you want.
- Start the backend server (in the
backendfolder, rungo run .) - Start the mobile app (in the
nq-frontendfolder, runnpx expo start) - Open the app on your phone or emulator
- Connect your media accounts through the app
NQ builds a graph of your media consumption:
- It syncs your activity from connected services (what you've watched, played, listened to)
- It enriches this data with metadata (genres, creators, themes, etc.)
- It analyzes relationships between media items in the graph database
- It calculates "fitness scores" for potential recommendations based on your preferences
This depends on your configuration and usage. You can trigger manual syncs through the app, or the system can sync periodically. The frequency is configurable.
Yes! The backend provides a GraphQL API that you can access directly through the GraphQL Playground at http://localhost:8080. This is useful for developers or if you want to build your own interface.
The backend needs internet to sync data from external services. However, once data is synced to your Neo4j database, you can query it offline. The mobile app requires connection to your backend server.
Check these common issues:
-
Port 8080 already in use
- Another program is using port 8080
- Solution: Stop the other program, or change NQ's port in
.env
-
Can't connect to Neo4j
- Check your Neo4j credentials in
.env - Make sure your Neo4j instance is running
- Verify the URI format:
neo4j+s://xxxxx.databases.neo4j.io(cloud) orbolt://localhost:7687(local)
- Check your Neo4j credentials in
-
Missing .env file
- You need to create it:
cp .envtemplate .env - Then fill in your configuration
- You need to create it:
-
Go not found
- Install Go from https://go.dev/dl/
- Verify installation:
go version
Common issues:
-
Packages not installed
- Run
npm installin thenq-frontendfolder
- Run
-
Metro bundler errors
- Clear cache:
npx expo start -c - Delete
node_modulesand runnpm installagain
- Clear cache:
-
Can't connect to backend
- Make sure the backend is running (
go run .in backend folder) - Check that it's accessible at
http://localhost:8080
- Make sure the backend is running (
-
Node.js version too old
- Update to Node.js 18 or newer
- Check version:
node --version
Debugging steps:
-
Verify API credentials
- Check that the API key/credentials in
.envare correct - Make sure there are no extra spaces or quotes
- Check that the API key/credentials in
-
Check API key permissions
- Some APIs require enabling specific permissions or scopes
- Verify the key is active and not expired
-
Rate limiting
- You may have exceeded the API's rate limit
- Wait a bit and try again
- Check the API's documentation for rate limits
-
Service-specific issues
- Check the API Data Sources page for service-specific troubleshooting
Common causes:
-
Backend not running
- Start it:
cd backend && go run .
- Start it:
-
Wrong URL
- Make sure you're visiting
http://localhost:8080(not https)
- Make sure you're visiting
-
Query syntax error
- Use the playground's auto-complete (Ctrl+Space)
- Check the schema documentation in the playground
Solutions:
-
"Connection refused"
- Neo4j isn't running
- For Aura: Check your internet connection
- For local: Start Neo4j Desktop or service
-
"Authentication failed"
- Check username/password in
.env - Neo4j Aura default username is usually
neo4j
- Check username/password in
-
"Database not found"
- Verify the database name in
.env - For Aura: Usually
neo4j - For local: Check Neo4j Desktop for database name
- Verify the database name in
Complete reset:
- Stop the backend and frontend
- Delete your Neo4j database (or create a new Aura instance)
- Update
.envwith new database credentials - Restart the backend:
cd backend && go run . - Restart the frontend:
cd nq-frontend && npx expo start
Just reset API connections:
- Remove and re-add your API credentials in
.env - Restart the backend
The first sync downloads a lot of data from your connected services:
- Large libraries (1000+ games on Steam, for example) take time
- API rate limits slow down requests to prevent overwhelming services
- Metadata enrichment (fetching details for each item) adds time
This is normal! Subsequent syncs are much faster since they only update changes.
Yes! The integration manager allows you to sync services individually. This can be faster and easier to troubleshoot.
- Backend + dependencies: ~100-200 MB
- Frontend + dependencies: ~500 MB - 1 GB
- Neo4j database: Varies based on library size
- Small library (100-500 items): ~10-50 MB
- Medium library (500-2000 items): ~50-200 MB
- Large library (2000+ items): ~200 MB - 1 GB+
Yes! NQ is open source. Check out the repository and feel free to submit issues or pull requests.
Backend:
cd backend
go test ./...Frontend:
cd nq-frontend
npm run lint
npx tsc --noEmitThe GraphQL API is self-documenting. Start the backend and visit http://localhost:8080 to explore the interactive schema documentation.
Yes! The integration framework is designed to be extensible. See the existing integrations in backend/integrations/ for examples. You'll need to:
- Implement the
Integrationinterface - Add configuration for API credentials
- Map the service's data to NQ's media model
NQ only collects data you explicitly authorize:
- Your media consumption history from connected services
- Public metadata about media items (titles, descriptions, etc.)
- Your preferences and interactions within the app
NQ is self-hosted, meaning all your data stays on your own infrastructure.
No. NQ runs entirely on your own computer/infrastructure. It doesn't send your data to any third-party servers except when syncing from the services you've authorized (Spotify, Steam, etc.).
Yes. Since you control the database:
- Delete specific items through the GraphQL API
- Delete your entire database to remove all data
- Stop using NQ at any time and delete the installation
No. There's no analytics, tracking, or monitoring built into NQ. It's completely private and runs locally.
While NQ currently focuses on the mobile app, a web interface is possible. The GraphQL API is already built to support any client.
Potentially! Popular requests include:
- Goodreads (books)
- Last.fm (music scrobbling)
- Letterboxd (movies)
- PlayStation Network (games)
- Xbox Live (games)
Feature requests are welcome - submit them as GitHub issues.
Not currently. NQ is designed for self-hosting to maintain privacy and control. A hosted version may be considered in the future.
- Check the User Guide for step-by-step instructions
- Review the Installation Guide for setup help
- See Usage Guide for development workflow
- Check the API Data Sources for API-specific issues
- Submit an issue on the GitHub repository
Submit a GitHub issue with:
- Description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Error messages (if any)
- Your environment (OS, Go version, Node version)
Submit a GitHub issue describing:
- What you'd like to add or change
- Why it would be useful
- How you envision it working
- Home - Wiki home page
- Installation Guide - Detailed setup instructions
- User Guide - Step-by-step how-to guide
- Tech Stack - Technologies used
- API Data Sources - External API documentation
- Usage Guide - Development and usage information