Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
ffd56f4
chore: initial astro setup
Solant Jan 29, 2026
266a4ad
feat: add i18n
Solant Jan 29, 2026
934d8a1
add get-started pages
Solant Feb 2, 2026
f73c218
docs: migrate /get-started/tutorial page
Solant Feb 4, 2026
0f402ee
chore: add discord link
Solant Feb 4, 2026
a687cd2
docs: migrate /guides/examples/auth
Solant Feb 4, 2026
9c604c8
chore: ignore .astro
Solant Feb 4, 2026
708e3b9
docs(kr): fix title mismatch in Next.js guide (#896)
choisuhyeok1255 Jan 29, 2026
91626ec
docs: code smells/cross-imports add (#888)
Gaic4o Feb 3, 2026
0d0362f
docs: refactor desegmentation page (#895)
Solant Feb 3, 2026
1ae476f
docs: migrate examples/guides/types
Solant Feb 5, 2026
d87edb9
docs: migrate guides/examples/page-layout
Solant Feb 5, 2026
64d00ba
docs: migrate guides/examples/api-requests
Solant Feb 5, 2026
acfcf1e
docs: migrate guides/migration articles
Solant Feb 5, 2026
9d2a585
docs: migrate tech category
Solant Feb 5, 2026
df2c27a
docs: migrate issues
Solant Feb 5, 2026
ede6c0b
docs: migrate reference
Solant Feb 5, 2026
c2d24fd
chore: add fsd logo
Solant Feb 5, 2026
89e2a4d
docs: change home page
Solant Feb 5, 2026
47d72ff
chore: replace build script with astro
Solant Feb 5, 2026
da53d39
docs: add favicon
Solant Feb 6, 2026
b09f16d
docs: add missing en pages
Solant Feb 6, 2026
ba284d8
docs: add llms.txt support
Solant Feb 6, 2026
0cf06f4
docs: follow exiting docs routing
Solant Feb 6, 2026
844e28f
add missing root pages
Solant Feb 6, 2026
b841a29
fix language order and social links
Solant Feb 6, 2026
04fc231
add sidebar ru translations
Solant Feb 6, 2026
48001ac
add ru translations for get-started
Solant Feb 6, 2026
9f28aab
migrate ru/docs/about articles
Solant Feb 6, 2026
335d2ba
add ru/docs/reference articles
Solant Feb 7, 2026
c6826b3
use aside consistently across the files
Solant Feb 7, 2026
077d9a0
migrate ru guides
Solant Feb 7, 2026
d8f76c6
add ja translations
Solant Feb 7, 2026
fb6ee7e
migrate the rest of ja articles
Solant Feb 8, 2026
bbeaee3
add uz translations
Solant Feb 8, 2026
1f4b2d0
migrate kr about articles
Solant Feb 8, 2026
3e453c7
add korean translations
Solant Feb 8, 2026
e5d00e6
add vi translations
Solant Feb 9, 2026
bce0114
add missing Aside components
Solant Feb 9, 2026
1e45462
fix linter
Solant Feb 9, 2026
99562f9
add missing component
Solant Feb 9, 2026
aac4afd
add zh translations
Solant Feb 9, 2026
0d06dfa
add available category translations
Solant Feb 10, 2026
efc0227
add placeholder home pages
Solant Feb 10, 2026
5ea9efd
fix review comments
Solant Feb 11, 2026
be03be7
fix some text inconsistencies
Solant Feb 15, 2026
9736c19
fix light/dark mode images
Solant Feb 15, 2026
987b72a
add component to use images from /static
Solant Feb 15, 2026
eccff52
docs: astro.config sidebar title emoji remove
Gaic4o Feb 16, 2026
2d7e09b
docs: astro document color theme and font apply
Gaic4o Feb 16, 2026
f60d93c
fix: astro custom.css format build error
Gaic4o Feb 16, 2026
764c7f8
add prettier config for astro
Solant Feb 16, 2026
9595414
fix iframe size
Solant Feb 16, 2026
f62bffb
use replace <img> with StaticImage
Solant Feb 16, 2026
522a41b
docs: color theme, font - system ui change
Gaic4o Feb 18, 2026
b6bc74a
fix: image path issue
Gaic4o Feb 18, 2026
0a3eacb
docs: cross-imports kr update
Gaic4o Feb 18, 2026
e74a29b
docs: redirect landing page to overview
Gaic4o Feb 18, 2026
b94eba5
fix formatting
Solant Feb 18, 2026
d580c0a
docs: astro meta tag add
Gaic4o Feb 19, 2026
33963f9
docs: astro format update
Gaic4o Feb 19, 2026
c955c9b
fix links
Solant Feb 22, 2026
9525407
add missing image
Solant Feb 22, 2026
1f61689
fix nested slice images
Solant Feb 22, 2026
2100b1e
remove excessive headings
Solant Feb 22, 2026
0f6f186
docs: ko desegmented add
Gaic4o Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,13 @@ module.exports = {
"linebreak-style": [2, "unix"],
"import/no-unresolved": [
2,
{ ignore: ["^@theme", "^@docusaurus/plugin-content-docs/client"] },
{
ignore: [
"^@theme",
"^@docusaurus/plugin-content-docs/client",
"astro:content",
],
},
],
"import/extensions": 0,
"import/no-extraneous-dependencies": 0,
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# IDE
.idea

# Astro
.astro

# Dependencies
node_modules

Expand Down
11 changes: 10 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
{
"tabWidth": 4
"tabWidth": 4,
"plugins": ["prettier-plugin-astro"],
"overrides": [
{
"files": "*.astro",
"options": {
"parser": "astro"
}
}
]
}
245 changes: 245 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
// @ts-check
import { defineConfig } from "astro/config";
import starlight from "@astrojs/starlight";
import remarkHeaderId from "remark-heading-id";
import starlightLlmsTxt from "starlight-llms-txt";
import starlightLinksValidator from "starlight-links-validator";

// https://astro.build/config
export default defineConfig({
outDir: "./build",
site: "https://fsd.how",
redirects: {
"/": "/docs/get-started/overview",
"/ru": "/ru/docs/get-started/overview",
"/uz": "/uz/docs/get-started/overview",
"/kr": "/kr/docs/get-started/overview",
"/ja": "/ja/docs/get-started/overview",
"/vi": "/vi/docs/get-started/overview",
"/zh": "/zh/docs/get-started/overview",
},
markdown: {
// @ts-ignore
remarkPlugins: [remarkHeaderId],
},
integrations: [
starlight({
title: "Feature-Sliced Design",
description: "Architectural methodology for frontend projects",
favicon: "./static/img/favicon/adaptive.svg",
defaultLocale: "root",
customCss: ["./src/styles/custom.css"],
head: [
{
tag: "meta",
attrs: { property: "og:type", content: "website" },
},
{
tag: "meta",
attrs: {
property: "og:title",
content: "Feature-Sliced Design",
},
},
{
tag: "meta",
attrs: {
property: "og:description",
content:
"Architectural methodology for frontend projects",
},
},
{
tag: "meta",
attrs: {
property: "og:image",
content: "https://fsd.how/img/preview.png",
},
},
{
tag: "meta",
attrs: { property: "og:url", content: "https://fsd.how" },
},
{
tag: "meta",
attrs: {
name: "twitter:card",
content: "summary_large_image",
},
},
{
tag: "meta",
attrs: {
name: "twitter:title",
content: "Feature-Sliced Design",
},
},
{
tag: "meta",
attrs: {
name: "twitter:description",
content:
"Architectural methodology for frontend projects",
},
},
{
tag: "meta",
attrs: {
name: "twitter:image",
content: "https://fsd.how/img/preview.png",
},
},
],
logo: {
src: "./static/img/brand/logo-primary.png",
replacesTitle: true,
},
plugins: [
starlightLlmsTxt(),
starlightLinksValidator({
errorOnFallbackPages: false,
errorOnInconsistentLocale: true,
}),
],
locales: {
root: {
label: "English",
lang: "en",
},
ru: {
label: "Русский",
},
uz: {
label: "O'zbekcha",
},
kr: {
label: "한국어",
lang: "ko",
},
ja: {
label: "日本語",
},
vi: {
label: "Tiếng Việt",
},
zh: {
label: "中文",
},
},
social: [
{
icon: "github",
label: "GitHub",
href: "https://github.com/feature-sliced/documentation",
},
{
icon: "discord",
label: "Discord",
href: "https://discord.gg/S8MzWTUsmp",
},
],
sidebar: [
{
label: "Get Started",
translations: {
ru: "Начало работы",
ja: "はじめに",
},
autogenerate: { directory: "docs/get-started" },
},
{
label: "Guides",
translations: {
ru: "Гайды",
ja: "ガイド",
},
items: [
{
label: "Examples",
translations: {
ru: "Примеры",
ja: "例",
},
autogenerate: { directory: "docs/guides/examples" },
},
{
label: "Migration",
translations: {
ru: "Миграция",
ja: "移行",
uz: "Migratsiya",
},
autogenerate: {
directory: "docs/guides/migration",
},
},
{
label: "Tech",
translations: {
ru: "Технологии",
ja: "技術",
uz: "Texnologiya",
},
autogenerate: { directory: "docs/guides/tech" },
},
{
label: "Code smells & Issues",
translations: {
ru: "Известные проблемы",
ja: "コード臭いと問題",
uz: "Muammolar",
},
autogenerate: { directory: "docs/guides/issues" },
},
],
},
{
label: "Reference",
translations: {
ru: "Справочник",
ja: "参考書",
},
autogenerate: { directory: "docs/reference" },
},
{
label: "About",
translations: {
ru: "О нас",
ja: "メソッドについて",
},
items: [
{
slug: "docs/about/mission",
},
{
slug: "docs/about/motivation",
},
{
slug: "docs/about/alternatives",
},
{
label: "Understanding",
translations: {
ru: "Понимание",
ja: "理解",
},
autogenerate: {
directory: "docs/about/understanding",
},
collapsed: true,
},
{
label: "Promote",
translations: {
ru: "Продвижение",
ja: "プロモート",
},
autogenerate: { directory: "docs/about/promote" },
collapsed: true,
},
],
},
],
}),
],
});
Loading