Astros landing page - Astro 7.1.1

This commit is contained in:
Profit
2026-07-19 10:47:06 +00:00
commit 082e686bac
16 changed files with 4655 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
node_modules/
dist/
.astro/
+24
View File
@@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/
+4
View File
@@ -0,0 +1,4 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}
+11
View File
@@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}
+22
View File
@@ -0,0 +1,22 @@
## Development
When starting the dev server, use background mode:
```
astro dev --background
```
Manage the background server with `astro dev stop`, `astro dev status`, and `astro dev logs`.
## Documentation
Full documentation: https://docs.astro.build
Consult these guides before working on related tasks:
- [Adding pages, dynamic routes, or middleware](https://docs.astro.build/en/guides/routing/)
- [Working with Astro components](https://docs.astro.build/en/basics/astro-components/)
- [Using React, Vue, Svelte, or other framework components](https://docs.astro.build/en/guides/framework-components/)
- [Adding or managing content](https://docs.astro.build/en/guides/content-collections/)
- [Adding styles or using Tailwind](https://docs.astro.build/en/guides/styling/)
- [Supporting multiple languages](https://docs.astro.build/en/guides/internationalization/)
Symlink
+1
View File
@@ -0,0 +1 @@
AGENTS.md
+12
View File
@@ -0,0 +1,12 @@
FROM node:22-slim AS build
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
+43
View File
@@ -0,0 +1,43 @@
# Astro Starter Kit: Minimal
```sh
npm create astro@latest -- --template minimal
```
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
```text
/
├── public/
├── src/
│ └── pages/
│ └── index.astro
└── package.json
```
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
+5
View File
@@ -0,0 +1,5 @@
// @ts-check
import { defineConfig } from 'astro/config';
// https://astro.build/config
export default defineConfig({});
+15
View File
@@ -0,0 +1,15 @@
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff2?)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
+4232
View File
File diff suppressed because it is too large Load Diff
+17
View File
@@ -0,0 +1,17 @@
{
"name": "data-workspace-astros-site",
"type": "module",
"version": "0.0.1",
"engines": {
"node": ">=22.12.0"
},
"scripts": {
"dev": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"astro": "^7.1.1"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none">
<circle cx="16" cy="16" r="14" fill="#7c5cfc"/>
<path d="M16 6 L18 14 L26 14 L20 19 L22 27 L16 22 L10 27 L12 19 L6 14 L14 14Z" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 224 B

+257
View File
@@ -0,0 +1,257 @@
---
const title = "Astros";
const tagline = "Building something great.";
const description = "A modern platform built with speed, simplicity, and scale in mind.";
---
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content={description} />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>{title}</title>
<style>
:root {
--bg: #0a0a0f;
--surface: #12121a;
--border: #1e1e2e;
--text: #e4e4ed;
--muted: #8888a0;
--accent: #7c5cfc;
--accent-glow: rgba(124, 92, 252, 0.25);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
background: var(--bg);
color: var(--text);
min-height: 100vh;
overflow-x: hidden;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1.5rem 2rem;
max-width: 1200px;
margin: 0 auto;
}
.logo {
font-size: 1.5rem;
font-weight: 700;
color: var(--text);
text-decoration: none;
letter-spacing: -0.02em;
}
.logo span { color: var(--accent); }
.nav-links a {
color: var(--muted);
text-decoration: none;
margin-left: 2rem;
font-size: 0.9rem;
transition: color 0.2s;
}
.nav-links a:hover { color: var(--text); }
.hero {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 8rem 2rem 4rem;
max-width: 800px;
margin: 0 auto;
}
.hero h1 {
font-size: clamp(2.5rem, 6vw, 4.5rem);
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.1;
margin-bottom: 1.5rem;
}
.hero h1 .gradient {
background: linear-gradient(135deg, var(--accent), #c084fc, #f0abfc);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero p {
font-size: 1.2rem;
color: var(--muted);
line-height: 1.6;
max-width: 540px;
margin-bottom: 2.5rem;
}
.cta-group {
display: flex;
gap: 1rem;
flex-wrap: wrap;
justify-content: center;
}
.btn {
display: inline-flex;
align-items: center;
padding: 0.8rem 1.8rem;
border-radius: 8px;
font-size: 0.95rem;
font-weight: 600;
text-decoration: none;
transition: all 0.2s;
cursor: pointer;
}
.btn-primary {
background: var(--accent);
color: #fff;
border: none;
box-shadow: 0 0 20px var(--accent-glow);
}
.btn-primary:hover {
transform: translateY(-1px);
box-shadow: 0 0 30px var(--accent-glow);
}
.btn-outline {
background: transparent;
color: var(--text);
border: 1px solid var(--border);
}
.btn-outline:hover {
border-color: var(--muted);
background: var(--surface);
}
.features {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
padding: 4rem 2rem;
max-width: 1200px;
margin: 0 auto;
}
.feature-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 12px;
padding: 2rem;
transition: border-color 0.2s;
}
.feature-card:hover {
border-color: var(--accent);
}
.feature-icon {
font-size: 2rem;
margin-bottom: 1rem;
}
.feature-card h3 {
font-size: 1.15rem;
margin-bottom: 0.5rem;
font-weight: 600;
}
.feature-card p {
color: var(--muted);
font-size: 0.9rem;
line-height: 1.5;
}
footer {
text-align: center;
padding: 3rem 2rem;
color: var(--muted);
font-size: 0.85rem;
border-top: 1px solid var(--border);
margin-top: 4rem;
}
footer a {
color: var(--accent);
text-decoration: none;
}
@media (max-width: 600px) {
.nav-links { display: none; }
.hero { padding: 5rem 1.5rem 3rem; }
}
</style>
</head>
<body>
<nav>
<a href="/" class="logo"> Astros<span>.</span></a>
<div class="nav-links">
<a href="#features">Features</a>
<a href="#docs">Docs</a>
<a href="https://github.com" target="_blank">GitHub</a>
</div>
</nav>
<main>
<section class="hero">
<h1>Build fast.<br /><span class="gradient">Ship faster.</span></h1>
<p>{description}</p>
<div class="cta-group">
<a href="#features" class="btn btn-primary">Get Started →</a>
<a href="#docs" class="btn btn-outline">Read the Docs</a>
</div>
</section>
<section class="features" id="features">
<div class="feature-card">
<div class="feature-icon">⚡</div>
<h3>Blazing Fast</h3>
<p>Optimized for performance with zero overhead. Static by default, dynamic when you need it.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🛡️</div>
<h3>Secure by Default</h3>
<p>WireGuard VPN, encrypted storage, and hardened infrastructure out of the box.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🔧</div>
<h3>Infra as Code</h3>
<p>Terraform + Ansible for reproducible, version-controlled deployments. No snowflakes.</p>
</div>
<div class="feature-card">
<div class="feature-icon">📊</div>
<h3>Real-time Data</h3>
<p>SQLite today, PostgreSQL tomorrow. Seamless migration path when you're ready to scale.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🚀</div>
<h3>One-Click Deploy</h3>
<p>Coolify integration for push-button deployments. From git to live in seconds.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🌍</div>
<h3>Globally Distributed</h3>
<p>Edge-ready architecture. Deploy close to your users for the lowest latency.</p>
</div>
</section>
</main>
<footer id="docs">
<p>&copy; 2026 Astros. Built with <a href="https://astro.build">Astro</a>.</p>
</footer>
</body>
</html>
+5
View File
@@ -0,0 +1,5 @@
{
"extends": "astro/tsconfigs/strict",
"include": [".astro/types.d.ts", "**/*"],
"exclude": ["dist"]
}