ಡೈರೆಕ್ಟರಿ ಸೈಟ್ ನಿರ್ಮಿಸುವುದು ಬಹಳ ಸುಲಭ ಎಂದು ಅನ್ನಿಸಬಹುದು, ಆದರೆ ನೀವು ಡೇಟಾಬೇಸ್‌ಗಳು, ಕ್ಯಾಷಿಂಗ್ ಲೇಯರ್‌ಗಳು ಮತ್ತು ರಿಯಾಕ್ಟಿವ್ ಫ್ರಂಟ್-ಎಂಡ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳನ್ನು ಕೇವಲ ಒಂದು ಸುಸಜ್ಜಿತ ಪರಿವಿಡಿಯನ್ನು (table of contents) ಪ್ರದರ್ಶಿಸಲು ಜೋಡಿಸಬೇಕಾದ ಪರಿಸ್ಥಿತಿ ಬಂದಾಗ ಅದು ಅಷ್ಟು ಸುಲಭವಲ್ಲ ಎಂದು ತಿಳಿಯುತ್ತದೆ. ನಾನು ಇತ್ತೀಚೆಗೆ ಸೋಶಿಯಲ್ ಮೀಡಿಯಾ ಸಾಫ್ಟ್‌ವೇರ್‌ಗಳನ್ನು ಹೋಲಿಕೆ ಮಾಡಲು Social Tools List ಎಂಬ ಸೈಟ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ. ಇದನ್ನು ಶೀಘ್ರವಾಗಿ ಆನ್‌ಲೈನ್ ತರಲು, ವೇಗವಾಗಿ ಇರಿಸಲು ಮತ್ತು ನಾನು ಒಂದು ಟೂಲ್ ಅನ್ನು ಸೇರಿಸಿದಾಗ ಅಥವಾ ಅಪ್‌ಡೇಟ್ ಮಾಡಿದಾಗ ಮಾತ್ರ ಬದಲಾಗುವ ಕಂಟೆಂಟ್‌ಗಾಗಿ ಮೂಲಸೌಕರ್ಯವನ್ನು (infrastructure) ನಿರ್ವಹಿಸುವುದನ್ನು ತಪ್ಪಿಸುವುದು ನನ್ನ ಗುರಿಯಾಗಿತ್ತು. ನಾನು ಸ್ಟ್ಯಾಟಿಕ್-ಫಸ್ಟ್ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡೆ: ಸೈಟ್ ಜನರೇಷನ್‌ಗಾಗಿ Astro, ಸ್ಟ್ರಕ್ಚರ್ಡ್ ಡೇಟಾಕ್ಕಾಗಿ TypeScript ಮತ್ತು ಡಿಪ್ಲಾಯ್‌ಮೆಂಟ್‌ಗಾಗಿ Cloudflare Workers. ಇದರ ಪರಿಣಾಮವಾಗಿ ಸೈಟ್ ತಕ್ಷಣವೇ ಲೋಡ್ ಆಗುತ್ತದೆ, ಹೋಸ್ಟ್ ಮಾಡಲು ವೆಚ್ಚ ಬಹಳ ಕಡಿಮೆ ಮತ್ತು ಯಾವುದೇ ಡೇಟಾಬೇಸ್ ಅಡ್ಮಿನಿಸ್ಟ್ರೇಷನ್ ಅಗತ್ಯವಿಲ್ಲ.

ಡೈರೆಕ್ಟರಿಗಾಗಿ ಸ್ಟ್ಯಾಟಿಕ್-ಫಸ್ಟ್ ಏಕೆ ಸೂಕ್ತ?

ಅನೇಕ ವೆಬ್ ಆಪ್‌ಗಳು ಸರ್ವರ್ ರೆಂಡರಿಂಗ್ ಅಥವಾ ಸಿಂಗಲ್-ಪೇಜ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳನ್ನು ಬಳಸುತ್ತವೆ ಏಕೆಂದರೆ ಅವು ಸುರಕ್ಷಿತ ಮತ್ತು ಆಧುನಿಕ ಆಯ್ಕೆಗಳಂತೆ ಕಾಣುತ್ತವೆ. ಆದರೆ ಪ್ರತಿಯೊಂದು ಸೈಟ್ ಪ್ರತಿ ವಿನಂತಿಯಲ್ಲೂ (request) ಡೈನಾಮಿಕ್ ಬಳಕೆದಾರರ ಇನ್‌ಪುಟ್ ಅನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. Social Tools List ಎಂಬುದು ಹೆಚ್ಚು ಓದುವಿಕೆಯನ್ನು (read-heavy) ಹೊಂದಿರುವ ಸಂಪನ್ಮೂಲವಾಗಿದೆ. ವೀಕ್ಷಕರು ಪೇಜ್ ಅನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿದಾಗ ಅಲ್ಲ, ಬದಲಾಗಿ ನಾನು ಅಪ್‌ಡೇಟ್ ನೀಡಿದಾಗ ಮಾತ್ರ ಹೋಲಿಕೆಯ ಡೇಟಾ ಬದಲಾಗುತ್ತದೆ. ಮುಂಚಿತವಾಗಿ HTML ಅನ್ನು ರೆಂಡರ್ ಮಾಡುವುದರಿಂದ ಎಡ್ಜ್‌ನಲ್ಲಿ ಡೇಟಾಬೇಸ್ ಕ್ವೇರಿಗಳು, ಆನ್ ದಿ ಫ್ಲೈ ಟೆಂಪ್ಲೇಟ್ ಕಂಪಿಲೇಶನ್ ಅಥವಾ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಹೈಡ್ರೇಶನ್ (hydration) ಓವರ್‌ಹೆಡ್‌ನ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. ನಾನು ಬಿಲ್ಡ್ ಸಮಯದಲ್ಲಿ ಸೈಟ್ ಅನ್ನು ಜನರೇಟ್ ಮಾಡುತ್ತೇನೆ, ಸ್ಟ್ಯಾಟಿಕ್ ಫೈಲ್‌ಗಳನ್ನು ಡಿಪ್ಲಾಯ್ ಮಾಡುತ್ತೇನೆ ಮತ್ತು ಲೈಟ್‌ವೇಟ್ ವರ್ಕರ್ ಅನ್ನು ವ್ರ್ಯಾಪರ್ ನಿರ್ವಹಿಸಲು ಬಿಡುತ್ತೇನೆ. ಇದು ರೆಸ್ಪಾನ್ಸ್ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ರನ್‌ಟೈಮ್ ವೈಫಲ್ಯಗಳ ಒಂದು ಇಡೀ ವರ್ಗವನ್ನೇ ತಪ್ಪಿಸುತ್ತದೆ.

ಡೇಟಾವನ್ನು ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಅಲ್ಲದೆ, TypeScript ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿ

ನಾನು ಡೇಟಾಬೇಸ್ ಬಳಸುವುದಿಲ್ಲ. ಡೈರೆಕ್ಟರಿಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಟೂಲ್ ಅನ್ನು slug, name, domain ಮತ್ತು ಬೆಂಬಲಿತ workflows ಗಳ ಅರೇ (array) ಹೊಂದಿರುವ TypeScript ಆಬ್ಜೆಕ್ಟ್ ಆಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಒಂದು ಸಾಮಾನ್ಯ ಎಂಟ್ರಿ ಹೀಗಿರುತ್ತದೆ:

{
  slug: 'buffer',
  name: 'Buffer',
  domain: 'buffer.com',
  workflows: ['scheduling', 'analytics']
}

ಸೈಟ್ ಅನ್ನು ನಿರ್ಮಿಸುವ ಅದೇ ಭಾಷೆಯಲ್ಲಿ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವುದರಿಂದ ಎರಡು ತಕ್ಷಣದ ಪ್ರಯೋಜನಗಳಿವೆ. ಮೊದಲನೆಯದಾಗಿ, ಪಲ್ ರಿಕ್ವೆಸ್ಟ್‌ಗಳು ಕಂಟೆಂಟ್ ರಿವ್ಯೂಗಳಾಗುತ್ತವೆ. ನಾನು ಒಂದು ಟೂಲ್ ಅನ್ನು ಸೇರಿಸಿದಾಗ, 'diff' ನಿಖರವಾದ ಫೀಲ್ಡ್‌ಗಳು ಮತ್ತು ಮೌಲ್ಯಗಳನ್ನು ತೋರಿಸುತ್ತದೆ, ಮತ್ತು ನನ್ನ ಸಹೋದ್ಯೋಗಿಯು CMS ಇಂಟರ್ಫೇಸ್ ಕಲಿಯುವ ಅಗತ್ಯವಿಲ್ಲದೆ ಟೈಪೋ ಅಥವಾ ತಪ್ಪಾದ ಡೊಮೇನ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಗುರುತಿಸಬಹುದು. ಎರಡನೆಯದಾಗಿ, TypeScript ಕಂಪಿಲರ್ ಪ್ರತಿಯೊಂದು ರೆಕಾರ್ಡ್‌ನ ಸ್ವರೂಪವನ್ನು (shape) ಕಡ್ಡಾಯಗೊಳಿಸುತ್ತದೆ. ನಾನು slug ಸೇರಿಸಲು ಮರೆತರೆ ಅಥವಾ workflow ಕೀಯನ್ನು ತಪ್ಪಾಗಿ ಬರೆದರೆ, ತಪ್ಪಾದ ಡೇಟಾ ಪೇಜ್‌ಗೆ ತಲುಪುವ ಮೊದಲೇ ಬಿಲ್ಡ್ ಫೇಲ್ ಆಗುತ್ತದೆ.

ಡೇಟಾಬೇಸ್ ಬಳಸುವುದರಿಂದ ಮೈಗ್ರೇಷನ್‌ಗಳು, ಕನೆಕ್ಷನ್ ಸ್ಟ್ರಿಂಗ್‌ಗಳು, ಕ್ಯಾಷಿಂಗ್ ಸ್ಟ್ರಾಟಜಿಗಳು ಮತ್ತು ಬ್ಯಾಕಪ್ ರೂಟೀನ್‌ಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ. ನಾನು ಸ್ವತಃ ನಿರ್ವಹಿಸುವ ನೂರಾರು ಎಂಟ್ರಿಗಳನ್ನು ಹೊಂದಿರುವ ಡೈರೆಕ್ಟರಿಗಾಗಿ, ಈ ಓವರ್‌ಹೆಡ್ ಅನಗತ್ಯ ಹೊರೆಯಾಗುತ್ತದೆ. ಈ ಮಾದರಿಗೆ TypeScript ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿನ ಸ್ಟ್ಯಾಟಿಕ್ ಡೇಟಾ ಅತ್ಯಂತ ಕಡಿಮೆ ವೆಚ್ಚದ ಮತ್ತು ಸರಿಯಾದ ಆಯ್ಕೆಯಾಗಿದೆ. ಇಲ್ಲಿ 'ಸರಿಯಾದ' ಎಂಬ ಭಾಗ ಮುಖ್ಯವಾಗಿದೆ. ಇದು ಕೇವಲ ಹಣ ಉಳಿಸುವುದರ ಬಗ್ಗೆ ಮಾತ್ರವಲ್ಲ; ನನಗಿಲ್ಲದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವ ಅಬ್‌ಸ್ಟ್ರಾಕ್ಷನ್ ಲೇಯರ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುವ ಬಗ್ಗೆಯೂ ಆಗಿದೆ.

ರೂಟಿಂಗ್ ಮತ್ತು ರೆಂಡರಿಂಗ್ ಅನ್ನು Astro ಗೆ ಬಿಡಿ

Astro ಒಂದೇ ಡೈನಾಮಿಕ್ ರೂಟ್‌ನಿಂದ ಪ್ರತಿ ಟೂಲ್‌ಗಾಗಿ ಒಂದು HTML ಪೇಜ್ ಅನ್ನು ಜನರೇಟ್ ಮಾಡುತ್ತದೆ. ನಾನು ಒಂದು ಲೇಔಟ್ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೇನೆ ಮತ್ತು Astro ಪ್ರತಿಯೊಂದು ಎಂಟ್ರಿಗಾಗಿ ಮೆಟಾಡೇಟಾ, ಹೆಡಿಂಗ್‌ಗಳು ಮತ್ತು ಸ್ಟ್ರಕ್ಚರ್ಡ್ ಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಿದ್ಧಪಡಿಸುತ್ತದೆ. ಒಂದೇ ಡೇಟಾಸೆಟ್ ಮುಖ್ಯ ಇಂಡೆಕ್ಸ್, ವರ್ಕ್‌ಫ್ಲೋ ಕ್ಯಾಟಗರಿ ಹಬ್‌ಗಳು ಮತ್ತು ವೈಯಕ್ತಿಕ ವಿವರ ಪುಟಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದರಿಂದ, ಹೋಮ್ ಪೇಜ್‌ನಲ್ಲಿರುವ ಕಾರ್ಡ್ ವಿವರ ಪುಟಕ್ಕಿಂತ ಭಿನ್ನವಾದ ವಿವರಣೆಯನ್ನು ತೋರಿಸುವ ಸಾಧ್ಯತೆಯೇ ಇಲ್ಲ. ಸಾಂಪ್ರದಾಯಿಕ CMS ಸೆಟಪ್‌ಗಳಲ್ಲಿ, ನೀವು ಹೆಚ್ಚಾಗಿ ವ್ಯತ್ಯಾಸವನ್ನು (drift) ಕಾಣಬಹುದು: API ಒಂದು ಆವೃತ್ತಿಯನ್ನು ನೀಡುತ್ತದೆ, ಕ್ಯಾಶ್ ಇನ್ನೊಂದನ್ನು ಮತ್ತು ಕ್ಲೈಂಟ್-ಸೈಡ್ ರೆಂಡರ್ ಮೂರನೆಯದನ್ನು ನೀಡುತ್ತದೆ. ಒಂದೇ ಮೂಲ ಮಾಹಿತಿ (single source of truth) ಇರುವುದರಿಂದ ಸ್ಟ್ಯಾಟಿಕ್ ಜನರೇಷನ್ ಮಾಡುವುದರಿಂದ ಇದನ್ನು ತಡೆಯಬಹುದು.

ಇಡೀ ಪೇಜ್ ಅನ್ನು JavaScript ಮೂಲಕ ಭಾರೀ ಮಾಡದೆಯೇ ಸಣ್ಣ ಇಂಟರಾಕ್ಟಿವ್ ಭಾಗಗಳನ್ನು ಸೇರಿಸಲು Astro ನ ಐಲ್ಯಾಂಡ್ ಆರ್ಕಿಟೆಕ್ಚರ್ (island architecture) ಸುಲಭವಾಗಿಸುತ್ತದೆ. ಸೈಟ್ ಸ್ಟ್ಯಾಟಿಕ್ HTML ಆಗಿರುತ್ತದೆ ಮತ್ತು ಕೇವಲ ಫಿಲ್ಟರಿಂಗ್ ಸ್ಕ್ರಿಪ್ಟ್ ಮಾತ್ರ DOM ನ ನಿರ್ದಿಷ್ಟ ಭಾಗವನ್ನು ಹೈಡ್ರೇಟ್ ಮಾಡುತ್ತದೆ. ಇಡೀ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಸುತ್ತುವರಿಯುವ ಯಾವುದೇ ಫ್ರೇಮ್‌ವರ್ಕ್ ರನ್‌ಟೈಮ್ ಇಲ್ಲ. Astro ಪೇಜ್ ಮೆಟಾಡೇಟಾವನ್ನು ಪ್ರಮುಖವಾಗಿ ಪರಿಗಣಿಸುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಟೂಲ್ ಪೇಜ್ ತನ್ನದೇ ಆದ ಟೈಟಲ್ ಟ್ಯಾಗ್ ಮತ್ತು ಮೆಟಾ ಡಿಸ್ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ನೇರವಾಗಿ TypeScript ರೆಕಾರ್ಡ್‌ನಿಂದ ಪಡೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ನನಗೆ ಪ್ರತ್ಯೇಕ ಪ್ಲಗಿನ್ ಅಥವಾ ಹೆಡ್ ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ ಲೈಬ್ರರಿಯ ಅಗತ್ಯವಿಲ್ಲ.

ಫ್ರೇಮ್‌ವರ್ಕ್ ಇಲ್ಲದೆ ಫಿಲ್ಟರಿಂಗ್ ಮಾಡುವುದು

ಸರ್ಚ್ ಮತ್ತು ಫಿಲ್ಟರಿಂಗ್ ಮಾಡಲು ಸಾಮಾನ್ಯವಾಗಿ ಡೆವಲಪರ್‌ಗಳು React, Vue ಅಥವಾ ಭಾರೀ ಸ್ಟೇಟ್ ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ ಲೈಬ್ರರಿಯನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುತ್ತಾರೆ. ನಾನು ಅದನ್ನು ಮಾಡಲಿಲ್ಲ. Astro ಪೂರ್ಣ ಪಟ್ಟಿಯನ್ನು ಸರ್ವರ್‌ನಲ್ಲಿ ಪ್ಲೇನ್ HTML ಆಗಿ ರೆಂಡರ್ ಮಾಡುತ್ತದೆ. ಒಂದು ಕಿಲೋಬೈಟ್‌ಗಿಂತ ಕಡಿಮೆ ಗಾತ್ರದ ಸಣ್ಣ ವ್ಯಾನಿಲಾ JavaScript ಸ್ಕ್ರಿಪ್ಟ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಟ್ಯಾಗ್ ಅಥವಾ ಪಠ್ಯದ ಹೊಂದಾಣಿಕೆಯ ಆಧಾರದ ಮೇಲೆ ಲಿಸ್ಟ್ ಐಟಂಗಳ ಡಿಸ್‌ಪ್ಲೇ ಪ್ರಾಪರ್ಟಿಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ.

ನೀವು API-ಚಾಲಿತ ಹಿನ್ನೆಲೆಯಿಂದ ಬಂದವರಾಗಿದ್ದರೆ, ಸಂಪೂರ್ಣ ಮಾರ್ಕಪ್ ಅನ್ನು ನೀಡುವ ವಿಧಾನವು ಅಸಮರ್ಥವಾಗಿ ಕಾಣಿಸಬಹುದು. ಆದರೆ ಒಂದು ಸಾಮಾನ್ಯ ಡೈನಾಮಿಕ್ ವಿಧಾನದ ಹೊರೆಯನ್ನು (overhead) ಪರಿಗಣಿಸಿ. ಬ್ರೌಸರ್ ಒಂದು JavaScript ಬಂಡಲ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀ ಅನ್ನು ಹೈಡ್ರೇಟ್ ಮಾಡುತ್ತದೆ, ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗೆ ಕರೆ ಮಾಡುತ್ತದೆ, JSON ಗಾಗಿ ಕಾಯುತ್ತದೆ ಮತ್ತು ನಂತರ ಸಾಲುಗಳನ್ನು ರೆಂಡರ್ ಮಾಡುತ್ತದೆ. ನೂರು ಕ್ಕಿಂತ ಕಡಿಮೆ ಪರಿಕರಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುವ ಡೈರೆಕ್ಟರಿಯ ವಿಷಯದಲ್ಲಿ, ಈಗಾಗಲೇ ಡಾಕ್ಯುಮೆಂಟ್‌ನಲ್ಲಿರುವ div ಗಳನ್ನು ಅಡಗಿಸುವುದಕ್ಕಿಂತ ಈ ಪ್ರಕ್ರಿಯೆಯು ನಿಧಾನ ಮತ್ತು ಕಡಿಮೆ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದೆ. ನನ್ನ ಸ್ಕ್ರಿಪ್ಟ್ ಫಿಲ್ಟರ್ ಬಟನ್‌ಗಳಿಗೆ ಇವೆಂಟ್ ಲಿಸನರ್‌ಗಳನ್ನು ಜೋಡಿಸುತ್ತದೆ, ಪ್ರತಿ ಸಾಲಿನ data-workflow ಅಟ್ರಿಬ್ಯೂಟ್ ಅನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಹೊಂದಿಕೆಯಾಗದವುಗಳನ್ನು hidden ಎಂದು ಸೆಟ್ ಮಾಡುತ್ತದೆ. ಈ ಕಾರ್ಯಾಚರಣೆಯು ಮಿಲಿಸೆಕೆಂಡುಗಳ ಕಾಲ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

ಪಟ್ಟಿಯು ಆರಂಭಿಕ HTML ನಲ್ಲಿ ಇರುವುದರಿಂದ, JavaScript ಇಲ್ಲದೆಯೂ ಸೈಟ್ ಅನ್ನು ಬಳಸಬಹುದು. ಸರ್ಚ್ ಇಂಜಿನ್ ಕ್ರಾಲರ್‌ಗಳು ಪ್ರತಿಯೊಂದು ಲಿಂಕ್ ಮತ್ತು ಪ್ರತಿಯೊಂದು ವಿವರಣೆಯನ್ನು ನೋಡುತ್ತವೆ. ನಿಧಾನಗತಿಯ ನೆಟ್‌ವರ್ಕ್ ಅಥವಾ ಸ್ಕ್ರಿಪ್ಟ್ ಬ್ಲಾಕರ್ ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಕೂಡ ಸಂಪೂರ್ಣ ಡೈರೆಕ್ಟರಿಯನ್ನು ಪಡೆಯುತ್ತಾರೆ. ಫಿಲ್ಟರಿಂಗ್ ಎಂಬುದು ಒಂದು ಸುಧಾರಣೆಯಾಗಿದೆಯೇ ಹೊರತು, ಅದು ಪ್ರವೇಶಕ್ಕೆ ಅಡ್ಡಿಯಾಗುವ ಬಾಗಿಲಲ್ಲ.

Sitemaps and Robots as Code

ಸೈಟ್‌ಮ್ಯಾಪ್‌ಗಳು ಮತ್ತು robots.txt ಎಂಬುದು ಕೈಯಿಂದ ಬರೆಯಲಾದ ನಂತರದ ಆಲೋಚನೆಗಳಲ್ಲ. ಅವು ಒಂದೇ ಡೇಟಾಸೆಟ್ ಮತ್ತು URL ಹೆಲ್ಪರ್‌ಗಳನ್ನು ಬಳಸುವ Astro ರೂಟ್‌ಗಳಾಗಿವೆ...