linuskang/quacky

Social media platform for schools to educate students about responsible social media usage. Open sourced under the CC BY-NC 4.0 License. Project by Linus Kang.

★ 1Forks 0TypeScriptGitHub ↗Compare

Project website ↗

edutainmentlinuskangnextjs16platformqaciquackyschoolssocial-mediasocial-media-education

README

image

Quacky: Social media platform, educating through play, for schools.

npm version GitHub release npm downloads License Build

Introduction

Quacky is an all-in-one social media edutainment platform for teens. It is part of a broader development I'm programming over the next couple of months to actually pitch.

i dont really feel like yapping on this readme, but essentially:

  • Quacky is a social media platform designed for schools to educate teens about responsible social media usage.
  • Built like an realistic social media platform, with real users, all the features you would expect, and simplicity.
  • Essentially, the experience is like Banqur High, where users unlock modules as they are educated with content generated by the app.
  • Complete quizes to unlock more content, like posting, commenting, profiles, etc..
  • Collect in game currency to unlock rewards that staff can decide (i.e. spotify premium yay)
  • Staff can upload lessons, quizes, resources to the site as they wish to customise the experience.

so thats the gist of it, if you want to see the entire dev journey, check out the devlogs at https://quacky.space/devlog

tech stack

  • Next.js 16
  • Prisma
  • shadcn/ui
  • Better Auth
  • Resend
  • tRPC
  • t3-env
  • Seq (logging platform)
  • Postgresql (db)
  • OpenAI adapter (cloud model access)
  • Flagsmith (Fast flag features for Quacky)

Infrastructure wise, I'm hosting Quacky on 3 raspberry pi 5's, each with:

  • 4gb ram
  • 128gb sd card

They are clustered together using Kubenetes via. a portainer instance, served using Cloudflare Tunnels out of my network.

Try quacky at https://quacky.space!

image

setting up local development environment

its extremely simple. you will need:

  • a linux server with Docker running Postgresql
  • node.js

get started by:

# cloning the repo
git clone https://github.com/linuskang/quacky

# install dependencies
cd quacky
npm install

# env
cp .env.example .env

# apply migrations
npx prisma generate
npx prisma migrate dev

# start development server
npm run dev

# access at http://0.0.0.0:3000

documentation?

I currently don't have any documentation for the site layouts and design philosophy, however, there is a Scalar API references at:

https://quacky.space/docs, which contains documentation for all APIs.

contributing?

please see the contribution guide for more information.

Self-hosting for production?

services:
  app:
    image: ghcr.io/linuskang/quacky:latest
    restart: unless-stopped
    env_file: .env
    ports:
      - "3000:3000"

ensure that you've configured your .env file, and run the migrations using npx prisma migrate deploy.

after, just run compose up when your finished:

docker compose up -d

Access the app at http://0.0.0.0:3000

optionals:

If you want users to be able to recieve in-app notifications from the system, like moderation alerts, shop updates, etc.. you will need to create a system account. By default, all system notifications use the quacky userId, so you will need to create an user account with the following information:

userid: quacky
name: Quacky
username: quacky
verified: true
email: quacky@localhost

Once your done, notifications will automatically start sending to your users.

hate docker?

weirdo... but ok. you'll need to figure out how to get postgres and rustfs running yourself 😭

  1. clone the repo and double check your env is all set.

  2. deploy the app using npm run start

  3. grab a fire extinguisher

i wish you luck 😎

credits

this project, including all code, and assets, are governed under the CC BY-NC 4.0 license. see the license for more details.

good reads

  • Edelson, L., Haugen, F., & McCoy, D. (2025). A Comparative Survey Of Algorithmic Feed Recommendation System Designs. ACM Transactions on Recommender Systems. https://doi.org/10.1145/3757327

AI Declarations

FGC rating

See ai.md.

Contributors

linuskangdependabot[bot]Byte-Pixblacksmith-sh[bot]github-actions[bot]

Issues