Skip to content

Commit 68a0aac

Browse files
committed
features list in readme again
1 parent 8b7e731 commit 68a0aac

File tree

8 files changed

+45
-16
lines changed

8 files changed

+45
-16
lines changed

README.md

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,27 @@
88

99
## Features
1010

11-
The greatest care is devoted to a solid, clear, comprehensive, understandable, maintainable and customizable structure.
11+
The greatest care is devoted to a solid, clear, comprehensive, understandable, maintainable and customizable code structure.
1212

1313
#### Astro
1414

1515
- Latest Astro, statically generated, high performance
1616
- Post and Project content collections for `.mdx` content
1717
- Support for both Tags (1:N) and Categories (1:1) relations
18-
- Astro view transitions
19-
- Astro optimized images
18+
- Astro view transitions that track Post across all the pages
19+
- Astro optimized images with all image sizes and breakpoints centralized into a single place as constants
2020
- Pagination for both blog and projects pages
2121
- Environment variable controlled preview mode for draft posts and projects
22-
- Embedded code syntax highlighting using `expressive-code`integration
2322
- RSS and Json feed endpoints
23+
- Enabled React integration for components that require client side interactivity
2424

2525
#### Structure
2626

2727
- Extracted configuration for integrations and plugins to keep `astro.config.ts` clean and readable
2828
- All website routes centralized into a single constant object
2929
- All file system paths centralized into a single constant object
30-
- All image sizes and breakpoints centralized into a single place as constants
30+
- Clear, separated, hierarchical, both centered and full-width layouts for all types of pages:`.mdx` pages, collections pages - Post and Project, and List pages - indexes with pagination
31+
- Extracted logic for querying content collections for clean and readable `getStaticPaths()`
3132

3233
#### Styling
3334

@@ -36,28 +37,53 @@ The greatest care is devoted to a solid, clear, comprehensive, understandable, m
3637
- Tailwind responsive styling, both spacings and typography
3738
- Three layer (base/components/utilities) CSS code organization
3839
- System for keeping typography styles in sync between markdown (prose) and custom components
40+
- Customized typography plugin prose class
3941
- Component styles extracted into CSS files with `class-variance-authority` for variants
42+
- `tailwind-merge` and `clsx` for dynamic class names
4043

4144
#### SEO and Metadata
4245

4346
- Centralized and typed metadata for all types of pages, with defaults
44-
- Open graph image endpoint with Satori generated images for all pages with hero image and random gradient background
47+
- Open Graph image endpoint with Satori template generated images for all pages with hero image and random gradient background
4548
- Sitemap generated at build-time
49+
- Custom styled 404 page
50+
51+
#### Website
52+
53+
- Organized assets structure for both optimized (`/src`) and un-optimized (`/public`) images with extracted defaults
54+
- `astro-icon` package supporting both material design (`mdi`) icons and local SVG's
55+
- Paginated list pages for filtering posts: by tag - `/tags`, by category - `categories`, by both - `/explore` - Explore (Archive) page
56+
- Collapsible navbar with items stored as array and active item for the current route
57+
- Table of contents for blog posts
58+
- Design system with `.mdx` pages available at `/design` path for clear preview and debugging of all visual components
59+
- Share component supporting Twitter, Facebook, Reddit, LinkedIn and Hackernews
4660

4761
#### External libraries
4862

4963
- Comments with Giscus and dark mode support
64+
- `astro-embed` for embedding tweets, YouTube and Vimeo videos, and Open Graph links
65+
- Embedded code syntax highlighting using `expressive-code`integration
5066

5167
#### Types
5268

5369
- Fully Typescript, all types are located in a separate folder
5470
- Centralized Zod schemas for Post, Project and Config models with proper defaults to prevent runtime exceptions
5571
- Fully typed and build-time validated config and environment variables
56-
- Enhanced Post collection model to include calculated reading time
72+
- Abstracted Post and Project collection models that can include additional fields like calculated reading time
73+
74+
#### Development
75+
76+
- Typescript path aliases for clean and organized imports
77+
- Prettier formatting with sorted imports
78+
- ESLint syntax checking
5779

5880
#### Deployment
5981

60-
- Latest git commit info is included in the website footer for easy identifying of currently deployed version
82+
- Latest git commit info is included in the website footer for easy identification of currently deployed version
83+
- Production deployments with Github Pages, Nginx and Docker image
84+
- All three deployment methods are supported both in Github Actions and locally
85+
- The same bash scripts reused for both Github Actions and local deployments for easy debugging locally
86+
- Support for building both `x86` and `arm` Docker images
6187

6288
## Roadmap
6389

@@ -66,6 +92,8 @@ The greatest care is devoted to a solid, clear, comprehensive, understandable, m
6692
- Add remote markdown page
6793
- Validate config with `astro:env`
6894
- Render `.mdx` for RSS using component containers
95+
- Review and improve ESLint, (strictest) Typescript and Prettier configs
96+
- Improve visual design
6997

7098
## Credits
7199

@@ -74,7 +102,7 @@ The most important projects, examples, demos, resources that I reused and review
74102
- Starter project, initial structure, some components, some plugins, integrations, libs, styling choices - repo: [paularmstrong/paularmstrong.dev](https://github.com/paularmstrong/paularmstrong.dev), blog: https://paularmstrong.dev/blog
75103
- Navbar responsive menu, theme toggling - repo: [chrismwilliams/astro-theme-cactus](https://github.com/chrismwilliams/astro-theme-cactus), demo: https://astro-cactus.chriswilliams.dev/posts
76104
- Astro collections schemas, some visual design decisions - repo: [billy-le/billyle.dev](https://github.com/billy-le/billyle.dev), blog: https://billyle.dev
77-
- Giscuss comments, Satori og-image - repo: [thomasledoux1/website-thomas-astro](https://github.com/thomasledoux1/website-thomas-astro) , blog: https://website-thomas-astro.vercel.app/, repo: [TkDodo/blog](https://github.com/TkDodo/blog), blog: https://tkdodo.eu/blog
105+
- Giscuss comments, Satori og-image - repo: [thomasledoux1/website-thomas-astro](https://github.com/thomasledoux1/website-thomas-astro) , blog: https://website-thomas-astro.vercel.app, repo: [TkDodo/blog](https://github.com/TkDodo/blog), blog: https://tkdodo.eu/blog
78106
- Deployment with Docker and Nginx - docs: https://docs.astro.build/en/recipes/docker
79107
- PostCard component design - site: https://flowbite.com/blocks, demo: https://mistral.bloggrify.com
80108
- PostCardSmall component design - demo: https://epoxia.bloggrify.com/archives

docs/working-notes/todo2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ https://feather.so/showcase
186186
https://bhanuteja.dev/blog
187187
https://x.com/tibo_maker
188188

189-
// minimalistic, narrow column
189+
// minimalistic, narrow column, good animations
190190
https://github.com/markhorn-dev/astro-nano
191191
-----------
192192
za local state mora react ili solid

src/content/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ export const projectCollection = defineCollection({
1313
type: 'content',
1414
});
1515

16-
// _schemas folder in collections fill be included in type
16+
// _schemas folder in collections will be included in type
1717
export const collections = { post: postCollection, project: projectCollection };

src/layouts/Base.astro

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import BaseHead from '@/components/BaseHead.astro';
55
import Footer from '@/components/Footer.astro';
66
import Header from '@/components/Header.astro';
77
import ScrollToTop from '@/components/react/ScrollToTop';
8-
// import { Snackbar } from '@/components/Snackbar';
98
import ThemeScript from '@/components/ThemeScript.astro';
109
1110
import type { BaseHeadProps } from '@/components/BaseHead.astro';
@@ -21,7 +20,6 @@ const { metadata } = Astro.props as BaseProps;
2120
<Header />
2221
<slot />
2322
<Footer />
24-
{/* <Snackbar client:idle /> */}
2523

2624
<ScrollToTop client:only="react">
2725
<Icon name="mdi:arrow-up-thin" class="h-10 w-10 text-content hover:text-links-hover" />

src/layouts/List.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import Centered from '@/layouts/Centered.astro';
33
import Pagination from '@/components/Pagination.astro';
44
5-
import type { PaginationProps } from '@/components/Pagination.astro';
65
import type { BaseProps } from '@/layouts/Base.astro';
6+
import type { PaginationProps } from '@/types/common';
77
88
export interface Props extends BaseProps {
99
paginationProps?: PaginationProps;

src/libs/api/open-graph/template-html.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ const templateHtml = ({ title, heroImageUrl, avatarImageUrl, siteUrl }: Template
3232
<div class="flex items-center ${isLongSiteUrl ? 'flex-col justify-end items-start' : ''}">
3333
<img
3434
src=${avatarImageUrl}
35-
alt="Nemanja Mitic"
3635
width="120"
3736
height="120"
3837
class="rounded-full mr-8 border-2 border-gray-300"

src/pages/design/typography.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ title: Typography
55

66
back to [Index](/design)
77

8-
# Typography demo
8+
# Typography demo
9+
10+
- todo

src/utils/store.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
import { atom } from 'nanostores';
22

3+
/** unused */
4+
35
export const isMobileHeaderMenuOpen = atom(false);

0 commit comments

Comments
 (0)