Skip to content

CHarnel/starfield-companion

Repository files navigation

🚀 Starfield Companion

A mobile companion app for Starfield — browse and search the full game database on your phone. Built with React Native and Expo for iOS and Android.

Fully client-side. No backend, no accounts, no tracking. All game data is bundled in the app.

🤖 About this project

Author: Alex Margulis

This is a vibe coding experiment. Although I'm a software engineer, this entire repository — every line of code, every config file — was generated by AI with zero manual coding. The goal is to explore what's possible when you treat AI as the sole implementer and act purely as a product owner and reviewer.

📋 What's in the app

A searchable database covering 30 Starfield data categories across 6 groups:

  • 🧑‍🚀 Character — Skills, Traits, Powers, Status Effects
  • ⚔️ Weapons & Gear — Weapons, Pistols, Shotguns, Apparel, Weapon Mods, Armor Mods, Prefixes
  • 🛸 Ship Parts — Cockpits, Engines, Reactors, Grav Drives, Fuel Tanks, Shield Generators, Ship Weapons, Structural Components, Habs, Landing Gears, Bays, Dockers
  • 🌌 World — Planets & Moons, Temples
  • 🎒 Items — Resources, Materials, Consumables
  • 🔧 Crafting — Recipes, Research

Features:

  • Browse categories from a grouped home screen
  • Global fuzzy search across all data (powered by Fuse.js)
  • Filter within any category
  • Generic detail view that adapts to any data schema

🎨 Visual design

The UI is inspired by Starfield's in-game "NASApunk" aesthetic — dark backgrounds, blue accents, thin line separators, sharp rectangles, uppercase letterspaced section headers. Typography uses Exo 2 (headings) and Inter (body) as free alternatives to the game's proprietary NB Architekt and NB Grotesk R fonts.

🛠 Tech stack

  • Expo SDK 54 (managed workflow) with Expo Router for file-based navigation
  • TypeScript throughout
  • Fuse.js for client-side fuzzy search
  • Data registry pattern — adding a new data source means adding one entry to src/data/registry.ts, nothing else

📁 Architecture

app/                        Expo Router screens
  (tabs)/                   Bottom tab navigator (Browse + Search)
  category/[id].tsx         Category item list
  item/[categoryId]/[index] Item detail view

src/
  data/
    json/                   31 bundled JSON data files
    registry.ts             Category definitions catalog
    types.ts                Shared type definitions
  components/               Reusable UI components
  hooks/                    useCategory, useSearch, useFilteredList
  services/search.ts        Fuse.js search index
  theme/                    Colors, spacing, typography

▶️ Getting started

# Install dependencies
npm install

# Start the dev server
npx expo start

Scan the QR code with Expo Go on your phone, or press i for iOS simulator / a for Android emulator.

📦 Data sources

Game data is sourced from the starfield-data community repository. Star system coordinates are extracted from game files via uesp/sf-testesm. The JSON files are bundled directly in the app at src/data/json/.

🏗 CI/CD — GitHub Actions builds

This project builds on GitHub Actions instead of EAS Build cloud, eliminating queue wait times. Standard GitHub-hosted runners are free and unlimited for public repositories.

Running a build

  1. Go to the Actions tab in the GitHub repo
  2. Select the Build App workflow
  3. Click Run workflow and pick:
    • Platformandroid, ios, or all
    • Profiledevelopment (iOS sim), development-device (iOS real device), preview, or production
    • Submit — check to auto-upload production builds to App Store / Play Store

Build artifacts (.apk / .ipa) are downloadable from the workflow run page. Dev and preview builds are also uploaded to Diawi for wireless installation — the install link and QR code appear in the run summary.

Required secrets

Set these in Settings → Secrets and variables → Actions on the GitHub repo:

Secret Required Purpose
EXPO_TOKEN Yes Expo access token for EAS CLI auth. Handles build signing credentials and store submission credentials — all managed by Expo. Create at expo.dev under Account Settings > Access Tokens.
DIAWI_TOKEN For wireless install Diawi API token for OTA distribution of dev/preview builds. Create a free account at diawi.com.

Build profiles

Profile Android iOS Distribution
development .apk (emulator + device) .app (simulator only) Diawi (Android) / artifact download (iOS)
development-device .apk (emulator + device) .ipa (real device) Diawi
preview .apk .ipa Diawi
production .aab .ipa App Store / Play Store via eas submit

🐛 Bugs & suggestions

Found a bug or have an idea? Open an issue on GitHub — there are templates for bug reports and feature requests to help you get started.

License

MIT

This is an unofficial fan project and is not affiliated with, endorsed by, or connected to Bethesda Game Studios, ZeniMax Media, or Microsoft. Starfield and all related marks are trademarks of their respective owners.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors