About this Site
I think it's pretty cool.
Built with Astro
Astro is a component-based static site generator. It's like React for the cool kids.
---
import LinkButton from "../buttons/LinkButton.astro";
const { post } = Astro.props;
---
<style>
.postcard {
background-color: #2c3e50;
color: white;
padding: 1rem 3rem;
border-radius: 6px;
width: 65%;
margin: 2rem auto;
border: 3px solid #34495e;
box-shadow: 15px 8px #e74c3c;
}
.tags {
margin-top: 1rem;
}
.tags > a {
background-color: #c0392b;
color: white;
text-decoration: none;
margin: 0 1rem 0 0;
padding: 0.2rem 0.4rem;
border-radius: 6px;
}
</style>
<div class="postcard">
<div class="tags">
{
post.frontmatter.tags.map((tag: string) => (
<a href={`/tags//`}>#{tag}</a>
))
}
</div>
<h1>{post.frontmatter.title}</h1>
<p>{post.frontmatter.description}</p>
<LinkButton url={post.url} buttonText="See More" />
</div>
Here's an component that you see all throughout the site.
Every component has been made generic, so I can just store data in JSON files or frontmatter. It also makes it super easy to build new pages or add new data points.
SourceMade with Maintenance in Mind
My last site became this ugly amalgamation of HTML and Markdown. So I made this site with a simple rule:
Data goes in JSON. Posts go in Markdown. Static content goes in components.
This setup was rough to start, but has made it very easy to add/remove projects and keep this up-to-date.
A Place To Write
I'm going through my programming journey and I needed a place to write. So I made this.
With Astro, it's super easy to just focus on pumping out blog posts. Combined with my focus on making generic components, this site will be super easy to maintain and grow.
The Todo List
This is kind of a "hidden" page. Congrats on finding it. Most people never click here.
Roadmap