Obiz Solutions

What is Astro?

Astro is a web framework built for content-focused sites — blogs, docs, marketing pages, portfolios. This very site, Obiz Solutions, is built with it. Its biggest difference from SPA frameworks (React, Vue, Next.js) is that it ships zero JavaScript by default — pages render to static HTML at build time and load instantly.

Islands Architecture

Astro’s core idea is the Islands Architecture: the page is static HTML/CSS, and only the parts that truly need interactivity (a widget, a form…) get “hydrated” into JS components — small interactive islands in a sea of static HTML. This lets you use React/Vue/Svelte where you need them, without shipping a huge JS bundle to pages that don’t need any.

File-based routing

Every file under src/pages/ becomes a route automatically:

src/pages/index.astro       →  /
src/pages/blog/index.astro  →  /blog/
src/pages/blog/[slug].astro →  /blog/:slug/

.astro components

Astro has its own component syntax (.astro): a “frontmatter” block that runs at build time (fetch data, run logic — like server-side code), followed by an HTML template:

---
const posts = await getCollection("blog");
---
<ul>
  {posts.map((post) => <li>{post.data.title}</li>)}
</ul>

Content Collections

This is how Astro manages type-safe Markdown/MDX content via schemas (Zod) — it’s exactly how this site organizes blog, projects, and docs (see src/content/config.ts). Each entry is a Markdown file whose frontmatter is validated automatically at build time, catching missing fields or wrong types early.

When to reach for Astro

  • The site is mostly content: blog, docs, marketing, portfolio
  • You want maximum page-load speed with minimal JS
  • You still want React/Vue components in a few interactive spots

It’s less of a fit for highly interactive apps (dashboards, admin tools) — Next.js/Remix or a plain SPA usually serve those better.

Further reading

Official docs: astro.build/docs