DEV Community

Vedika Intelligence
Vedika Intelligence

Posted on

Add a Birth Chart Feature to Your React App in 15 Minutes

I spent 3 months learning Vedic astrology calculations. Then I realized I could just use an API.

Here's how to add a full birth chart feature to your React app in 15 minutes.

What We're Building

A component that takes a user's birth details and displays their complete Vedic birth chart - planets, houses, nakshatras, and AI-powered insights.

Prerequisites

  • React 18+
  • A Vedika API key (free sandbox available)

Step 1: Install Dependencies

npm install axios
Enter fullscreen mode Exit fullscreen mode

Step 2: Create the Birth Chart Component

// components/BirthChart.jsx
import { useState } from 'react';
import axios from 'axios';

const VEDIKA_API = 'https://api.vedika.io/v1/astrology/query';

export function BirthChart({ apiKey }) {
  const [birthDetails, setBirthDetails] = useState({
    datetime: '',
    latitude: '',
    longitude: ''
  });
  const [chart, setChart] = useState(null);
  const [loading, setLoading] = useState(false);

  const fetchChart = async () => {
    setLoading(true);
    try {
      const response = await axios.post(VEDIKA_API, {
        question: "Give me a complete birth chart analysis with planetary positions, house placements, and key yogas",
        birthDetails: {
          datetime: birthDetails.datetime,
          latitude: parseFloat(birthDetails.latitude),
          longitude: parseFloat(birthDetails.longitude)
        }
      }, {
        headers: {
          'Content-Type': 'application/json',
          'x-api-key': apiKey
        }
      });
      setChart(response.data);
    } catch (error) {
      console.error('Chart fetch failed:', error);
    }
    setLoading(false);
  };

  return (
    <div className="birth-chart">
      <h2>Generate Your Birth Chart</h2>
      <div className="form">
        <input
          type="datetime-local"
          value={birthDetails.datetime}
          onChange={(e) => setBirthDetails({...birthDetails, datetime: e.target.value})}
        />
        <input
          type="number"
          step="0.0001"
          value={birthDetails.latitude}
          onChange={(e) => setBirthDetails({...birthDetails, latitude: e.target.value})}
          placeholder="Latitude (e.g., 28.6139)"
        />
        <input
          type="number"
          step="0.0001"
          value={birthDetails.longitude}
          onChange={(e) => setBirthDetails({...birthDetails, longitude: e.target.value})}
          placeholder="Longitude (e.g., 77.2090)"
        />
        <button onClick={fetchChart} disabled={loading}>
          {loading ? 'Calculating...' : 'Generate Chart'}
        </button>
      </div>
      {chart && (
        <div className="results">
          <h3>Your Birth Chart Analysis</h3>
          <div className="answer">{chart.answer}</div>
        </div>
      )}
    </div>
  );
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Use It

import { BirthChart } from './components/BirthChart';

function App() {
  return (
    <BirthChart apiKey="your-vedika-api-key" />
  );
}
Enter fullscreen mode Exit fullscreen mode

What's Happening Behind the Scenes

When you call the Vedika API, it:

  1. Calculates exact planetary positions using Swiss Ephemeris
  2. Determines house placements based on your birth location
  3. Identifies nakshatras (lunar mansions) for each planet
  4. Runs a 6-agent AI swarm to interpret the chart
  5. Returns both raw data AND natural language insights

Try It Free

The sandbox at api.vedika.io/sandbox returns mock data - perfect for development.

Full API docs: vedika.io/docs


What would you build with an astrology API? Drop your ideas in the comments!

Top comments (0)