Skip to main content

System at a glance

Below are the frontend and backend tech stacks of the Sokana Collective Website, as well as the key directories for each of the repositories.

Frontend

FrameworkPurpose
ReactUI components.
React Router v7Navigation across pages.
styled-componentsStyling components.
SupabaseAuthentication.
VercelHosting platform for the frontend.

Backend

FrameworkPurpose
Node.js, ExpressServer-side logic.
PostgreSQLUsed via Supabase for database.
ESLint, PrettierConsistent code formatting.
RenderHosting platform for the backend.

Key directories

Frontend

src/    → Contains the source code for the React application, including components, pages, and other related files.

public/ → Holds static assets such as the index.html file, images, and other resources that are publicly accessible.

.github/ → Contains GitHub-specific configurations, such as workflows for GitHub Actions.

.vscode/ → Includes settings specific to Visual Studio Code, which can help maintain consistent development environments.

Backend

src/     → Houses the source code for the backend application, including route handlers, middleware, and other server-side logic.

uploads/ → Used for storing uploaded files, such as images or documents, that are handled by the backend.

.github/ → Contains GitHub-specific configurations, such as workflows for GitHub Actions.

.vscode/ → Includes settings specific to Visual Studio Code, which can help maintain consistent development environments.

Deployment Architecture

The project uses a split deployment:

  • The frontend is hosted on Vercel, enabling continuous deployment from the main branch with fast, globally-distributed delivery.
  • The backend runs on Render, which handles dynamic requests and API logic.

Client requests flow as follows:

  • Browser → [Vercel Frontend] → API calls → [Render Backend]

Decision log

ChoiceRationale
Chose React for frontendStandard modern framework with component reusability
Used Tailwind CSSUtility-first styling for fast prototyping and consistency
Backend built with Express.jsLightweight, flexible Node.js framework
Chose Supabase for backendOpen-source Firebase alternative; built-in auth and Postgres database
Adopted Docusaurus for docsBuilt-in docs support, versioning, and quick setup
Deployed frontend on VercelZero-config, git-connected deployments for frontend projects
Deployed backend on RenderSimple setup for Node.js apps, with automatic HTTPS and deploy hooks