Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wilsonross/elm-spa-saas

SaaS style single page application created with elm
https://github.com/wilsonross/elm-spa-saas

elm elm-lang single-page-app spa

Last synced: 3 months ago
JSON representation

SaaS style single page application created with elm

Awesome Lists containing this project

README

        





Logo







SaaS style spa written in elm



Demo




## About




I initially started writing this project in TypeScript using the Next.js framework. A colleague recommended Elm to me last year, and I decided to try the functional paradigm. Everything in the project was rewritten. Strapi was initially chosen as a content management system to serve as an application back-end. During the change of languages, Strapi got dropped in favour of PocketBase.




The application is still under active development. Some features - account management, for example - are currently at a bare minimum. Furthermore, refactoring the app is a priority to improve code reusability and readability. I plan to add additional features to the back-end by modifying the PocketBase installation. These will include security improvements, such as adding CSRF token support and validation.




## Built With

## Getting Started





The npm package Elm is included in the installation. The Webpack
configuration also consists of an Elm loader. Additionally, the sample env
file contains the URL to the production API and the necessary content
management identifiers. Installing is simple as cloning using Git,
installing with npm, and renaming the sample env file. The Pocketbase schema
is included if you prefer to set it up with your back-end.




```bash
git clone https://github.com/wilsonross/elm-spa-saas.git
cd elm-spa-saas
cp .env.sample .env
npm ci
npm start
```


## Roadmap


- [x] Add cms page
- [x] Add search page
- [ ] Add account page
- [x] Page template
- [ ] Account management
- [ ] Add static pages


## Contact


Ross Wilson - [[email protected]](mailto:[email protected])