2024

Echoes

Echoes is a project meant to be a one-stop collection of writings. I’ve always envisioned a different way of finding and financing writing that fits the online era, and I believe a site where the main parts of a story are available for free, and the readers can pay for the extras, would be a great idea.


Technologies and Tools

  • Astro

    This is a project focused on content, so Astro seemed like the best fit for it. Astro has many features that made the creation of a content-first site very simple.

  • Sanity

    As the idea was to publish new writings regularly, I decided to use a CMS (Content Management System) to store the content which would then be fetched, instead of a regular database or storing it in the project itself. Sanity is an easy to use CMS that integrates perfectly with Astro thanks to its official plugin.


Roles and Responsibilities

This project was developed single-handedly by myself in 2024. I was responsible for every facet of it, from design to development. Of note are:

  • Content Management

    Designed a system to store and fetch content using Sanity, a CMS. Using Sanity’s client, I used GraphQL queries to fetch the content, and created schemas for the different kinds of data, such as authors and writing pieces.

  • Routing System

    Built the project using Astro and amongst other tasks, developed a routing system that would be intuitive and clear for the user, where every piece of content was properly categorized, and pieces related to it were easily accessible.


Challenges and Solutions

  • Astro Implementation

    While I was already somewhat familiar with Astro, it was my first time using it in a full-fledged project. I had to deal with the fact that Astro’s syntax is rather different from other frameworks, and I had to learn how to use it effectively.

    At the same time, I had to deal with integrating Sanity, as I found using Astro’s Content Collections would not be optimal for our use case.

  • Sanity Implementation

    Sanity is a somewhat easy to use CMS, and it has good integrations with Astro thanks to its official plugin. However, I faced some issues with the implementation of the CMS, as it was my first time dealing with one. I had to deal with the fact that Sanity’s client was not very intuitive, the queries were verbose and the data was not always easy to fetch.

    To help with this, I read through the documentation carefully, and experimented with different queries to find the best way to fetch the data I needed.