Project Structure
Verdict Law follows a conventional Astro project layout with reusable components, typed data, content collections, page routes, layouts, images, and public assets separated by role.
public/
favicon.ico
favicon.svg
src/
assets/
images/
attorneys/
blog/
office/
practice-areas/
components/
cards/
common/
forms/
layout/
content/
attorneys/
blog/
practice-areas/
data/
faq.ts
firm.ts
navigation.ts
structuredData.ts
testimonials.ts
layouts/
AttorneyLayout.astro
BaseLayout.astro
BlogPostLayout.astro
PageLayout.astro
PracticeAreaLayout.astro
pages/
attorneys/
insights/
practice-areas/
404.astro
about.astro
contact.astro
index.astro
privacy-policy.astro
robots.txt.ts
rss.xml.ts
terms.astro
styles/
global.css
consts.ts
content.config.ts
astro.config.mjs
netlify.toml
package.json
package-lock.json
README.md
tsconfig.jsonMain Folders
Section titled “Main Folders”public contains static files copied directly to the final site. Favicons are here because they should keep stable public URLs.
src/assets contains source assets processed by Astro, including optimized images. Use this for images imported by components, pages, layouts, or content.
src/components contains reusable Astro UI pieces. Cards display repeated items, common components handle small interface patterns, form components render forms, and layout components handle site-wide navigation and footer areas.
src/content contains Markdown content collections for attorneys, blog posts, and practice areas.
src/data contains TypeScript data used across the site, such as firm details, navigation, FAQs, testimonials, and structured data.
src/layouts contains page wrappers. Layouts usually combine metadata, shared page structure, and slots for content.
src/pages contains route files. Astro turns files in this folder into URLs, including dynamic routes such as src/pages/attorneys/[slug].astro.
src/styles contains global CSS. In this theme, src/styles/global.css is the main stylesheet entry.
Concepts
Section titled “Concepts”Components are reusable interface pieces. Layouts wrap pages or content entries. Pages define routes. Content collections store validated Markdown data. Static data files store typed values used by components. Public assets are served as-is. Astro assets can be imported and optimized during the build.