Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/beerose/aleksandra.codes

personal website
https://github.com/beerose/aleksandra.codes

blog personal-website portfolio

Last synced: 29 days ago
JSON representation

personal website

Awesome Lists containing this project

README

        

# zaduma

_an [Astro] starter template for understated personal websites_

**Built with:**

- [SolidJS]
- [MDX], [Remark] and [Unified]
- [Shiki Twoslash][shiki-twoslash]
- [Tailwind CSS][tailwind-css]
- Vercel and [Vercel OG][vercel-og]
- [GitHub Actions][github-actions]

[astro]: https://astro.build/
[solidjs]: https://www.solidjs.com/
[mdx]: https://mdxjs.com/
[remark]: https://github.com/remarkjs/remark
[unified]: https://unifiedjs.com/
[shiki-twoslash]: https://github.com/shikijs/twoslash
[tailwind-css]: https://tailwindcss.com/
[vercel-og]:
https://vercel.com/blog/introducing-vercel-og-image-generation-fast-dynamic-social-card-images
[github-actions]: https://github.com/features/actions

## 🏎️ Usage TLDR

1. Click Use this template to create a new repo.
2. Set [`VERCEL_TOKEN`], `VERCEL_PROJECT_ID`, and [`VERCEL_ORG_ID`] secrets to
deploy to Vercel from GHA (enables access to git history).
3. Add `OG_IMAGE_SECRET` to secure your OG image endpoint.

_[See full usage instructions.](#-usage)_

## 🏛 Project Structure

Inside of your Astro project, you'll see the following folders and files:



├── public/ — static assets
├── posts/
│ └── rebuilding-a-blog.mdx — posts written in MDX
├── src/
│ ├── build-time/* — remark plugins
│ ├── global-styles/* — fonts, body and prose styles
│ ├── layouts/
│ │ ├── BaseLayout.astro — UI shared between all pages
│ │ └── PostLayout.astro — layout for all posts
│ ├── lib/* — reusable utils and UI components
│ ├── pages/
│ │ ├── [path].astro — Astro dynamic route for posts, supplies MDX components
│ │ └── index.astro — index page, lists all posts
│ ├── env.d.ts
│ └── types.ts
├── astro.config.ts
├── package.json
├── postcss.config.cjs
├── tailwind.config.cjs — Tailwind config, colors, fonts
└── tsconfig.json

## 🧞 Commands

All commands are run from the root of the project, from a terminal:

| Command | Action |
| :---------------------- | :----------------------------------------------- |
| `pnpm install` | Installs dependencies |
| `pnpm run dev` | Starts local dev server at `localhost:3000` |
| `pnpm run build` | Build your production site to `./dist/` |
| `pnpm run preview` | Preview your build locally, before deploying |
| `pnpm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `pnpm run astro --help` | Get help using the Astro CLI |

## 👌 Usage

1. Click Use this template to create a new repo.
2. Set [`VERCEL_TOKEN`], `VERCEL_PROJECT_ID`, and [`VERCEL_ORG_ID`] secrets to
deploy to Vercel from GHA (enables access to git history).

- Alternatively — if all your blog posts have a `date` in frontmatter, you
don't need to deploy through _workflows/ci.yml_. Feel free to remove the
deploy steps from the YML file and connect Vercel/Netlify integration. Go
to `derivedTitleAndDatePlugin` function and remove `execSync("git log")`
from it. (TODO: Can we make it more convenient?)

3. Add `OG_IMAGE_SECRET` to secure your OG image endpoint.

[`vercel_token`]: https://vercel.com/account/tokens
[`vercel_org_id`]: https://vercel.com/account#your-id