Writting Blog with Astro.js

Achmad Hadi Kurnia
3 min readApr 24, 2024
Photo by Vika Strawberrika on Unsplash

Astro.js is a modern web framework designed to help developers create fast and lightweight websites. It is renowned for its server-side rendering capabilities and powerful build optimizations. Astro.js allows developers to create efficient websites with less client-side JavaScript. This article will serve as a guide to getting started with Astro.js, covering what it is, why you might choose it, its key features, and how to create a new project.

What is Astro.js?

Astro.js is a frontend framework focused on creating static and server-side rendered sites with a unique approach. One of Astro’s defining characteristics is its ability to minimize the amount of JavaScript sent to the client, keeping sites fast and responsive. Astro supports various frontend technologies like React, Vue, Svelte, and Solid, allowing developers to use their preferred tools and frameworks.

Why Choose Astro.js?

The primary reasons for choosing Astro.js include:

  • Performance: Astro reduces client-side JavaScript, leading to faster page load times.
  • Flexibility: Astro allows developers to use different frameworks in a single project.
  • Server-Side Rendering (SSR): This feature ensures that content is generated server-side, enhancing SEO and improving initial load times.
  • Static Site Generation (SSG): Astro can generate static files, making hosting simpler and more cost-effective.
  • Component-Based Approach: Astro uses a component-based structure, enabling modular and maintainable code.
  • Developer Experience: Astro provides hot module replacement (HMR), a fast development server, and other tools that streamline the development process.

Key Features of Astro.js

Astro.js offers several features that make it a compelling choice for web development:

  • Islands Architecture: Astro’s “islands” architecture allows you to create interactive components that don’t require large JavaScript bundles. Hybrid Rendering: You can choose between static site generation, server-side rendering, or a hybrid approach, depending on your needs.
  • Framework Agnostic: Astro supports a range of frontend frameworks, allowing you to use the right tool for the job.
  • Build Optimization: Astro’s build process is optimized for performance, reducing the overall size of the final build.
  • SEO Friendly: With server-side rendering and static site generation, Astro provides strong SEO capabilities.

Getting Started with Astro.js

To start a new Astro.js project, ensure you have Node.js and npm installed on your computer. Then, create a new project with the following command:

npx create-astro@latest

You will be prompted to select a project name and a template. Choose the template that suits your needs, then follow the instructions to install dependencies and enter your project directory.

Project Structure in Astro.js

Once you have created a new project, you will see a simple yet effective file structure. Here are some important folders and files in an Astro project:

  • src: Contains all your site’s content and components.
  • public: This is where you can place static files like images or CSS files.
  • astro.config.mjs: The configuration file for your Astro project.

Creating Your First Page

To create your first page in Astro.js, create a new file in the src/pages folder. For example, create a file named index.astro with the following content:

---
import Layout from '../components/Layout.astro';
---
<Layout>
<h1>Welcome to Astro!</h1>
<p>This is your first page.</p>
</Layout>

Astro uses a component-based approach to create pages, and you can import components from various frontend frameworks. In this example, we’re importing a Layout component and using basic HTML elements to build the page.

Running the Development Server

After creating your page, you can run the Astro development server with this command:

npm run dev

This will start a local server and open a browser to view your site. You will see the page you created, and any changes you make will update automatically due to the hot module replacement (HMR) feature.

Conclusion

Astro.js is an exciting option for web developers looking to build fast and lightweight websites. With support for various frontend frameworks and a unique approach to optimizing JavaScript, Astro helps you create fast sites without sacrificing functionality. This guide provides a foundation to start with Astro.js, allowing you to explore further and build your site.

Slide version

https://gamma.app/docs/Starting-with-Astrojs-72rzku9osgq8web

Originally published at https://achmadhadikurnia.com.

--

--