2024-06-27 14:34:53 +02:00
2024-10-17 19:40:50 +02:00
2024-06-26 08:54:36 +00:00
2024-06-29 18:57:51 +02:00

vspace.one - Website

Dies ist das Repository mit dem Quellcode der vspace.one Webseite.

Strukturierung

/web - Derzeit Großteil des Codes - "Frontend" /api - Ein Content Management System, "PayloadCMS" - Derzeit nicht im Einsatz

Tech-Stack

Das Projekt nutzt als Basis die Astro Framework.

Als Laufzeit empfehlen wir Bun, es bestehen derzeit allerdings keine Laufzeit Abhängigkeiten, weshalb die Entwicklung auch mit Node.js möglich sein sollte.

Wieso nicht React, Vue oder XYZ...?

Ziel ist es die Seite so vielen Menschen wie möglich zugänglich zu machen. Deshalb nutzt die Seite bisher eine Kombination von Astro Komponenten und Markdown/MDX. Bei Astro Komponenten handelt es sich vom Prinzip her um eine Abstraktion über HTML, die sehr nah am Web-Standard ist, im Vergleich zu vielen anderen Frameworks.

Der Astro Syntax ähnelt JSX (Bekannt durch React) ist allerdings näher an typischem HTML dran (Bsp: React - className, Astro - class).

Das bedeutet wenn jemand nur HTML beherrscht ist es ihm trotzdem möglich etwas zur Seite beizutragen.

Um dies weiter zu erleichtern macht die Seite starken gebrauch von wiederverwendbaren Komponenten. Siehe: Komponenten

Allerdings ist es in Astro auch problemlos möglich mit bspw. React zu arbeiten. Dies funktioniert über Islands/Inseln. Hierbei handelt es sich um Inseln die in dem Projekt eingebetteten werden (Sinnbildlich, nicht zu verwechseln mit iframes). In diesen Islands können React, Vue.js sowie viele weitere libraries verwendet werden.

Ziel ist es soweit wie möglich mit Astro auszukommen, da wir hierdurch zu großen Teilen auf Client-Seitiges JavaScript verzichten können, was die Bundle Size klein hält und die Ladezeiten schnell.

Grundsätzlich bleibt es euch aber offen eure Lieblings-Library zu verwenden, solange es nicht auf der Startseite ist.

Entwickeln des Frontends

Die Befehle müssen im Unterordner /web ausgeführt werden.

Installieren der Abhängigkeiten

Bun: bun install Node.js/NPM: npm install

Starten des Entwicklungsservers

Bun: bun dev Node.js/NPM: npm start

Kompilieren

Bun: bun run build Node.js/NPM: npm run build

Kompilieren

Hinweis: Hierfür muss erst die Seite kompiliert werden.

Bun: bun preview Node.js/NPM: npm preview

Komponenten

Unter /web/src/components findest du unsere Komponenten die quasi die Bausteine der Website bilden.

Beispiel Seitenaufbau

Eine Normale Site ist so aufgebaut:

---
import Heading from "@/components/Heading.astro";
import Section from "@/components/Section.astro";
import MainLayout from "@/layouts/MainLayout.astro";
import RootLayout from "@/layouts/RootLayout.astro";
---

<RootLayout title="Seitentitel">
  <MainLayout>
    <Section>
      <Heading main>Haupt-Überschrift</Heading>
    </Section>
    <Section>
        <!-- Ab hier kannst du normales HTML schreiben. -->
    </Section>
  </MainLayout>
</RootLayout>
Description
No description provided
Readme 98 MiB
Languages
MDX 41.3%
Astro 32.9%
TypeScript 17.1%
JavaScript 3.7%
SCSS 2.8%
Other 2.2%