Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
2f91068
feat: webapp with profile fetch api, basic profile view, markdown and…
IdkGoodName Oct 1, 2025
cd2a035
fix: proper README for `app.campground.gg`, `custom.css` for configur…
IdkGoodName Oct 1, 2025
05ee84e
feat: markdown table styling, fix profile post width
IdkGoodName Oct 1, 2025
c964863
feat: page placeholders, profile cards
IdkGoodName Oct 5, 2025
8abef08
feat: PDS connection, proper auth, move login and register to app
IdkGoodName Oct 10, 2025
036d68a
fix: profile route broken
IdkGoodName Oct 10, 2025
dfdda54
feat: profile posts
IdkGoodName Oct 24, 2025
bd1ed35
feat: slate editor
IdkGoodName Oct 29, 2025
ef7a952
feat: editor improvements
IdkGoodName Nov 1, 2025
dca0605
feat: creatable posts
IdkGoodName Nov 2, 2025
63f76f9
feat: the ability to delete and edit profile posts, Markdown deserial…
IdkGoodName Nov 7, 2025
11c8457
feat: the ability to edit and delete posts, markdown serialization an…
IdkGoodName Nov 10, 2025
9378d02
feat: the ability to view user's replies to posts in the profile, thr…
IdkGoodName Dec 11, 2025
21b4ce2
Merge pull request #64 from project-campground/2025/improved-profiles
IdkGoodName Dec 11, 2025
7b148c1
fix: scrollbar being unstyled, divider appearance, not being able to …
IdkGoodName Dec 14, 2025
6078002
Merge pull request #65 from project-campground/2025/improved-profiles
IdkGoodName Dec 14, 2025
8e0cbe0
feat: campsites, merge layouts into _global, text tents, bonfires, bo…
IdkGoodName Jan 17, 2026
f23a73b
feat: roles, campsite settings, drag and drop system, change PrimaryB…
IdkGoodName Jan 30, 2026
04a8eeb
feat: display role colours in messages, bonfire settings, profile fix…
IdkGoodName Feb 7, 2026
cb292a2
feat: add ghost messages, improve editor ux, fix profile banner desig…
IdkGoodName Feb 8, 2026
d64e0cd
feat: add proper role creation, reordering, updating and deleting sup…
IdkGoodName Feb 10, 2026
596f50a
feat: message date dividers
IdkGoodName Feb 10, 2026
771548f
feat: add live message updating, campsite deletion
IdkGoodName Feb 13, 2026
de7cb7e
feat: add gradient roles, update design
IdkGoodName Feb 14, 2026
0548120
feat: more WS event support
IdkGoodName Feb 15, 2026
3f3b067
feat: add member pseudo-tent, invite and bans page in settings
IdkGoodName Feb 20, 2026
c9d56e1
fix: use JSX runtime instead of JSX in components library
IdkGoodName Feb 21, 2026
c3ec4ca
feat: add data table manage button, mobile support for data tables (d…
IdkGoodName Feb 21, 2026
348158b
feat: add preselected color picking, role previews in settings
IdkGoodName Feb 21, 2026
1ac8d76
feat: add permissions to bonfires, categories, tents
IdkGoodName Feb 25, 2026
1710f72
fix: rename RESTClient to HTTPClient
IdkGoodName Feb 25, 2026
46c35b0
fix: rename RESTClientConfig to HTTPClientConfig
IdkGoodName Feb 25, 2026
f3e4fd2
fix: rename other REST instances to HTTP
IdkGoodName Feb 25, 2026
f4df4d0
fix: rename WebSocketClient to WS for consistency
IdkGoodName Feb 25, 2026
ff9e166
fix: fix hydrate errors, key errors, etc.
IdkGoodName Feb 25, 2026
18d663e
fix: fix minimal stuff
IdkGoodName Feb 26, 2026
a06994b
feat: add system messages, message components, use permissions in menus
IdkGoodName Feb 28, 2026
5aa7533
fix: slightly change visual appearance of posts and layout
IdkGoodName Feb 28, 2026
81a0f1f
feat: add mentions
IdkGoodName Mar 2, 2026
5e460cd
feat: add getting started for front-end
IdkGoodName Mar 2, 2026
158dec4
fix: backend link in README
IdkGoodName Mar 2, 2026
231576b
feat: change HTTP methods from `http.getSomething` to `http.something…
IdkGoodName Mar 4, 2026
9e890e9
fix: routes, unnecessary logs
IdkGoodName Mar 4, 2026
b497f0a
fix: some minimal stuff
IdkGoodName Mar 9, 2026
1d21e7f
fix: rename permissions, small theming changes
IdkGoodName Mar 9, 2026
361b865
feat: update light and dark theme design
IdkGoodName Mar 10, 2026
68512cb
fix: styling fixes
IdkGoodName Mar 10, 2026
6e71847
feat: add shift quick delete messages, add navigate from deleted curr…
IdkGoodName Mar 10, 2026
ffdf74e
feat: update branding for the webapp
IdkGoodName Mar 13, 2026
02073b1
fix: landing branding and old bonfire name
IdkGoodName Mar 14, 2026
87cb176
fix: spacing and divider styling
IdkGoodName Mar 14, 2026
f6acb3c
feat: improved animations, replace drag & drop library with in-house …
IdkGoodName Mar 17, 2026
871ab1c
feat: add kick, ban, change nickname, better gradient role interpolation
IdkGoodName Mar 25, 2026
7363719
fix: copy invite link, not id
IdkGoodName Mar 25, 2026
fd4b662
feat: add role gradient animations, use role color arrays instead of …
IdkGoodName Mar 29, 2026
4fc73c4
fix: make members pseudo-tent only available for specific permissions
IdkGoodName Mar 29, 2026
8db15ab
feat: add tent name updated system message
IdkGoodName Mar 29, 2026
5c6879e
feat: allow moving tents
IdkGoodName Mar 31, 2026
8b3f387
fix: use inline-block instead of flex in system messages, fix tent so…
IdkGoodName Apr 1, 2026
102ba5c
fix: forms and role color animation
IdkGoodName Apr 1, 2026
e1c05d5
feat: add moving tents and categories to bonfires
IdkGoodName Apr 1, 2026
a90bd97
feat: add moving bonfires
IdkGoodName Apr 2, 2026
b3640ac
feat: add canceling values in settings
IdkGoodName Apr 2, 2026
24473b9
feat: improve localization
IdkGoodName Apr 4, 2026
f5d8148
fix: wrong ids in localization
IdkGoodName Apr 4, 2026
a8f74f0
feat: use new routes, new names for views
IdkGoodName Apr 4, 2026
d8654a5
feat: rename mentionable and displaySeparately in roles
IdkGoodName Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# custom
.vscode
.idea/

# dependencies
Expand Down
71 changes: 42 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Campground

- To get started, navigate to [Getting Started section](#getting-started).

## Summary
Campground is a free, self-hosted, and open source chat application.
This direction will provide users:
Expand All @@ -23,7 +26,7 @@ A social media platform in which a user can decide to host their own section or
One example of a federated platform is Mastodon

### Campsite
An instance of a community that is hosted within our application. This would be similar to a Discord Server/Guild or a Guilded Server. Campsites can contain a Bulletin Board (profile via bluesky), Campers (from a user registry) and Campfires (categories).
An instance of a community that is hosted within our application. This would be similar to a Discord Server/Guild or a Guilded Server. Campsites can contain a Bulletin Board (profile via bluesky), Campers (from a user registry) and Bonfires (similar to groups in Guilded).

### Home
The campsite that a camper has registered their user data with.
Expand All @@ -35,9 +38,9 @@ When a camper is removed from a campsite, their camper data is not deleted from
The campsite overview, similar to Guilded's server overview section.
This will contain announcements, active tents, and a "getting started" section for the campsite.

### Campfire
### Bonfire
A section of tents, most similar to how Guilded “Groups” work.
Campfires will contain An image descriptor, a text descriptor, and tents.
Bonfires will contain An image descriptor, a text descriptor, and tents.

### Tent
A communication section that can fall under one of the below types:
Expand Down Expand Up @@ -67,33 +70,29 @@ Added friends
A feature most similar to “server discovery” on Discord and Guilded. A simple directory of Campsites that have opted to be listed in the Community Board.

## Technology Stack
- [Golang](https://go.dev/) - Backend Library
- [Rust](https://rust-lang.org/) - Backend Library

An open-source programming language backed by Google.


- [Next.JS](https://nextjs.org/) for [React](https://react.dev/) - Frontend Core Library
- [React Router](https://reactrouter.com/) for [React](https://react.dev/) - Frontend Core Library

A React-based framework for building web applications.

Our app is bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.


- [Mantine](https://mantine.dev/) for [React](https://react.dev/) - Frontend Components Library
- [MUI JoyUI](https://mui.com/) for [React](https://react.dev/) - Frontend Components Library

A library of components that we can customise and implement within Next.JS.
A library of components that we can customise and implement within React Router.


- [React Native](https://reactnative.dev/) - Mobile Frontend

A framework that allows us to create native Android and iOS apps using React code.


- [SurrealDB](https://surrealdb.com/) - Database
- [PostgreSQL](https://www.postgresql.org/) - Database

A multi-model database system that allows a SQL-based language to be used
A database system that allows a SQL-based language to be used


- [SeaweedFS](https://github.com/seaweedfs/seaweedfs) - File Server
Expand All @@ -115,10 +114,6 @@ The protocol that Signal uses for communication between users directly.

An open-source software that makes it easier for translators to contribute without requiring them to have technical knowledge and also making it easier to collaborate.


## Design System
We will be utilizing Material 3 for our design system.

## Branching Strategy / Testing Flow
We will be utilising the preferred branching strategy for Git repositories:
- Main - The public / production code that builds into what standard users will see
Expand Down Expand Up @@ -218,8 +213,24 @@ The moment this is ever removed from our motto, we don't deserve any user base.
When given the choice between losing support of deprecated systems or holding back the advancement of alternative or newer systems, we will choose the latter. For example, if support for Windows 7 ends on a dependency, but the update also enables better Linux support, we would opt to end Windows 7 support.

## Getting Started
How to run the development server on [http://localhost:3000](http://localhost:3000):

### Front-end Webapp

**Prerequisites:**
- Running [back-end](https://github.com/project-campground/backend/tree/2026/campsites#getting-started)
- Running [PDS](https://github.com/project-campground/backend/tree/2026/campsites#getting-started)

```bash
cd ./sites/campground.gg

# Create config file
cp config.example.json config.json

# Optional: Edit the config using any editor
nano ./config.json
# or
code ./config.json

npm run dev
# or
yarn dev
Expand All @@ -228,16 +239,18 @@ pnpm dev
# or
bun dev
```
Entry page: `app/page.tsx`

## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
### Landing page
How to run the development server on [http://localhost:3000](http://localhost:3000):
```bash
cd ./sites/campground.gg

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
Entry page: `app/page.tsx`
Loading
Loading