This is a RoxyAPI starter app. A cross platform Western astrology app built with React Native, Expo SDK 57, and TypeScript. Runs on iOS, Android, and Web from one codebase. Demonstrates horoscopes, natal charts, synastry, composite charts, compatibility scoring, planetary positions, moon phase, and zodiac references, all powered by the RoxyAPI Astrology API through the official @roxyapi/sdk.
- Get an API key at https://roxyapi.com/pricing
- Create
.envin the project root with:EXPO_PUBLIC_ROXYAPI_KEY=your_api_key_here
- Install with
npm install - Run with
npm start, thennpm run ios,npm run android, ornpm run web - Test with
npm test, typecheck withnpm run typecheck
- The only data layer is
@roxyapi/sdk.createRoxy(key)sets the base URL and the auth header, and ships its own types from the OpenAPI spec, so there is no generated schema file to keep in sync. - The key is bundled into the app (mobile has no server). Treat
EXPO_PUBLIC_ROXYAPI_KEYas a public, restricted key locked to your bundle id, or proxy calls through a backend you control. - Charts need latitude, longitude, and timezone. Never ask users to type coordinates. Geocode the birth city with
roxy.location.searchCitiesfirst, then feedcity.latitude,city.longitude, andcity.timezone(the IANA string) straight into any chart call. - Live OpenAPI spec: https://roxyapi.com/api/v2/astrology/openapi.json
- Live playground: https://roxyapi.com/api-reference
roxy.location.searchCitiesto geocode a birth city into latitude, longitude, and timezoneroxy.astrology.listZodiacSignsandroxy.astrology.getZodiacSignfor the zodiac reference libraryroxy.astrology.getDailyHoroscope,roxy.astrology.getWeeklyHoroscope,roxy.astrology.getMonthlyHoroscopefor readingsroxy.astrology.generateNatalChartfor a full birth chart with planets, houses, and aspectsroxy.astrology.calculateSynastryfor relationship cross aspect analysisroxy.astrology.calculateCompatibilityfor a numeric compatibility breakdownroxy.astrology.generateCompositeChartfor a combined relationship chartroxy.astrology.getPlanetaryPositionsandroxy.astrology.getCurrentMoonPhasefor current cosmic information
src/api/client.tsis the single Roxy SDK client and thehasApiKeyguard.src/api/astrology.tswraps theroxy.astrology.*androxy.location.*methods used by screens and unwraps the SDK{ data, error }result.src/api/types.tsre-exports the SDK response types under app friendly names.src/components/CityPicker.tsxis the reusable geocoding picker. Reuse it for any new screen that needs a location.app/(tabs)/holds the tab screens:index.tsx(horoscopes),charts.tsx,cosmos.tsx,signs.tsx,tools.tsx.
- All RoxyAPI calls go through
src/api/. Do not callfetchor the SDK directly from screens. - Method names and body fields come from the SDK types, never invented. Verify against the OpenAPI spec.
- Verified accuracy claims are cross referenced against NASA JPL Horizons. Never claim the calculation engine is open source. The public framing is Roxy Ephemeris.
- TypeScript SDK: https://github.com/RoxyAPI/sdk-typescript (npm:
@roxyapi/sdk) - Python SDK: https://github.com/RoxyAPI/sdk-python (PyPI:
roxy-sdk) - MCP servers: https://roxyapi.com/docs/mcp
- Methodology and accuracy: https://roxyapi.com/methodology
- More starters: https://roxyapi.com/starters
- Pricing: https://roxyapi.com/pricing