mshaugh / storyden

With a fresh new take on traditional bulletin board forum software, Storyden is a modern, secure and extensible platform for building communities.

Home Page:https://www.storyden.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

a modern community platform

With a fresh new take on traditional bulletin board web forum software, Storyden is a modern, secure and extensible platform for building communities.


Storyden monorepo

Storyden is structured as a monorepo with backend, frontend, database migrations, email templates, etc. all tracked together.

This project is a very early work in progress and not usable yet. If you'd like to help with some research, please fill in this tiny form:

https://airtable.com/shrLY0jDp9CuXPB2X

Backend

The backend codebase is written in Go and is fully cross-platform (does not depend on any platform-specific libraries or C code).

The codebase follows idiomatic Go guidelines with a sprinkling of DDD. Interfaces are preferred as a means of sharing functionality in order to facilitate easier mocking and testing.

There are three layers with a unidirectional dependency rule.

  • transports: the application interface layer.
  • services: the business logic domain.
  • resources: the persistence abstraction layer.

Code in the transports layer depends on code in the service layer which depends on code in the resources layer, never the other way around.

Transport Layer: HTTP

The HTTP transport layer uses OpenAPI to generate the underlying server and data validation code. This is then wired up to the service layer using "bindings" in the transport layer.

Persistence Layer: SQL and Ent

The database code is generated by Ent. Migrations are managed via generated SQL files using Atlas.

About

With a fresh new take on traditional bulletin board forum software, Storyden is a modern, secure and extensible platform for building communities.

https://www.storyden.org/

License:Mozilla Public License 2.0


Languages

Language:TypeScript 38.6%Language:Go 37.2%Language:JavaScript 20.5%Language:CSS 3.6%Language:MDX 0.0%Language:Dockerfile 0.0%