# @steeelydan/tsfs

> Full Stack TypeScript Helpers

Latest version **0.1.0** (published 2022-08-29) · GPL-3.0-only license · 0 weekly downloads

## Install

```sh
npm install @steeelydan/tsfs
pnpm add @steeelydan/tsfs
yarn add @steeelydan/tsfs
bun add @steeelydan/tsfs
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2022-08-29 |
| First published | 2022-04-06 |
| Weekly downloads | 0 |
| License | GPL-3.0-only |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >= 14.0.0 |
| Dependencies | 20 |
| Unpacked size | 69.2 KB |
| Known vulnerabilities | 0 (+14 in 5 direct dependencies) |
| Install scripts | no |
| GitHub stars | 2 |
| Author | steeelydan |
| Maintainers | steeelydan |

## Links

- npm: https://www.npmjs.com/package/@steeelydan/tsfs
- Repository: https://github.com/steeelydan/tsfs
- Homepage: https://github.com/steeelydan/tsfs#readme
- Issues: https://github.com/steeelydan/tsfs/issues
- npm.io page: https://npm.io/package/@steeelydan/tsfs

## Dependencies (20)

- [csurf](https://npm.io/package/csurf.md) 1.11.0
- [dotenv](https://npm.io/package/dotenv.md) 16.0.1
- [helmet](https://npm.io/package/helmet.md) 5.1.0
- [morgan](https://npm.io/package/morgan.md) 1.10.0
- [express](https://npm.io/package/express.md) 4.18.1
- [i18next](https://npm.io/package/i18next.md) 21.8.8
- [sqlite3](https://npm.io/package/sqlite3.md) 5.0.11
- [winston](https://npm.io/package/winston.md) 3.7.2
- [bcryptjs](https://npm.io/package/bcryptjs.md) 2.4.3
- [passport](https://npm.io/package/passport.md) 0.6.0
- [sequelize](https://npm.io/package/sequelize.md) 6.21.4
- [compression](https://npm.io/package/compression.md) 1.7.4
- [is-absolute](https://npm.io/package/is-absolute.md) 1.0.0
- [cookie-parser](https://npm.io/package/cookie-parser.md) 1.4.6
- [passport-local](https://npm.io/package/passport-local.md) 1.0.0
- [express-session](https://npm.io/package/express-session.md) 1.17.3
- [express-handlebars](https://npm.io/package/express-handlebars.md) 6.0.6
- [express-rate-limit](https://npm.io/package/express-rate-limit.md) 6.4.0
- [i18next-http-middleware](https://npm.io/package/i18next-http-middleware.md) 3.2.1
- [connect-session-sequelize](https://npm.io/package/connect-session-sequelize.md) 7.1.4

## Recent versions

- 0.1.0 (latest) — 2022-08-29
- 0.0.20 — 2022-08-12
- 0.0.19 — 2022-08-12
- 0.0.18 — 2022-06-04
- 0.0.17 — 2022-06-04
- 0.0.16 — 2022-04-15
- 0.0.15 — 2022-04-15
- 0.0.14 — 2022-04-15
- 0.0.13 — 2022-04-15
- 0.0.12 — 2022-04-15
- 0.0.11 — 2022-04-15
- 0.0.10 — 2022-04-06
- 0.0.9 — 2022-04-06

## README

# TSFS

https://www.npmjs.com/package/@steeelydan/tsfs

**No semantic versioning before v1.0.0. Expect breaking changes.**

TSFS (roughly **TypeScript Full Stack framework**) is a 'mid-level' framework for TypeScript web applications. While it doesn't guide you in a way let's say [NestJS](https://github.com/nestjs/nest) would, it helps you to get past the `npm install express` phase of your application.

It provides you with

- A selection of libraries for everyday serverside tasks (Express as the microframework, the usual middleware for common tasks)
- Opinionated, drop-in solutions for basic decisions (database, authentication, templating, security, logging...)
- A clean, functional-ish starting point for custom architectures
- A more complete view at classic web application development than the usual tutorials for that ecosystem provide
- An application framework where you feel free and able but also enjoy guidance and security
- A solid base for serverside rendered UI as well as API driven SPAs

Its intended use is in classical web applications, where users might register, get authenticated, save and query data. A monolith whose backend deals with a single database, deployed as-is on a VPS. It's also a take on stability and established web development principles in the fast paced JS/TS universe. While I'm in no way opposed to contemporary architecture, I'm confident that there are benefits of such a tried-and-tested setup in certain situations. TSFS combines 'cutting edge' decisions (all-in on TypeScript, full commitment to Node ES Modules) with those conservative choices.

Influences:

- 'Old-fashioned' full stack frameworks from other ecosystems (Rails, Django, Spring, Symfony)
- Gary Bernhardt's musings on full stack TypeScript
    - https://www.executeprogram.com/blog/porting-to-typescript-solved-our-api-woes
    - https://fullstackradio.com/144
- Hacker News discussions of monolith-first architecture
- The 'boring stack' discussed in places like hacker news

Further description coming soon. Meanwhile, you can see it in action here: https://github.com/steeelydan/sync-party

## Usage

### Install

Install from npm: `npm install @steeelydan/tsfs`

### Example

[Todo]

---
_Source: https://npm.io/package/@steeelydan/tsfs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
