Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b7fb053
feat: begin rewrite
bristermitten Mar 27, 2026
6afe658
feat: re-add readme
bristermitten Mar 27, 2026
3ab7972
chore: remove junk
bristermitten Mar 27, 2026
7ea254b
build: Add treefmt
bristermitten Mar 27, 2026
85a9c15
build: add process for elm-spa server
bristermitten Mar 27, 2026
317943a
build: Move to elm-land
bristermitten Mar 27, 2026
8eb23af
build: tailwind and stuff
bristermitten Mar 27, 2026
6341123
build: Add tailwind properly
bristermitten Mar 27, 2026
6b9e373
feat: wip learning resources and elm-land init
bristermitten May 10, 2026
51ef3b7
feat: render LRs basically!
bristermitten May 10, 2026
7f477ec
fix: learning resource caching
bristermitten May 10, 2026
2d8b105
feat: add colours, slightly nicer UI
bristermitten May 10, 2026
b8d70ed
feat: make schema to elm generation actually work
bristermitten May 12, 2026
b49e51a
feat: basic learning impl!
bristermitten May 13, 2026
a929d09
feat: complete mvp of learning resources
bristermitten May 14, 2026
2c35136
fix: styling tweaks
bristermitten May 14, 2026
d241ba4
feat: home page
bristermitten May 14, 2026
59c12db
fix: more styling improvements
bristermitten May 14, 2026
b44ca06
build: add useful bun scripts
bristermitten May 14, 2026
83c04c4
fix: fix a tiny bit of y movement on home page
bristermitten May 14, 2026
f986269
style: run elm-format
bristermitten May 14, 2026
d26e8cd
test: remove old test
bristermitten May 14, 2026
e353a37
ci: make it build tw
bristermitten May 14, 2026
b1df993
fix: fix some broken styles the lsp didnt catch for some reason
bristermitten May 14, 2026
25796d0
fix: broken styling again
bristermitten May 14, 2026
de46ce6
Potential fix for pull request finding
bristermitten May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .dockerignore

This file was deleted.

2 changes: 1 addition & 1 deletion .envrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
use flake
use flake .
39 changes: 39 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: CI

on:
push:
branches: [master]
pull_request:
branches: [master]

permissions:
contents: read

jobs:
build:
name: Build & Lint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2

- name: Cache Elm packages
uses: actions/cache@v4
with:
path: ~/.elm
key: elm-${{ runner.os }}-${{ hashFiles('elm.json') }}
restore-keys: elm-${{ runner.os }}-

- run: bun install --frozen-lockfile

- name: Build Tailwind modules
run: bun run tw

- name: Build
run: bunx elm-land build

- name: Check Elm formatting
run: |
bunx elm-format --validate src/
86 changes: 43 additions & 43 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,56 +1,56 @@
name: CI
name: Deploy

on:
push:
branches:
- master
branches: [master]
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
name: devden-web-frontend
permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
push_to_registry:
name: Push Docker image to GitHub Packages
build:
name: Build
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- uses: actions/checkout@v4

- name: Check out the repo
uses: actions/checkout@v2
- uses: oven-sh/setup-bun@v2

- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
- name: Cache Elm packages
uses: actions/cache@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
path: ~/.elm
key: elm-${{ runner.os }}-${{ hashFiles('elm.json') }}
restore-keys: elm-${{ runner.os }}-

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
- run: bun install --frozen-lockfile

- name: Build
run: bunx elm-land build

- name: Copy index.html as 404.html for SPA routing
run: cp dist/index.html dist/404.html

- uses: actions/configure-pages@v5

- uses: actions/upload-pages-artifact@v3
with:
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
path: ./dist

deploy:
name: Deploy to GitHub Pages
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@v4
24 changes: 11 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
/dist/
package-lock.json
yarn.lock

#
src/Tailwind.elm
src/Tailwind
/node_modules/

.idea
.DS_Store
.elm-spa
elm-stuff

# Macs are stupid sometimes :)
.DS_Store
node_modules
.devenv
.direnv
.vscode
dist
.elm-land
.env
*.pem
gen/Tailwind
Binary file removed .yarn/install-state.gz
Binary file not shown.
1 change: 0 additions & 1 deletion .yarnrc.yml

This file was deleted.

20 changes: 0 additions & 20 deletions Dockerfile

This file was deleted.

21 changes: 0 additions & 21 deletions LICENSE

This file was deleted.

27 changes: 20 additions & 7 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,24 +1,37 @@
# devden-web-frontend
# Devden website

## Building
## dependencies

* To automatically recompile Elm files when changes are detected use `yarn watch-elm`
* To build for development run `yarn build`
* To build for production run `yarn build-prod`
It's easiest to use Nix/Devenv to get everything you need.

## running locally

```bash
bunx elm-land server # starts this app at http://localhost:1234
bun run tw # rebuild tailwind definitions
Comment on lines +10 to +11
```

The site should then be running at http://localhost:1234

### Formatting

```bash
treefmt  # formats everything
```

The site is built to `./dist/`

## TODO

- [ ] Main page (index), shows information about the organisation with links to the discord server
- [x] `/learning` - shows the learning resources database in a nice format.
- [ ] `/xp/leaderboard` - show the top N users in terms of XP and level (can query the API for this).
See https://lb.helpch.at/ for inspiration. Maybe allow parameters like `?size=10` to show the top 10 users.
- [ ] `/stats/` - Shows various graphs with stats about the servers. We can decide on exactly the data we show later,
but we have logs of all user joins, leaves and messages (with user IDs, timestamps, content, etc).
- [ ] `/projects/<projectname>` - Show information about a various project we have.
Should follow a standard format and show github link, contributors (fetch from github?), and other information.
- [ ] `/faqs` - Show all the FAQs that you'd see in `ddfaq`
- [X] `/rules` - ~~pretty obvious, rules of the server. we can provide these in a json format if it helps~~
- [ ] `/rules` - pretty obvious, rules of the server. we can provide these in a json format if it helps
- [ ] `/team` or `/staff` - Show a nice list of admins, mods, contributors to projects, etc
- [ ] `/moderation/` Once the bot gets moderation features it would be very very cool to have a panel
like Dyno or yagpdb have. This probably won't happen for a while.
Loading
Loading