Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/siddhsuresh/siddharth.codes


https://github.com/siddhsuresh/siddharth.codes

Last synced: 13 days ago
JSON representation

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. Clone the repository, install with `pnpm install` and run with `pnpm dev`.
3. Style it and personalize however you like πŸ’…
4. Set [`VERCEL_TOKEN`], `VERCEL_PROJECT_ID`, and [`VERCEL_ORG_ID`] secrets to
deploy to Vercel from GHA (what enables access to git history). ([_Settings→Secrets_](https://github.com/hasparus/zaduma/settings/secrets/actions))

- 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. Generate a passphrase for `OG_IMAGE_SECRET` to secure your OG image endpoint, and add it to [Actions Secrets]((https://github.com/hasparus/zaduma/settings/secrets/actions)).

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